Message/Author 


on page 2 Mplus LANGUAGE ADDENDUM 7.1 is said that the The alignment optimization method consists of three steps: 1. Analysis of a configural model with the same number of factors and same pattern of zero factor loadings in all groups. 2. Alignment optimization of the measurement parameters, factor loadings and intercepts/thresholds according to a simplicity criterion that favors few noninvariant measurement parameters. 3. Adjustment of the factor means and variances in line with the optimal alignment. my question is why is that a model with ALIGNMENT = FREE (CONFIGURAL); give the same estimates as ALIGNMENT = FREE; because i was thinking you need to be able to compare the configural and the scalar but their estimates are the same. 


The default is CONFIGURAL so the two specifications you show are the same. 


why not possible to specify: ALIGNMENT = FREE (METRIC); ALIGNMENT = FREE (SCALAR); How can i specific scalar model with the alignment. 


The alignment method avoids using a metric or scalar model. The definition of the alignment method is that it is based on the configural model. 


Hello, Is alignment implemented for ordered categorical data? 


No, not yet. Only binary. 

Tait Medina posted on Tuesday, February 25, 2014  6:19 am



Is it possible to test the equality of regression coefficients across groups under the alignment method? For example, I am interested in regressing the factor on age and testing whether the coefficient for age is different across groups? Thank you! 


The alignment method currently doesn't handle covariates. But you can divide people into age groups and then you get a*b groups in the alignment run, where a is the number of age groups and b is the number of original groups. 

Tait Medina posted on Tuesday, February 25, 2014  3:11 pm



Thank you for your reply. I have a question about the output from Alignment=Fixed. How are the estimates given under MODEL RESULTS connected to the numbers given under “Item Parameters In The Alignment Optimization Metric”? I have read Web Note 18, but am having a hard time mapping the output in these two sections onto the equations. Also, the R2 measures given in Table 7 in Web Note 18 need to be calculated by hand using Eq 13 and 14. Correct? Thank you. 


The “Item Parameters In The Alignment Optimization Metric” section contains the alignment results in the metric in which the alignment optimization is performed, i.e., after all indicator variables are standardized and also under constraint (10) from web note 18, also including the factor mean fixed to 0 in the corresponding group. These parameters are scale reversed back to the original metric of the variables and also to factor variance fixed to 1 in the corresponding group if that is the requested parameterization. There is a way to get these parameters as your final model estimates. You will need to standardize your variables using the standardized option of the define command as well as the analysis option METRIC=PRODUCT; R2 is computed with the upcoming Mplus 7.2 but you can compute it by hand as well. 


Thank you for your response. I have another question about the alignment approach. I have noticed that when I use ALIGNMENT=FREE I receive a warning that I should switch to ALIGNMENT=FIXED and a reference group (or baseline group) is suggested. How is the suggestion for a baseline group determined? I have played around with using different baseline groups trying to get a feel for this new approach and have noticed that the choice of group impacts the results under the APPROXIMATE MEASUREMENT INVARIANCE (NONINVARIANCE) FOR GROUPS section. Could you provide a bit more insight into this? Thank you. 


> I have noticed that when I use ALIGNMENT=FREE I receive a warning that I should switch to ALIGNMENT=FIXED and a reference group (or baseline group) is suggested. How is the suggestion for a baseline group determined? It is the group with the smallest absolute factor mean value. Presumably fixing that parameter to 0 would lead to the smallest misspecification. > I have played around with using different baseline groups trying to get a feel for this new approach and have noticed that the choice of group impacts the results under the APPROXIMATE MEASUREMENT INVARIANCE (NONINVARIANCE) FOR GROUPS section. Could you provide a bit more insight into this? This is explained in Section 5.3 in http://statmodel.com/examples/webnotes/webnote18.pdf Fixing the factor mean to 0 in one group can lead to biased results if that mean is not 0. You can also try using TOLERANCE=0.01. This option seems to yield more robust results and will be Mplus default in the upcoming Mplus 7.2 

Tait Medina posted on Tuesday, April 15, 2014  9:24 am



I am a little confused by this output (below). The pvalues seem to suggest that the item intercept for CHILD is noninvariant in group 3 as compared to groups 1 and 2. APPROXIMATE MEASUREMENT INVARIANCE (NONINVARIANCE) FOR GROUPS Intercepts NEIGHB 1 2 3 FRIEND 1 2 (3) SOCIAL 1 2 (3) WORK 1 2 3 MARRY 1 2 3 CHILD 1 2 3 Intercept for CHILD Group Group Value Value Difference SE Pvalue 2 1 3.378 3.385 0.006 0.027 0.817 3 1 3.501 3.385 0.117 0.039 0.003 3 2 3.501 3.378 0.123 0.042 0.003 Approximate Measurement Invariance Holds For Groups: 1 2 3 Weighted Average Value Across Invariant Groups: 3.430 Invariant Group Values, Difference to Average and Significance Group Value Difference SE Pvalue 1 3.385 0.046 0.019 0.019 2 3.378 0.052 0.022 0.017 3 3.501 0.071 0.023 0.002 


