Message/Author 


I'm trying to implement the SatorraBentler strictly positive chisquare difference test as described in Mplus Web note 12 for a factor mixture model with 4 classes. I have followed the procedure outlined in the web note except that to prevent Mplus from updating the start values, I have set convergence, mconvergence, logcriteria and rlogcriteria parameters to large values. Despite all this, Mplus takes a 2nd iteration in the EM algorithm regardless of how high I set the convergence parameters. If I put in start values with more then 3 significant digits, like 6 significant digits, which is considerably more work then using the svalues feature, Mplus still takes a 2nd iteration even though almost nothing changes. Is there something else that has to be set? 


Mike Try miter=1 or send your example to support@statmodel.com Tihomir 


I tried setting miter=1 and then Mplus tells me that an insufficient number of E steps have been taken and I don't get the MLR scaling factor that I need to compute the strictly positive test. I will send you the example and data. 


I am running into the same problem as presented above with estimating an m10 model. I have tried increasing the convergence, but there are iterations in the 'gradient' and 'quasinewton' sections. Is there any more news on this issue? Thank you. 


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


I am also running into this same problem with type=random and algorithm=integration. When I set miter=1, it tells me "THE MODEL ESTIMATION DID NOT TERMINATE NORMALLY DUE TO AN INSUFFICIENT NUMBER OF E STEPS. INCREASE THE NUMBER OF MITERATIONS. ESTIMATES CANNOT BE TRUSTED" and it does not give me any loglikelihood or scaling factors. Was there a resolution to this problem that would allow me to get the scaling factor for the M10 model? 


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


Can anyone report back on the solution to this issue? Here is the analysis statement I am using to produce the m10 model: ANALYSIS: type=mixture random; ESTIMATOR=mlr; PROCESSORS = 8; algorithm=integration; !convergence=100000000; miter=1; Thanks! 


You should not comment out the CONVERGENCE option. 


Hi Linda, When I include the MITER statement, I received the following warning whether or not I have the convergence=100000000 statement included: THE MODEL ESTIMATION DID NOT TERMINATE NORMALLY DUE TO AN INSUFFICIENT NUMBER OF E STEPS. INCREASE THE NUMBER OF MITERATIONS. ESTIMATES CANNOT BE TRUSTED. 


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


Dear Muthéns, I performed a LMS model with 2 groups (type=mixture random; algorithm=integration). Subsequently, I computed a SB scaled Chi square difference test to compare a model without the interaction term (Model 0) to a model with the interaction term (Model 1). Thus the result of the SB scaled Chi square difference test was negative, I tried to estimate a third model (Model M10). I followed web note 12, example 1. My models are: M0 – Model without interaction term, output: svalues; M1 – Model with interaction term in each group; M10 – 1) Model produced by svalues; 2) adding the interaction term in each group (f3 on f1xf2) Question: Is this the right procedure for LMS models? I am asking because the scaling correction factor of M10 is smaller than the scaling correction factor of the M1 model – thus the chisquare is still negative. Mplus is fixing the interaction term automatically to zero. Thank you very much. 


If you have only a single XWITH interaction you only need the ztest for its slope. 


Thanks! 


Good morning, I'm also having a hard time figuring out where my strictlypositive chisquare difference test is going wrong. I'm doing an LCA with KNOWNCLASS , so my restricted M0 model is constraining the parameters to be equal between the two known classes (sex), while the M1 model is allowing the parameters of the 2 latent classes to differ by the KNOWNCLASS. I have tried using the starting values from the M0 output and setting CONVERGENCE=1000000000; MITER=1; or both. The resulting models either take iterations in the gradient or quasinewton sections or fail to converge (INSUFFICIENT NUMBER OF E STEPS). Any help would be appreciated. Thank you, Michelle Carras 


Try using miter=1; STARTS = 0; algo=ODLL; mconv=100000000; 


