Message/Author 


Dear Mplus team, In LGMM, how does one model different degrees of heteroschedasticity for each class? Also, how does Mplus allow one to model error structures in LGMM for each class (e.g., antedependence, etc)? Thanks! 

bmuthen posted on Thursday, May 12, 2005  9:32 pm



By heteroscedasticity, do you mean classvarying variances? If so, simply mention the variance within a class and it will be given a classspecific variance estimate  e.g.: %c#2% i; By error structures do you mean correlated residuals? If so, simply say ...WITH.. within class. If not, please expand. 


More specifically, how would one model different degrees of variance for the indicators in the LGMM? For a model where GPA1 and GPA2 were indicators of GPA for two different semesters, could I allow correlated residuals and estimate item variances simultaneously by writing: %c#2% GPA1 WITH GPA2; Also, could I use the ON command with these same variables to model antedependence?: %c#2% GPA2 ON GPA1; 

bmuthen posted on Thursday, May 12, 2005  10:39 pm



With 2 indicators of a factor, you could not identify a residual covariance between the indicators. To let the residual variances vary across classes, say %c#2% GPA1 GPA 2; The ON command is used correctly in your message to let it be specific to class 2. I don't know what "antedependence" means. 


I have seven semesters of data, so it should work out. Also, how can I specify (seperately) the relationship among variables and the relationship among variable errors. I want to allow error variances to be predicted by the temporally preceding error variance (hence the term "antedependence"  sorry, I thought this term was more widely used). However, if I use the ON statement, will I not be telling Mplus to regress each semester onto each preceding semester, as opposed to each semester's residual in a LGMM? (This is the only thing that really confuses me about Mplus  I cannot seem to understand how to specify, with precision, freed/fixed/correlated variances or other terms not normally modeled in the program  LISREL is cumbersome, but it's so easy to specify what you want estimated/related and what you don't, because of the ability to specify each matrix seperately. Is there anyway to work with Mplus in matrix notation?) Thanks for the assistance. 

bmuthen posted on Friday, May 13, 2005  12:56 pm



If you have a measurement model like: (1) y = a*f + e, where f is the factor and e is the residual, you make it possible to work with e by defining a new factor e BY y@1; Note that the residual defined automatically by the usual statement (2) f BY y*a; needs to be deleted by saying (3) y@0; to not end up with 2 residuals. You then say y ON e@1; which together with (2) and (3) means that you have created (1). Note that you can check what you have specified by requesting Tech1 which uses matrix notation in line with the LISREL "all y" representation. If you are unsure, you can check without doing any estimation by saying iterations = 1; Once you have defined a set of e residuals this way, you can say e2 ON e1; etc. 


I'm sorry, but I don't understand. I get what you're aiming at (i.e., creating a vector of errors by establishing a link to from y to e@1 when the link from y to f is @0), but I'm a bit lost. When are the variables "e1" & "e2" defined so that I may reference them. If I insert "f BY y@0", am I not saying f is unrelated to y? I know that "e BY y@1" and "y ON e@1" are not redundant statements, but in concert don't they dissalow me from estimating f? Again, I'm sorry, but I think there's an underlying logic/language here that I'm missing. I've read the book, but is there any section you suggest I read again? 

bmuthen posted on Friday, May 13, 2005  4:33 pm



No, you should not say "f BY y@0" (that's not part of what I stated). With the example of 2 indicators (although that is not identified), you say f by y1y2; !to define the true factor e1 by y1@1; y1@0; !to define residual factors e2 by y2@1; y2@0; !actually, I don't thinkthe next 2 statements are !needed given the 2 above y1 on e1@1; !to have y be a function not only of !f but also of e y2 on e2@1; Then you can say things like e2 on e1; Hope that helps. 


That helps very much, although I have two last Qs. 1) Whenever you state that e1@1 (or e2@1) occurs as a function of y, does that not preclude y from loading on f at any level other than 0, or does it simply mean that e and f will have to share variance in y? In other words, does the @1 mean that you're setting the loading to 1, or is it analogous to telling Mplus to freely estimate the path? 2) When you write "e1 by y1@1; y1@0;" what is the y1@0 indicating? It comes outside of the "e1 by y1@1;" statement, but does it still have a relation to e1? Thanks again! p.s. the possibility of a wardrobe malfunction on an internet stats class broadcast is very funny. 


A variable name refers to a variance or residual variance depending on the model. So e1@1 fixes the variance of e1 to one. The BY statement is used to define the factor. e1 BY y1@1 fixes the factor loading to one. See Chapter 16 of the Mplus User's Guide for a full description of the MODEL command. 

bmuthen posted on Saturday, May 14, 2005  3:48 pm



1) Saying y1 on e1@1; means that the regression coefficient is fixed at 1 in the regression of y1 on e1. This unit reg coeff is what we have (although the 1 is invisible) in the usual regression: y1 = lambda1*f + e1 So, no, this does not preclude y from loading on f beause earlier we said f by y1*; Putting the f by y1 and y on e1@1 statements together (which is what Mplus does) gives y1 as a function of both f and e1. And, yes, this means that the y1 variance is composed of f variance and e1 variance. 2) Here, y1@0 fixes the variance of the usual residual at zero. Since the mean of the residual is zero, this implies that the residual itself is zero. That is what we want because e1 takes the role of the residual. I just put the statement on the same line as the e1 by y1@1 statement for compactness and I could have put it on a separate line. I'm glad the web videos give some amusement. 


Hi there, just to add to this question: can I model correlated errors (as mentioned in the above discussion) in a crosslagged path analysis with some count outcomes? i am modeling repeated measures on a count variable for half of my model and would like to try that. i tried the method above, but i get a message stating "Variances for count variables are not currently defined." I know many of these techniques don't necessary apply to counts. Thanks for any advice you might have! Susan 


You can include correlated residuals in the model but each one will constitute one dimension of integration. More than four is not advised. You can do this using the BY option as shown in Example.7.16. 


Hi Linda, I guess I don't understand your suggestion? As far as I can tell, Ex 7.16 is dealing with LCA? I just have a measuredvariable crosslagged path analysis with two outcome variables measured over five waves. Right now, if I don't put anything regarding the points/dimensions of integration, it automatically does 175 points of integration and 7 dimensions. I am not sure how to decrease the dimensions or use them, but that doesn't seem to be the issue (?) My problem is: I am not really sure how to make a "typical" crosslagged path analysis work with the counts. i want to correlate the residuals in this model and have my 2 outcomes covary with each other at each time point. it seems to be some kind of a problem with getting variance/covariance matrices for the count variable? when i run the same model with MLR and specifying the count variables as continuous variables instead, it works just fine. Susan 


Another related question: if I cannot include covariance between the 2 variables at each point, could I use the ON statement to do a regression of the one on the other? would that approximate the typical crosslagged path analysis covariation appropriately? Thanks again for the help! Best, Susan 


The part of Example 7.16 you should be looking at is the F BY construction which is how you specify a residual correlation. Please send your output and license number to support@statmodel.com so I can see where you get so many dimensions of integration. 

Back to top 