Setting factor variance to 1 in mplus PreviousNext
Mplus Discussion > Confirmatory Factor Analysis >
Message/Author
 R. A. Sterling posted on Thursday, January 05, 2006 - 1:38 pm
Hi,

How do you set the factor variance to 1 in MPLUS when running a CFA with categorical data?
 Linda K. Muthen posted on Thursday, January 05, 2006 - 1:51 pm
If the factor is named f, then you say f@1;
 RA Sterling posted on Thursday, January 05, 2006 - 7:17 pm
Thanks for your reply. My previous post was a bit vague--I'd like to set the factor variances to 1 and get a factor loading for each observed variable on a construct. I followed your advice (setting f@1), which set the factor variance to 1 and did NOT set the first variable of each construct to 1; however,I did not receive a factor loading for the first variable for each construct. Can you tell me how to achieve a factor loading for each observed variable, while setting the factor variances for each factor to 1?

Thanks again for your help.
 Linda K. Muthen posted on Friday, January 06, 2006 - 6:59 am
If you read about the BY command in the user's guide, you will find out how to set the metric by fixing the factor variance to one and having all factor loadings free. There is an example of this.
 Wei Chun posted on Saturday, August 29, 2009 - 5:05 am
Dear Linda,

I would like to estimate a SEM model with single latent variable indicators in which factor loadings and error variances need to be fixed. How do we fix the error variances in Mplus?

Many thanks.
 Linda K. Muthen posted on Saturday, August 29, 2009 - 7:53 am
VAriances are referred to by the name of the variable. To fix the factor variance of f to zero, say:

f@0;

See Chapter 16 of the user's guide for more information.
 Claudio Rocha posted on Saturday, February 20, 2010 - 1:45 pm
Hi.
I set the metric of my continuous latent variable by fixing its variance to one (and allowing all factor loadings to be freely estimated).
Should my parameter estimates (factor loadings) output in Model Results be identical to those presented in the STDYX Standardization output, when I use M-Plus default (setting the first factor loading to 1 and letting the variance of the latent variable be freely estimated)?
 Bengt O. Muthen posted on Saturday, February 20, 2010 - 3:14 pm
I think you are asking if your raw estimates when (1) fixing factor variance to one and having all loadings free should be the same as the STDYX estimates when (2) using the Mplus default. If that's the question, the answer is no because in (1) your observed indicators are not standardized.
 Claudio Rocha posted on Tuesday, February 23, 2010 - 2:23 pm
Using the example in the website for multiple group analysis (MIMIC model; cont4), may I say that both codes below will produce the same fit measures?

!Default.
Model: f by y6-y9;
f on x1-x3;
Model gB: [y8];

!Fixing the variance of F to 1.
Model: f by y6* y7-y9;
f@1;
f on x1-x3;
Model gB: [y8];

How could I compare the factor loadings from these outputs?
 Linda K. Muthen posted on Tuesday, February 23, 2010 - 4:15 pm
Setting the metric by fixing one factor loading to one versus fixing a factor variance to one will result in the same fit if you do it correctly. Compare the standardized factor loadings.
 J.D. Haltigan posted on Thursday, August 18, 2011 - 12:10 pm
Is it possible that by fixing a factor var to 1 instead of fixing a marker indicator to one on that factor (i.e., to scale the latent variable) one could get better or worse fit to a model? Although I see the post above, an adviser ran the same model in LISREL by freeing the marker indicator and got better fit. Assuming estimator is the same and all else being equal, why might this be the case? In the current situation, all observed variables are on the same metric (forced responses to a Qsort). Which brings up my second question: with 100 items on a forced choice q-sort as the indicators, would ML be still the best estimator option? Or would one have to look at the normality of each individual card response across the sample (-4 to +4, rescored to a 1-9 metric).

Thanks for any input.
JD
 Linda K. Muthen posted on Thursday, August 18, 2011 - 12:34 pm
If you set the metric fixing a factor variance to one and freeing all factor loadings, you will get the same fit as if you have a free factor variance and fix one factor loading to one. If not, you have made another change, for example, leaving the indicator fixed to one and fixing the factor variance to one.

If you are treating the items as continuous, I would use MLR which is robust to non-normality. If you are treating them as categorical, this is not an issue.
 J.D. Haltigan posted on Friday, August 19, 2011 - 11:47 am
