Message/Author 


Hi, How do you set the factor variance to 1 in MPLUS when running a CFA with categorical data? 


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 vagueI'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. 


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. 


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. 


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 MPlus default (setting the first factor loading to 1 and letting the variance of the latent variable be freely estimated)? 


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. 


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 y6y9; f on x1x3; Model gB: [y8]; !Fixing the variance of F to 1. Model: f by y6* y7y9; f@1; f on x1x3; Model gB: [y8]; How could I compare the factor loadings from these outputs? 


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. 


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 qsort 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 19 metric). Thanks for any input. JD 


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 nonnormality. If you are treating them as categorical, this is not an issue. 


Thanks. When I do use MLM (SatorraBentler) the model does not converge (it does with ML). Why might this be case? MLR ironically, does allow the model to converge. 


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? 


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? 


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. 


Hi, If want to use my latent variable as a dependent variable in a regression (e.g. f by y1y4; 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 


You can do either one. 


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! 


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 


Please send the output and your license number to support@statmodel.com. 


Hi, I am testing a measurement model over 3 timepoints 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 


It seems that in one model you have three factor indicators. In the other you have four. 


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? 


Please send the two outputs and your license number to support@statmodel.com. 


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? 


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. 


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* c2c5; Gen by p1* p2p5; F1 by c1* c2c5; F2 by p1* p2p5; GEN with f1@0 f2@0; f1 with f2@0; GEN@1; f1f2@1; c2@1; 


Send the output with the error message to Support along with your license number. 


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 


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. 


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? 


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 u1u6. 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 populationg2: 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; 


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? 


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. 

Back to top 