question about equality constraints

Skip to first unread message

Mark S.

Aug 27, 2018, 12:08:38 PM8/27/18
to lavaan
Hi All,
I am trying to modify a loading for one of my parameters and I can't quite figure out how to do it from reading the lavaan instructions.  

Here's what the instructions say about modifiers:


We have seen the use of the pre-multiplication mechanism (using the * operator) a number of times: to fix a parameter, to provide a starting value, and to label a parameter. We refer to these operations as modifiers, because they modify some properties of certain model parameters. More modifiers will be introduced later. 

Each term on the right hand side in a formula can have one modifier only. If you must specify more modifiers for the same parameter, you need to list the term multiple times in the same formula. For example:

f =~ y1 + y2 + myLabel*y3 + start(0.5)*y3 + y4

if I want the loading on one of my variables to be equal to negative one times whatever loading the analysis gives it, what do I do?  If, for example, i wanted y2 in the equation above to have -1* whatever loading is calculated by the program, I want to put "-1*y2" or "y2*-1" (which is what you can do in MPlus), but I don't know how to do that in lavaan.  

Can someone help?
Mark S. 

Jeremy Miles

Aug 27, 2018, 12:21:03 PM8/27/18
to lavaan

Flipping the sign on a loading will have implications for other parameters. You can use a starting value and either make that negative, or give it the negative of the final value  that you know you will end up with.

f = ~start(-0.786)*y2

You can also do it by adding a non-linear constraint:

f = ~nonposvalue*y2
# constraints
nonposvalue < 0

You received this message because you are subscribed to the Google Groups "lavaan" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To post to this group, send email to
Visit this group at
For more options, visit

Alex Schoemann

Aug 27, 2018, 12:51:57 PM8/27/18
to lavaan
I'll add that the Mplus code you provided is changing the starting values (the first approach Jeremy mentioned), it is not actually multiplying the parameter by -1.
Reply all
Reply to author
0 new messages