Thanks. When I do use MLM (Satorra-Bentler) the model does not converge (it does with ML). Why might this be case? MLR ironically, does allow the model to converge.
 J.D. Haltigan posted on Friday, August 19, 2011 - 1:10 pm
Ironically after freeing the marker loadings and setting the latent factors to 1, the MLM estimation did converge. Does something of this nature, which allows a model to converge (v. not) indicate something problematic with the indicators themselves?
 Linda K. Muthen posted on Friday, August 19, 2011 - 1:14 pm
The first factor loading is fixed to one as the default. If when estimated it is negative or not close to one, this can cause convergence problems. You can fix another factor loading to one. Choose one that is positive and large.
 Jo Brown posted on Monday, May 28, 2012 - 10:24 am
what is the advantage of setting the latent variables' variance to 1 over using the default approach?
 Linda K. Muthen posted on Monday, May 28, 2012 - 10:42 am
There is no advantage. It is just a reparametrization. Model fit is identical.
 Jo Brown posted on Tuesday, May 29, 2012 - 2:23 am
Thanks Linda.
 Oxnard Montalvo posted on Tuesday, August 21, 2012 - 11:06 pm
Hi,
If want to use my latent variable as a dependent variable in a regression
(e.g.
f by y1-y4;
f on X;) ,

can I freely estimate all loadings and set the variance to 1, or do I need to set a loading to 1 and let the variance be freely estimated, since X will be explaining the variance of f?

Thanks,
L
 Linda K. Muthen posted on Wednesday, August 22, 2012 - 9:22 am
You can do either one.
 Johnna Capitano posted on Thursday, April 25, 2013 - 8:34 am
I keep getting error messages when trying to run a type=twolevel basic command. I am trying to get a correlation matrix. I have specified the within variables in the VARIABLE command and that seems fine. However, MPlus is saying that I have some variance within certain clusters of some of my between variables even though I do not (I am looking back at the raw data). So I have tried setting the variance of those variables to 0, hoping that would run. But I am not doing that correctly, since I am getting an error statement that doesn't recognize Os@0; (Os is one of the problem variables) in the VARIABLE command. Can you please assist? Thank you!
 Linda K. Muthen posted on Thursday, April 25, 2013 - 8:36 am
There must be a problem in your reading of the data. If you can't see it, send the output, data, and your license number to support@statmodel.com.
 SABA posted on Tuesday, December 22, 2015 - 7:34 am
Hi,
I am doing confirmatory factor analysis and my model is as follows
ANALYSIS:
TYPE IS missing;
ESTIMATOR IS ML;
MODEL:
F1 by ed0028a ed0028b ed0028c ed0028d ed0028e ed0028f;
F2 by ed0028g ed0028h ed0028i ed0028j;
Output:
SAMPSTAT STDYX;
In output both standardized and unstandardized loadings are either 1.00 or 0.99 for all items and standard errors are 0.00. Could you please tell what is the problem? Thank you
 Linda K. Muthen posted on Tuesday, December 22, 2015 - 9:29 am
Please send the output and your license number to support@statmodel.com.
 Maurits Masselink posted on Tuesday, August 02, 2016 - 7:08 am
Hi,

I am testing a measurement model over 3 time-points in which I constraint the factor loadings to be equal over time. As mentioned there are 2 ways of identifying the model, fixing one of the items of each latent factor to 1 or fixing the variance of the factors to 1, model fit should be the same. This is the case in my basic model. In a multigroup model in which I did not impose any additional constrains, the two methods result in different numbers of parameters estimated as indicated by the DFs. Could you tell me where it goes wrong when I add multigroup to the model?

grouping= gender (0=m 1=f);
ANALYSIS: TYPE IS general;
ESTIMATOR IS mlr;

factor loading 1:

Model:
dT1 by d1_t1 (1)
d2_t1 (2)
d3_t1 (3);
dT3 by d1_t3 (1)
d2_t3 (2)
d3_t3 (3);
dT4 by d1_t4 (1)
d2_t4 (2)
d3_t4 (3);

Variance factors 1:

MODEL:
dT1 by d1_t1*
d2_t1 (2)
d3_t1 (3)
d4_t1 (4);
dT3 by d1_t3*
d2_t3 (2)
d3_t3 (3)
d4_t3 (4);
dT4 by d1_t4*
d2_t4 (2)
d3_t4 (3)
d4_t4 (4)
dT1@1;
dT3@1;
dT4@1;

Thanks in advance!

Maurits
 Linda K. Muthen posted on Tuesday, August 02, 2016 - 10:41 am