The process is explained in Section 4 http://statmodel.com/examples/webnotes/webnote18.pdf but to summarize the invariance is not determined by pairwise comparison but rather by this: compare group 3 against the average of group 1,2,3. Also due to multiple testing we use smaller pvalue 0.001 as the cutoff value. 

Tait Medina posted on Tuesday, April 15, 2014  11:58 am



Is the pairwise comparison portion of the output related to the "first step" of the algorithm used to determine a starting set of invariant groups that is described in Section 4? "We conduct a pairwise test for each pair of groups and we "connect" two groups if the pvalue obtained by the pairwise comparison test is bigger than 0.01." (pg. 15). Finally, when dichotomous outcome variables are used, how are scale factors/residual variances handled? Are they fixed to 1 in all groups? Thank you. 


Yes on the first question. The second question also yes  we use the theta parameterization where all residual variances are fixed to 1 during the configural model estimation. After that ... the alignment is done without any consideration for the residual variances, i.e., the alignment is for the intercepts and loadings only and it does not use residual variances in the computations. I have to also correct my message from Feb 26. To get the "Item Parameters In The Alignment Optimization Metric" as your final parameter estimates you have to use a linear scale transformation for each indicator variable Y like this define:Y=(Ya)/b; where a and b are obtained from the configural model estimates as follows a=average Y intercept across the groups b=average Y loading across the groups 

Tait Medina posted on Friday, April 18, 2014  12:51 pm



Thank you, that makes sense. I have a followup question about Eq. 9 in Webnote 18. I am trying to make sure I understand Eq. 9 by plugging in the estimates taken from the output (using ML, Alignment=Fixed) using my own data. For now, I am using 2 groups. The loading for item 1 is .585 in group 1 and .588 in group 2. Taking the difference of these loadings gives me .003. Scaling this by the CLF (using the small number .0001) gives me f(x)= .103. The Contribution to the Fit Function for this item, given in the output under Loadings, is .316. I am not sure how to arrive at that number. The sample size for group 1 is 698 and for group 2 it is 949. The sqrt(N1*N2) is therefore 813.881. Weighting f(x) by 813.881 gives me 83.512. What am I misunderstanding about Eq. 9? 


The loss function that is reported in the output has a negative sign. See footnote 2 on page 10. You are also using 0.01 not 0.0001. Also the weight is standardized: scaled so the total weight is equal to the total number of cross group comparisons NG*(NG1)/2 which is 1 in your case. So the actual weight that we use for the tech8 output is w=((NG1)*NG/2)*w0/sum(w0) where w0=sqrt(N1*N2) and NG is the number of groups. The weight standardization of course doesn't affect the optimization since it is a constant multiple. It is done so that all weights are 1 when the groups are of equal sizes. In your case the weight is 1 because there is just one cross group comparision. Thus the loss function for that loading is sqrt(sqrt(0.003^2+0.01))=.316 


Dr. Asparouhov, thank you so much for taking the time to address my questions. It has been tremendously helpful! I have a general question about the Alignment approach. In many applications of multiple group factor analysis when the outcome variables are continuous, you will see a sequence of progressively more restrictive invariance tests performed, and distinction made between metric invariance (invariance of factor loadings) and scalar invariance (invariance of factor loadings, and item intercepts). It is only once metric invariance is found as a tenable hypothesis, that the hypothesis of scalar invariance is considered. In some ways the focus on testing for metric invariance first and then scalar invariance seems unnecessary to me when the goal is to compare factor means across groups. I wonder if this is perhaps a bit of a historical artifact stemming from the fact that EFA was based on correlation matrices, and then CFA expanded this to covariances matrices, and then Joreskog (1971) expanded CFA to multiple groups, and then Sorbom (1974) expanded multiple group CFA to include a mean structure. I am wondering if the Alignment approach makes this hierarchical distinction between metric and scalar invariance? 


With alignment you can compute factor means and compare the factor means across groups even when full loading invariance is not fulfilled. As long as loading invariance and intercept invariance is violated to some minor extent factor means will be estimated well, see the simulation studies in Section 5 http://statmodel.com/examples/webnotes/webnote18.pdf 


I agree that testing metric first is a bit of a historical artifact. Alignment does not make the distinction between metric and scalar invariance. 