Dr. Asparahouv, Thank you very much for that suggestion. I found that making that change fixed the problem with the analysis taking iterations, but some other problems emerged. I was unable to get Mplus to estimate more parameters when I cut and pasted the starting values from the M0 output where parameters were constrained between the two knownclasses (sex). I ended up removing the starting values from the 2nd knownclass (i.e., the G#2.C#1 and G#2.C#2 specific statements) to fix this problem. This produced a saddle point error message in estimation (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.) It did estimate the correct number of parameters and examination of the latent class patterns showed that thresholds differed. The computation of chidiff using this LL1 and cd value seemed to be feasible, but I wonder if taking the additional step of removing the starting values for the G2 knownclass invalidates or defeats the purpose of using STARTS=0 and taking other steps to ensure that the M10 model is correctly specified? Thanks for your input, Michelle 


If I am not mistaken, in the M10 model you need to remove the parameters constrains between the two knownclasses. If the loglikelihood value for the M10 model is not the same as the loglikelihood value for the M0 model the procedure is not valid. 


Dear Drs. Asparouhov and Muthen, I have a question regarding computing the correct scaling correction factor for the strictly positive SatorraBentler chisquare for comparing a onefactor CFA to a twofactor CFA. However, I am having the same problems as the previous poster on this thread. Here is the relevant syntax I am using for the models: M0 Model: ANALYSIS: TYPE=COMPLEX; ESTIMATOR=MLR; MODEL: DV BY SDV1SDV70 EDV1EDV70; OUTPUT: STANDARDIZED SVALUES; M1 MODEL: ANALYSIS: TYPE=COMPLEX; ESTIMATOR=MLR; MODEL: SDV BY SDV1SDV70; EDV BY EDV1EDV70; OUTPUT: STANDARDIZED; M10 Model: ANALYSIS: CONVERGENCE=100000000; TYPE=COMPLEX; ESTIMATOR=MLR; MODEL: SDV BY SDV1SDV70; EDV BY EDV1EDV70; OUTPUT: STANDARDIZED TECH5; Also in the syntax for the M10 model I included the starting values for the parameters obtained in the output for the M0 model. I did not list them here in the interest of conserving space, as there are many indicators of each factor Is this the correct way to specify the M10 model for the onefactor vs. twofactor comparison that I am interested in? Thanks! 


Maybe there is some confusion regarding the scale of the latent variables. I think it is easier to do this using the metric where the latent variables have a variance fixed to 1. Try these MODEL M0: DV BY SDV1SDV70*1 EDV1EDV70*1; DV@1; MODEL M1: SDV BY SDV1SDV70*1; SDV@1; EDV BY EDV1EDV70*1; EDV@1; SDV with EDV; MODEL M10: SDV BY SDV1SDV70*(M0 sv); SDV@1; EDV BY EDV1EDV70*(M0 sv); EDV@1; SDV with EDV*1; 


Dr. Asparouhov, Thank you for the quick response. This seems like it should work, but I think I may be misunderstanding the M10 syntax. When I specify each starting value from the M0 model, I get the following error messages: THE ESTIMATED COVARIANCE MATRIX COULD NOT BE INVERTED. COMPUTATION COULD NOT BE COMPLETED IN ITERATION 1. CHANGE YOUR MODEL AND/OR STARTING VALUES. THE MODEL ESTIMATION DID NOT TERMINATE NORMALLY DUE TO AN ERROR IN THE COMPUTATION. CHANGE YOUR MODEL AND/OR STARTING VALUES. Here is the syntax I am using for the M10 model (x.xxx represents the starting values from the M0 model): SDV BY SDV1*x.xxx SDV2*x.xxx ... SDV70*x.xxx; SDV@1; EDV BY EDV1*x.xxx EDV2*x.xxx ... EDV70*x.xx; EDV@1; SDV WITH EDV*1; Because of this error, there is no log likelihood value to compare to the value from the M0 value. I am guessing that I am just specifying the syntax incorrectly, but am not sure how it should be respecified. Do you have any suggestions? Thanks again! Marc Goodrich 


These indicators must be categorical then. Try SDV WITH EDV*0.9999; If this doesn't work send it to support@statmodel.com 


Thank you. This suggestion worked, when used in conjunction with: miter=1; STARTS = 0; algo=ODLL; mconv=100000000; My apologies for not mentioning that the indicators were categorical previously. 


Hello, I am new to MPlus (although not SEM). I am using CFA to try to compare a singlefactor model with 16 items and a firstorder model with four correlating factors. I followed the helpful instructions in previous posts and on Web Notes 12 to calculate the strictly positive SatorraBentler chisquare (as I am using MLR estimation and have a negative scaling correction). However, I am having difficulty with the M10 model, as I am not certain what to do with parameters that are not in both models. Here is the input for Model M0 and Model M1: MODEL M0 MODEL: F1 by T1PGI01T1PGI16; MODEL M1 MODEL: RC by T1PGI02 T1PGI08 T1PGI11 T1PGI16; PL by T1PGI01 T1PGI03 T1PGI05 T1PGI10 T1PGI13; UR by T1PGI06 T1PGI12 T1PGI14; IB by T1PGI04 T1PGI07 T1PGI09 T1PGI15; When creating M10, I know to copy the starting values for the parameters, but since I am using different factors, I am not certain how to do this correctly. Thank you! Any help would be appreciated. 


You should read this paper first as there are some limitations in the likelihood ratio test for that purpose Hayashi, K., Bentler, P. M., & Yuan, K. (2007). On the likelihood ratio test for the number of factors in exploratory factor analysis.Structural Equation Modeling, 14, 505–526. Here is the proper setup for the strictly positive test MODEL M0: F1 by T1PGI01T1PGI16*1; F1@1; MODEL M10: (put in the starting values from M0 results) RC by T1PGI02* T1PGI08* T1PGI11* T1PGI16*; PL by T1PGI01* T1PGI03* T1PGI05* T1PGI10* T1PGI13*; UR by T1PGI06* T1PGI12* T1PGI14*; IB by T1PGI04* T1PGI07* T1PGI09* T1PGI15*; RCIB with RCIB@1; RCIB@1; MODEL M1: RC by T1PGI02*1 T1PGI08 T1PGI11 T1PGI16; PL by T1PGI01*1 T1PGI03 T1PGI05 T1PGI10 T1PGI13; UR by T1PGI06*1 T1PGI12 T1PGI14; IB by T1PGI04*1 T1PGI07 T1PGI09 T1PGI15; RCIB@1; 


Dear Dr. Asparouhov, Thank you for your quick reply! I will look into the paper and make the corrections to the models. I appreciate your help as I learn this process! 


Hello again Dr. Asparouhov, I've run the models using your suggestions. M0 and M1 look good. Unfortunately, when I run M10, I receive the following error message: THE STANDARD ERRORS OF THE MODEL PARAMETER ESTIMATES COULD NOT BE COMPUTED. THE MODEL MAY NOT BE IDENTIFIED. CHECK YOUR MODEL. PROBLEM INVOLVING THE FOLLOWING PARAMETER: Parameter 19, RC BY T1PGI02 THE CONDITION NUMBER IS 0.249D+00. THE ROBUST CHISQUARE COULD NOT BE COMPUTED. I must not be specifying something correctly in the M10 syntax. (I did make sure to set the convergence to equal 100000000.) Do you know what might be causing this error message? Thank you again for your help! 


Please send your output to Support along with your license number. 


Ingrid you have done the inputs correctly and the outcome is not unexpected. 1. I calculated the regular SB chisquare using your output files and it is not negative. See http://statmodel.com/chidiff.shtml There is no point in computing the more complicated version given that result, particularly because of the fact the result is so decisive, chi2 = 144 with 6 df, the more restricted model is rejected, and particularly because this result agrees with BIC and regular LRT. 2. The strictly positive SB chisquare assumes that the models are "close" to work properly. When the models are not close you can get a result as yours. Thus we would not recommend using the strictly positive SB test when the regular SB is not negative or in disagreement with other criteria. 


Thank you Dr. Asparouhov! I must have calculated the original SB chisquare incorrectly. I apologize, as I doublechecked the information I'd entered. I will look back at the link you've provided and work through it. I appreciate the time you've taken to help me with this. 


Hello again Dr. Asparouhov, Somehow, I am still calculating a negative chisquare. I'm using the formula for calculating the difference based on MLR chisquare, and I wonder if I'm using the wrong correction factor when calculating cd. I'm using the "H0 Scaling Correction Factor for MLR" provided under Loglikelihood for both models. Should I be using the "Scaling Correction Factor for MLR" provided under ChiSquare Test of Model Fit instead? Thank you again for all of your help! 


Both methods yield the same result (always). Here are the details of the computation: H0 Number of Free Parameters 48 H0 Value 6634.193 H0 Scaling Correction Factor 1.1694 H1 Number of Free Parameters 54 H0 Value 6443.525 H0 Scaling Correction Factor 1.3330 Using the notation from http://statmodel.com/chidiff.shtml cd=(54*1.333048*1.1694)/(5448)=2.6418 TRd=2*(6443.525(6634.193))/2.6418=144.347 


Thank you Dr. Asparouhov! I have one question. According to the notation on http://statmodel.com/chidiff.shtml, the first number for TRd is 2, not 2. This would then make the result negative. Am I looking at this correctly? 


Ingrid a very basic check one your computations is the following: if the correction factors for H0 and H1 are identical  so will be cd. In addition if this correction factor is 1 then the result should be identical to the regular LRT. You can use either of this versions TRd = 2*(L0  L1)/cd or TRd = 2*(L1  L0)/cd I used the second above. 


OK, this makes sense. Thank you again for all of your time and help! 

Back to top 