It seems that in one model you have three factor indicators. In the other you have four.
 Maurits Masselink posted on Tuesday, August 02, 2016 - 11:06 am
Sorry I shortened the model in this post due to the post size exceeding the maximum length, forgot to delete the fourth indicator in the second model. In the actual models the amount of indicators is equal. Do you have any suggestions what it might be then?
 Linda K. Muthen posted on Tuesday, August 02, 2016 - 2:15 pm
Please send the two outputs and your license number to support@statmodel.com.
 Sonja Kumlander posted on Tuesday, August 01, 2017 - 12:26 am
Hi! I have a question concerning setting the factor variance at 1 in a bifactor model.

I have specified a bifactor CFA with two general factors and six specific factors.

In the model command, I have included an asterisk (*) in every factor (after the first item) to free the factor loading, which is otherwise fixed at one. In addition, do I need set the variance of every factor at one (by specifying factor1@1, factor2@1 etc.)? If I do, why is that?
 Linda K. Muthen posted on Tuesday, August 01, 2017 - 12:33 pm
The metric of a factor can be set by fixing a factor loading to one or by fixing the factor variance to one. If you free all factor loadings, you must fix the factor variance to one or the model will not be identified.
 Peter Rivera posted on Tuesday, July 10, 2018 - 10:51 am
Greetings, I have specified a bifactor CFA with two gen factors, but an item in this model has a small but negative residual variance (C2). When I set this C2 to 0 I get the following error message " THE STANDARD ERRORS OF THE MODEL PARAMETER ESTIMATES COULD NOT BE COMPUTED.", but when I set the variable to 1 the model terminates normally. Why is this?

VARIABLE:
Names are c1, c2, c3, c4, c5, p1, p2, p3, p4, p5;
Usevariables are c1, c2, c3, c4, c5, p1, p2, p3, p4, p5;
Categorical are c1, c2, c3, c4, c5, p1, p2, p3, p4, p5;
Missing are all (-99);

Analysis:
ESTIMATOR=WLSMV;
parameterization = theta;

Model:
Gen by c1* c2-c5;
Gen by p1* p2-p5;

F1 by c1* c2-c5;
F2 by p1* p2-p5;

GEN with f1@0 f2@0;
f1 with f2@0;

GEN@1;
f1-f2@1;

c2@1;
 Bengt O. Muthen posted on Tuesday, July 10, 2018 - 4:40 pm
Send the output with the error message to Support along with your license number.
 Joanna Davies posted on Tuesday, December 10, 2019 - 6:32 am
I'm doing CFA for a factor with 3 indicators. So the model is identified i have set the variance to 0, and left the first indicator fixed to 1:
f BY y1 y2 y3;
f@0;

Is it ok to do this, i.e fix the variance but leave y1 fixed to 1?

Then, when i include f in a SEM should i free the variance? I tried both freeing the variance and fixing it in a SEM and the coefficients and factor loadings change.

Another, unrelated question - if i have a factor loading substantially greater than 1 in a CFA say 1.25, but model fit is good and theory is sound, is it ok to accept the model?

Thank you
 Bengt O. Muthen posted on Tuesday, December 10, 2019 - 5:23 pm
You don't want to fix a factor variance at zero because that's saying it doesn't exist. If you fix the first loading to 1, you should let the variance be free as is the default.

CFA factor loadings can be greater than 1 because the y variances may be greater than 1.
 Joanna Davies posted on Wednesday, December 11, 2019 - 4:58 am
Thank you. And sorry! i made an error in my earlier q. To identify the model i have set the variance to 1, and left the first indicator fixed to 1:
f BY y1 y2 y3;
f@1;
is it ok to do this for the measurement model, to get the fit indices?
when i include in the wider SEM should i free the variance?
 Bengt O. Muthen posted on Wednesday, December 11, 2019 - 3:43 pm
You don't want to set the metric twice (loading and factor variance). That's unnecessarily restricted.
 Yue Yin posted on Sunday, February 16, 2020 - 3:54 pm