I know this has been asked before, but given there is a recent, new version out, I wanted to confirm. Can ordered categorical data be handled by the alignment in version 7.2? 


Not yet. You can use BSEM with the Diff priors as an alternative. 

Joana posted on Thursday, July 03, 2014  7:33 am



Hello, I’m testing measurement invariance of a scale in two groups because I need to compare means between both. For this and based on webonte 18 and on article from schoot et al (2013), I decided to use: alignment = fixed (bsem) approach. But I have some difficulties to understand the output. More specifically on the following issues: 1 I got this message USE THE FBITERATIONS OPTION TO INCREASE THE NUMBER OF ITERATIONS BY A FACTOR OF AT LEAST TWO TO CHECK CONVERGENCE AND THAT THE PSR VALUE DOES NOT INCREASE. I added to the model (in 3 different times) FBITERATIONS= 1000, 5000, 20000 and I always get the same message. This means that the model doesn’t converge and I can’t continue with the invariance analysis? 2 The results from the alignment output indicate that the intercepts of 3 items (in 14) are variant between the 2 groups. How do I know the model has a good fit? Can I say that the measure is approximately invariant between the 2 groups? How can I calculate the factor scores to compare factor means between the 2 groups? Thank you for help. Best Regards Joana Carvalho 


1. That is an automatic message that always comes out and does not reflect on the quality of your run. You should check that the PSR is 1 for the different FBITER runs and if the results are approx the same. 2. When a minority of the measurement parameters are noninvariant the factor means and variances for the different groups are typically trustworthy. As our website handout for the May UCONN M3 workshop shows you can do a Monte Carlo study to check that the factor means and variances are dependable. No need to compute factor scores to compare the factor means. 

Joana posted on Wednesday, July 09, 2014  2:05 pm



Thanks very much for your help! Before the means comparison I tried to study the quality of the alignment results and run a monte carlo simulation according to the following papers: IRT studies of many groups: the alignment method (version 2  july 2014) and New Methods for the Study of Measurement Invariance with Many Group (october 2013), and I have one more doubt:  After running the model I get the following warning message: "All variables are uncorrelated with all other variables within class" and I can't figure out what I did wrong on input specification... Is this the reason why I don't get the correlations results to evaluate the quality of alignment results? Thanks again for your help. Best regards Joana Here is an excerpt of the input: Montecarlo: NAMES ARE mhc1mhc14; ngroups=2; nobservations=2(2000); Nreps=50; ANALYSIS: type= mixture; ESTIMATOR=ml; alignment=fixed(1); processors=8; Model population: %OVERALL% f1 BY mhc1mhc3*1; f2 BY mhc4mhc9*1; f3 BY mhc10mhc14*1; %g#1% f1 BY mhc1*0.67816 ; f1 BY mhc2*0.67552 ; 


Perhaps you are not specifying factor variances. 


I have used the alignment optimization method and want to use the results in a subsequent SEM analysis. Is it possible in an alignment optimization analysis to save the factor scores and then use those factor scores in a subsequent analysis? As in: Analysis: Type = mixture; estimator = bayes; alignment = fixed(1); thin=50; fbiterations = (5000); model: ... savedata: file is fscores.txt; save = fscores(10); Thank you 


Yes, this is possible. 

Tait Medina posted on Sunday, December 14, 2014  10:37 am



I have noticed that when I have few groups (<10) that ALIGNEMENT=FREE tends not to work and I have to move to ALIGNEMNENT=FIXED. However, when I have more groups (15 or more), ALIGNMENT=FREE does tend to work. Are there any characteristics of the data that you would say tend to support ALIGNMENT=FREE? Have you seen this in regards to increases in group number? 


For ALIGNMENT=FREE to work well you need a certain level of noninvariance. The more noninvariance there is the better ALIGNMENT=FREE will be compared to ALIGNMENT=FIXED. The more groups you have the more likely it is that enough noninvariance will be accumulated to warrant ALIGNMENT=FREE. 


With 7.3 and the ordinal alignment method: I have two CFA factors specified, and in one of them there are a few (necessary) items with 3 categories, the rest have 4 categories. I notice that Mplus suddenly considers these 3categorical items as 4categorical items (with the last category empty), judging by the "Univariate proportions and counts" and the nonidentification errors. Is this a bug/not yet implemented? Or is it yet impossible for this method? Any legitimate workarounds? Collapsing all items is here problematic... Cheers 


Please send the input, data, and output to support@statmodel.com. 

Tait Medina posted on Tuesday, February 10, 2015  8:30 am



Do you have any current recommendations for how to test if the factor variances estimated using the alignment method are significantly different across any two groups? Thank you. 


You can use MODEL TEST or MODEL CONSTRAINTS to look at the difference between the variances. 


Hello A few questions about ordered categorical alignment. In the SEM paper you state the parameters are, by default, reported in a standardized metric in the MODEL RESULTS part of the output. Then, is it appropriate to interpret thresholds from a binary or ordered categorical alignment as zscore units and the loading as standardized loadings? RelatedAbove Dr. Asparouhov said the theta parameterization was used for specifying the configural model, but not when minimizing the loss function with respect to the intercepts and loadings How does the theta parameterization in the earlier part of the estimation impact the results reported in the MODEL RESULTS section? 


The standardized results can be obtained using OUTPUT:STANDARDIZED command. The theta parametrization is the only one available at this time with the ordered categorical variables. The MODEL RESULTS are reported in the theta parametrization. 


I have a dataset with 835 participants and 45 continuous variables. Participants came from 7 different studies, which range from 40 to 346 participants. To examine invariance (in factor loadings, intercepts, etc) across the 7 samples, I am using multiple group factor analysis with alignment=fixed. My model terminates normally, however, I get the following warning messages: WARNING: THE MODEL ESTIMATION HAS REACHED A SADDLE POINT OR A POINT WHERE THE OBSERVED AND THE EXPECTED INFORMATION MATRICES DO NOT MATCH. AN ADJUSTMENT TO THE ESTIMATION OF THE INFORMATION MATRIX HAS BEEN MADE. THE CONDITION NUMBER IS 0.158D+02. THE PROBLEM MAY ALSO BE RESOLVED BY DECREASING THE VALUE OF THE MCONVERGENCE OR LOGCRITERION OPTIONS OR BY CHANGING THE STARTING VALUES OR BY USING THE MLF ESTIMATOR. THE STANDARD ERRORS OF THE MODEL PARAMETER ESTIMATES MAY NOT BE TRUSTWORTHY FOR SOME PARAMETERS DUE TO A NONPOSITIVE DEFINITE FIRSTORDER DERIVATIVE PRODUCT MATRIX. THIS MAY BE DUE TO THE STARTING VALUES BUT MAY ALSO BE AN INDICATION OF MODEL NONIDENTIFICATION. THE CONDITION NUMBER IS 0.315D17. PROBLEM INVOLVING PARAMETER 117. NOTE THAT THE NUMBER OF PARAMETERS IS GREATER THAN THE SAMPLE SIZE. An earlier reply stated that the first warning message may be disregarded. May the other 2 warning messages be disregarded as well? 


We need to see the full output  please send to support@statmodel.com along with your license number. 


Hello Dr. Asparohouv, Thank you for your response about the parameterization of estimates in the model results section on 3/3. I have been thinking more about this and have a follow up question I hope you can answer. I am doing a simulation study on the polytomous alignment for my dissertation. For my model population, I am specifying starting values that use results from a real, single group, data analysis. I want to make sure that there is not a mismatch between the metric of the results from the real data analysis and what I input for the alignment simulation. To ensure this, should I complete the real data analysis using PARAMETERIZATION=THETA, then input those results in my model population for simulating in the alignment framework? I am just trying to simulate data that are characteristic of the real factor analysis I did with one group. Previously I have completed a single group polytomous factor model with the default, DELTA. Does this create a mismatch? Or, in other words, when I input the results from the real single group, polyomous factor model using DELTA into model population using the alignment, is it interpreting those as being THETA parameterized starting values? I apologize for my long question, I hope this is clear. 


It is a mismatch. You should analyze the real data using PARAMETERIZATION=THETA and use those values in model population. Alternatively you can redo the real data analysis using the ML estimator (which is based on the theta parameterization as well). 


Dr. Asparouhov, Thank you for getting back to me so quickly. Very helpful to have confirmation on this issue, will rerun! 


I have two questions on the "FACTOR MEAN COMPARISON" part of the output. This output reports results using a 5% significance level. 1) I am wondering whether there is a way to apply a correction for multiple testing. Can e.g. the exact pvalues be requested to apply Bonferroni correction? 2) Since the output is labeled "Groups With Significantly Smaller Factor Mean", is the applied test onetailed or twotailed? Many thanks Johannes 


1) You can use code like this to get the exact pvalue model: f by y1y5; %C2% [f] (m2); %C3% [f] (m3); model constraints: new(md); md=m2m3; The pvalue reported for md is the exact value. 2) It is twotailed. 


I am running a multigroup alignment analysis. Is it possible to obtain fit indexes (RMSEA, etc) for the final model? 


You can get that using model=configural command. This is a sample input. VARIABLE: NAMES=y1y5; ANALYSIS: MODEL = CONFIGURAL; MODEL: f by y1y5; 

Back to top 