I want to generate a two group MIMIC model with factor variance 1 for group 1 and factor variance .7 for group 2. And residual variance of all items of group one should be .3, and .1 for group two. And I used the code below where I learned from CFA and MIMIC simulation code. But all I get from result is the residual variance "f", it means I didn't get variance "f", and no residual variance for item u1-u6. Could you help me with it? Where did I coded wrong?
Model population:
[x1@0]; x1@1;
f by u1*.9 u2*.7 u3*.6 u4*.8 u5*.7 u6*.6;
f*1;
f on x1*.5;
u4 on x1*.4; u5 on x1*.5;
u1*.3 u2*.3 u3*.3 u4*.3 u5*.3 u6*.3;
[u1$1*-.15];
[u2$1*.25];
[u3$1*.15];
[u4$1*-.25];
[u5$1*-.10];
[u6$1*.10];
model population-g2:
f*.7;
u1*.1 u2*.1 u3*.1 u4*.1 u5*.1 u6*.1;
Model:
f by u1*.9 u2*.7 u3*.6 u4*.8 u5*.7 u6*.6;
f*1;
f on x1*.5;
u4 on x1*.4; u5 on x1*.5;
[u1$1*-.15];
[u2$1*.25];
[u3$1*.15];
[u4$1*-.25];
[u5$1*-.10];
[u6$1*.10];
model g2:
f*.7;
 Bengt O. Muthen posted on Tuesday, February 18, 2020 - 5:00 pm
We need to see your full output - send to Support along with your license number.
 Yue Yin posted on Tuesday, February 18, 2020 - 6:20 pm
I did send, but the support told me there is no residual variance for each item in categorical variable, and support also told me factor variance/residual variance can be showed in output, but they didn't told me how to show factor variance in the output. And since residual variance can't be the part of parameter in categorical variable, does it mean I can't put residual variance of each item as one simulation condition?
 Bengt O. Muthen posted on Thursday, February 20, 2020 - 4:15 pm
You can in the Model Population command, but not in the Model command, if you use WLSMV - see our annotated UG monte carlo examples on the web.
 Kätlin Peets posted on Thursday, October 08, 2020 - 12:35 pm
I have a question. I have standardized all the items that load on two factors. And then I regress the two factors on covariates (also previously standardized). For identification purposes I set the factor variances to 1 (I guess in this instance, it actually refers to residual variances). As I have standardized everything, I look at the unstandardized output. However, I wonder why the associations between covariates and factors are different in standardized vs unstandardized output?
Thank you.
Katlin
 Bengt O. Muthen posted on Thursday, October 08, 2020 - 1:38 pm
That's because you set the residual variance at 1, not the total factor variance.
 Kätlin Peets posted on Thursday, October 08, 2020 - 3:14 pm
Thank you. I have one more question. I want to compare whether the association between a covariate and latent factor 1 is significantly different from the association between the same covariate and latent factor 2 (via Wald test). Results are very different depending on whether I set factor variances to 1 (residual variances in this instance) vs. whether I set loadings of one of the items for each factor to 1 and estimate variances freely. What should guide my decision here?
Thank you again,
Katlin
 Bengt O. Muthen posted on Saturday, October 10, 2020 - 10:30 am
The results are different because the association refers to DVs with different variances so they are on different scales. Look at Tech4 to get the SD=srqt(variance) of each factor and use Model Constraint to express the standardized versions - which divides by their SD. Express the difference between those two.
 Kätlin Peets posted on Saturday, October 10, 2020 - 11:17 am
Thank you. Yes, I actually already tried out that option (via Model constraint) as well. However, I am not sure how this will work out when comparing two interaction terms (factor 1 on x*z vs factor2 on x*z) as I don't think I should be looking at standardized coefficients for interactions. In order to get the correct standardized coefficient (for interactions), should I just standardize x and z, create their product term, and then compare STDY coefficients (via Model constraint)?
Katlin
 Bengt O. Muthen posted on Saturday, October 10, 2020 - 11:56 am
This is discussed in our RMA book, Section 1.6.
 LT posted on Friday, October 16, 2020 - 1:30 am
Hi there,

To set the scale per latent factor, we typically set the first item to a loading of 1. However, I would like to constrain the items to be equal and thus should not have one of them fixed to 1. I heard the alternative is to standardize the variance of the latent factor.

I've searched through forums and the users guide but am unable to find syntax to standardize variance of the latent factor.

Any advice will be greatly appreciated, thank you.
 Bengt O. Muthen posted on Saturday, October 17, 2020 - 2:58 pm
Just say

f BY y1-y10* (1);
f@1;
Back to top
Add Your Message Here
Post:
Username: Posting Information:
This is a private posting area. Only registered users and moderators may post messages here.
Password:
Options: Enable HTML code in message
Automatically activate URLs in message
Action: