Multilevel mixture model PreviousNext
Mplus Discussion > Latent Variable Mixture Modeling >
Message/Author
 Anonymous posted on Wednesday, September 21, 2005 - 1:38 pm
Dear Bengt and Linda:

I have a 2-group solution in a growth mixture model I am estimating, and would like to incorporate a 2-level GMM for this continuous outcome (very similar to Ex 10.4 in the MPLUS manual).

What is the minimum number of observations required per cluster? Most of my "clusters" consist of single members, with the rest comprising anywhere from 2-7 members. Should I consider aggregating some of the clusters, in order to make the multilevel specification work?
 BMuthen posted on Wednesday, September 21, 2005 - 3:25 pm
Clusters of one or more are allowed. Cluster size does not have as strong as an effect on the estimation as the number of clusters where we recommend from 30-50 as a minimum.
 Anonymous posted on Thursday, September 22, 2005 - 8:15 am
That's great, Bengt, as I have 72 clusters in my sample.

This does, however, diverge from "regular" multilevel modeling rules of thumb that call for at least 30 members within at least 30 groups (Hox, for instance). I wonder how GMM handles this, as I would imagine it splits up the sample into "within" and "between" covariance matrices, which would likely require multiple members in each cluster.

If you don't mind, Bengt, would you please help me with the following questions:

1. Ex 10.4 in the manual uses a variable c that has pre-determined class membership values. This is in contrast to the regular GMM where c is just identified in the CLASSES statement with no individual membership defined a priori for the observations. Would you please confirm that this variable is populated by first running a GMM WITHOUT the multilevel setup, and using the SAVEDATA CPROBABILITIES option to create the additional variable c?

If this is so, would not the class membership possibly change when a multilevel specification is used?

2. I also notice you provide starting values for some parameters (c#1 , ib, and sb in Ex10.4)? Does this help MPlus's integration algorithm, and are these obtained from the previous GMM single-level run?

3. Why are the residual variances and slope factor (sb) for the BETWEEN model fixed to 0? (p. 241 of the manual states that this "...in line with conventional multilevel growth modeling." Could you please clarify?). I understand that numerical integration becomes complex with each additional residual to be estimated, but why are these particular residuals fixed?

Thanks so much for your insights and your time, Bengt. Both are GREATLY appreciated!
 Anonymous posted on Friday, September 23, 2005 - 6:56 am
Dear Bengt and Linda:

Would you please refer me to some references on multilevel growth mixture models? I have already read the example in the MPLUS manual and Bengt's chapter in Kaplan's book, and would like to read more on the interpretation of MPLUS output for these types of models.

Thanks very much!
 bmuthen posted on Friday, September 23, 2005 - 8:19 am
Re Sept 22, 2005 - 08:15

1. The c variable in ex 10.4 does not have predetermined class membership - class membership is inferred from the data as in other mixture analyses.

2. Yes, some of the starting values are approximate values obtained from a previous single-level run and therefore help in finding the optimal solution.

3. Regular HLM modeling/software does not allow between-level residual variances, but Mplus does. A zero value is often a good approximation because there is typically rather little time-specific between-level variation - but there are exceptions so this Mplus capability can be important.
 bmuthen posted on Friday, September 23, 2005 - 8:21 am
Re Sept 23, 2005 - 06:56

No other papers are finished to date. I am planning to produce such papers and I am glad I have a potential reader.
 Anonymous posted on Friday, September 23, 2005 - 9:38 am
Thanks, Bengt.

I do have a couple of follow-up questions on multivel GMM:

1. I did check ex10.4.dat, and found the variable c (referred to in the NAMES command in Ex10.4) populated with pre-existing values (1 or 2). Aren't these class memberships derived from a previous run without a TWOLEVEL specification? If not, why do we refer to the c variable in the NAMES command, and how is the c variable populated? Regular GMM runs do not require the latent categorical class variable to be referred to in the NAMES statement.

2. I notice that Ex10.4 has class-specific means estimated in the BETWEEN model. My understanding is that this allows the growth fator means to vary by cluster.
Prior to running the TWOLEVEL specification, I had a 2-class GMM estimated, with class-specific parameters(freely estimated growth processes, factor means, and residual variances).
(How) can I estimate class-specific means and/or class-specific regressions in the WITHIN model? That is, how do I allow the prototypical class member to have a separate growth process?

Thanks for your help with these issues, Bengt. This is fairly hairy stuff!!
 bmuthen posted on Sunday, September 25, 2005 - 6:40 pm
1. Ah, I see where the misunderstanding comes in. I guess Ex 10.4 did not use a pedagogical choice of names for the variables. The "c" in the VARIABLE list is not the same as the "c" in the CLASSES = statement. I have c in the VARIABLE list because the data was generated by Monte Carlo and then you get the class membership. But the analysis does not use this c variable as you can see from the USEVARIABLES list. So the "c" in the CLASSES = statement is a totally different variable for which the latent classes are inferred, not known in advance. So for purposes of understanding this analysis, you should ignore that "c" was one of the variables read in the data.

2. If you think of the 2-level modeling as concerning students in schools, the latent class variable concerns students, not schools (the latter could be added, but we haven't done that yet). So classes are formed by student patterns. Also, if you think about 2-level regression models you have the means of observed student variables appearing on level 2 - same thing here. All other class-specific parameters can be specified on level 1 (within).

Hope this helps.
 Kersi Antia posted on Monday, September 26, 2005 - 2:56 pm
This is indeed very helpful, Bengt...thanks.

I did run the model as you suggested, and got a solution to converge.

However, when I attempt to specify class-specific regressions in the %WITHIN% model, I get an error message to the effect that starting values or nonidentification may be a problem.

I have taken the liberty of sending MPLUS product support my data, program, and output files. I would greatly appreciate any tips you might have on resolving this.
 SAllua posted on Friday, November 18, 2005 - 9:56 pm
Hi Dr. Muthén ,
When you say, "...the latent class variable concerns students, not schools (the latter could be added, but we haven't done that yet)", does that mean latent class modeling at L2 can be done in V3.13?

Thanks for your help!
 BMuthen posted on Saturday, November 19, 2005 - 8:19 am
A complete treatment of a between-level categorical latent variable is not available in Version 3.13. But there are certain special cases that can be handled so if you let me know which model you are interested in I could think about how to do it.
 SAllua posted on Friday, November 25, 2005 - 7:30 am
Thank you for your interest. Could you clarify what you mean when you say, "A complete treatment of a between-level categorical latent variable.."? I have read through various articles by Vermunt and Vermunt & Magidson and it appears that in Vermunt (2003) Applications of Latent Class Analysis in Social Science Research http://spitswww.uvt.nl/~vermunt/lnai2003.pdf , that he provides an example of using latent class analysis at both the between and within level. It is not clear, however, if the methedology behind this example and an example such as ex10.2 (Mplus manual) with the addition of a latent class at L2 is similar. Also, it is unclear which software was used and I would prefer to use Mplus for my analysis. Thank you.
 bmuthen posted on Saturday, November 26, 2005 - 6:34 am
Let me remind myself about that paper and get back to you.
 SAllua posted on Monday, January 02, 2006 - 1:49 pm
Following up from the previous discussion regarding Vermunt and LCA, is the main difference between your example 10.2 (two-level CFA mixture model with continuous factor indicators) and 10.3 (two-level CFA with categorical LC indicators with covariates) have to do with 10.2 incorporating both common factor analysis and LCA whereas 10.3 is only LCA? Is it correct to say the example 10.2 is a factor mixture model? I have read work by Lubke & Muthen 2005 - Investigating Population Heterogeneity with Factor Mixture Models) and Lubke & Muthen (Performance of factor mixture models) and am still interested in how an example such as 10.2 can also incorporate LC at the between-cluster level.

Thanks for your assistance.
 bmuthen posted on Monday, January 02, 2006 - 2:40 pm
Yes, 10.2 has both CFA and LCA features in that there is factor variance within each class. So, yes, 10.3 is a factor mixture model - in multilevel form. When you say that you want LCA features on the between-cluster level, do you mean a LCA model applied to the between-level circles y1-y5 in the model diagram, where classes differ in these variables' means? Can you tell me what the application is in order to focus the thinking?
 SAllua posted on Monday, January 02, 2006 - 3:43 pm
Thanks for your quick reply. Just to clarify, is it 10.2 that is a ML factor mixture model and 10.3 is not a ML factor mixture model as 10.3 does not include a CFA? I am still trying to understand how Vermunt uses ML LCA to identify, what appears to be, latent classes at L1 and L2 where employees (L1) are nested in teams (L2) http://spitswww.uvt.nl/~vermunt/sm2003.pdf (pg. 228) and if this differs from your example 10.2 with the addition of LC at L2.

For the LC at L2, I was thinking that there might be unobserved heterogeneity among the schools (L2) where latent classes could be modeled similar to how unobserved heterogeneity is modeled at L1, identifying latent classes among individuals.
 SAllua posted on Thursday, February 09, 2006 - 5:40 pm
For example 10.2, I am having trouble interpreting the output where the following syntax was used:

TITLE: this is an example of a two-level CFA
mixture model with continuous factor
indicators
DATA: FILE IS ex10.2.dat;
VARIABLE: NAMES ARE y1-y5 c clus;
USEVARIABLES = y1-y5;
CLASSES = c (2);
CLUSTER = clus;
ANALYSIS: TYPE = TWOLEVEL MIXTURE;
STARTS = 0;
MODEL:
%WITHIN%
%OVERALL%
fw BY y1
y2 (1)
y3 (2)
y4 (3)
y5 (4);

%BETWEEN%
%OVERALL%
fb BY y1
y2 (1)
y3 (2)
y4 (3)
y5 (4);
c#1*1;
%c#1%
[fb*2];
OUTPUT: TECH1 TECH8 TECH11;


1. Are the between class means (fb) interpreted as the mean of the class across all observations such that, for this example, the mean of class 1 is 2.2 units higher than class 2, the reference group with mean = 0?
2. Under categorical latent variables, can you please explain how to interpret the Within Level C#1 mean and the between level variance for C#1?
3. Have you or are you aware of anyone who has used a multilevel factor mixture model in an applied setting?

Your help is greatly appreciated.
 bmuthen posted on Saturday, February 11, 2006 - 7:00 am
1. that's right

2.The c mean gives the class probability. On between c refers to the random mean - a continuous latent variable that varies across clusters.

3. I have used multilevel growth mixture modeling in an example of student growth in math achievement - see my 2004 chapter in the Kaplan handbook for which we have a pdf on our web site. I am not aware of other applications so your work will be interesting. Keep asking questions.
 Shane Allua posted on Tuesday, March 28, 2006 - 8:26 am
Hello,
I am revisiting the interpretation of a between factor mean in a multi-level factor mixture model and have confused myself.

When interpreting the between factor mean in a multi-level factor mixture model where the latent
classes are at the individual level, is school irrelevant? In other
words, the between factor mean is not interpreted as the school mean
for latent class 1 versus the school mean for latent class 2. Can you
help clarify how the latent class is at the within level but the
between factor mean at the school level is interpreted to determine if
the classes of individuals differ significantly on the factor mean?

Thank you!
 Bengt O. Muthen posted on Tuesday, March 28, 2006 - 8:33 pm
This is a little tricky to keep track of. The current mixture approach in Mplus considers latent classes for variables measured on individuals. The means that vary across classes are means for those variables measured on individuals. The means help form the latent classes of individuals. These means are reported on the between level. So when individuals are nested within schools, it is not school means but means for variables measured on individuals. Seeing the means on the between level is analogous to 2-level regression where say a random intercept has a mean and this mean appears on the between level (level 2). Means are not estimated on within (level 1). And where the level 1 predictor has mean zero, this intercept mean is the mean of the variable measured on the within level.

In future Mplus versions, we will also have a latent class variable varying on the between level. That would be a school-level variable, classifying different schools.
 Fernando Terrés de Ercilla posted on Tuesday, July 10, 2007 - 11:00 am
I’m fitting a multilevel model with random slopes. The level-1 error distribution is clearly leptokurtic (kurtosis=4.9). My questions: I think that a mixture could solve this issue, if so, what kind of mixture (within, as ex.10.1 or between, as V4.2 ex.1)? Any references or examples will be appreciated. Many thanks.
 Bengt O. Muthen posted on Tuesday, July 10, 2007 - 12:53 pm
I think this could be a good use of the Mplus mixture capabilities. Seems like it could be handled by using (say) a 2-class within-level c that lets the intercept vary across the classes. If the mixture is not of substantive interest, the estimated intercept means can be weighted together using the estimated class probabilities.
 Fernando Terrés de Ercilla posted on Thursday, July 12, 2007 - 2:21 am
Thank you very much; your suggestion solved the issue. My data is epidemiologic (standardized rates of occupational accidents at work), and using a 2-class within-level c and letting the (between-level) intercept vary across the classes, I got a normative class (97.3% of 982 cases) and an extra-normative class (2.7% of 982 cases). The level-1 error kurtosis dropped from 4.9 to 0.98 in class-1, and -0.82 in class-2.
Now, some additional (and I hope final) questions: 1) Why did you suggested to let the intercept (a between-level issue) vary across the classes, instead of the residual variance (a within-level issue), as one can suspect when talking about the level-1 errors? 2) I don’t understand what you mean with “the estimated intercept means can be weighted together using the estimated class probabilities” (the classes, after careful inspection, don’t seem to have a substantive meaning).
Mplus: What a wonderful world!!!
 Matthew Cole posted on Thursday, July 12, 2007 - 4:20 am
Dear Fernando,

I hope you don't mind that I'm chiming in here, but I'm kind of working with a similar model with some data I have.

Regarding your second question. Haven't you identified that there are two meaningful classes (normative vs extra-normative)? Therefore, I think the suggestion is to weight the means by the class probabilities reported in the output. This way the means are reflecting the differences in the two classes. I'm sure I'll be corrected if I've described it incorrectly. >Matt
 Fernando Terrés de Ercilla posted on Thursday, July 12, 2007 - 8:31 am
Thank you Matt, you are welcome. I'm a bit clumsy: do you mean some kind of post-proccessing of the results? or do you mean to make a second run with Mplus and some kind of weights? In either case, what means, the between-level means (by probabilities I understand the posterior probabilities, is that correct)? Then, what can be done with the weighted data?.
Do you have any references? Fer.
 Bengt O. Muthen posted on Thursday, July 12, 2007 - 8:55 am
What I referred to in terms of weighting means is in line with "pattern-mixture" modeling of missing data. In that case you are typically interested in the overall estimates, mixed over the missing data patterns, not the estimates from each and every pattern.

So in your case you could consider the mixture as simply a vehicle for getting a more realistic residual distribution but you are still interested in only one overall intercept estimate. This is obtained as

i-overall = w1* i-1 + w2*i-2,

where w1 is the estimated probability for class 1 and i-1 is the class 1 mean (etc for class 2).
 Bengt O. Muthen posted on Thursday, July 12, 2007 - 9:01 am
My last post answered 2) of Fernando's question above.

Regarding 2), you want a non-normal level-1 residual instead of the standard normal. The non-normality is accomplished by having a within-level latent class variable because then you have a mixture of two normals for the residual - this mixture is a very flexible distribution.
 Fernando Terrés de Ercilla posted on Thursday, July 12, 2007 - 11:22 am
Completely clear. With respect to the second question it is only academic curiosity, the issue was: why to put in level-2:
%c#1%
[y*];
%c#2%
[y*];
instead of:
%c#2%
y*;
in level-1?
Literally: Why two mixtures with different means and equal variances instead of two mixtures with equal means and different variances?
Fer.
 Bengt O. Muthen posted on Friday, July 13, 2007 - 10:25 am
You could try 2 classes with equal means and different variances, but I think this model would be hard to fit given that the class with smaller variance is a subset of the class with larger variance. Typically, mixtures need mean separation.
 Christian M. Connell posted on Tuesday, May 06, 2008 - 11:53 am
We are working on a multilevel LCA (though with only 18 clusters and very low ICC). One question -- we're trying to replicate Example 10.6 (LCA with both within and between level covariates). Our LCA produces a 4-class solution -- so we're estimating F with c#1-c#3.

Can you clarify how one interprets F and the effect of a cluster-level covariate on F? The measurement model for F and the effect of w appears constant across latent classes (as it does in your output for 10.6). How would one interpret a significant (negative) effect of w on F in this context?

Also, as a follow-up -- given the limited number of clusters and low icc (.001-.003 for the 5 vars we're modeling as LCA indicators). Would it be appropriate to simply control for the clustering (to adjust standard errors with robust estimates) and not run a within/between groups model? Can you still include cluster-level predictors in the model (or do I need to enter cluster dummies as a fixed effect)?
 Bengt O. Muthen posted on Tuesday, May 06, 2008 - 4:18 pm
The ultimate influence of w on the u indicators via f and c is as follows. w influences the random intercepts c# differently in that f by c# has different factor loadings. So for example, for a given cluster a higher w gives a higher f which gives a higher (assuming a positive loading) value of say c#1. The higher c#1 value in this cluster gives a higher intercept value for c on x on level 1 and therefore increases the probability that the person who is in this cluster will be in class 1. Being in class 1 gives a certain u probability.

Yes, you can simply do Type=Complex instead and use cluster-level covariates.
 Christian M. Connell posted on Wednesday, May 07, 2008 - 6:00 am
Two follow-ups:

1) I'm still a bit unclear on interpretation of f in a 4-class solution, with the following results:

Latent
Classes

1 1025 0.12212
2 404 0.04816
3 2317 0.27593
4 4650 0.55378

MODEL RESULTS

Within Level

Between Level

Latent Class 1

F BY
C#1 1.000 0.000 999.000 999.000
C#2 0.165 0.166 0.995 0.320
C#3 0.505 0.369 1.367 0.172

F ON
DLUNCH -0.013 0.013 -1.009 0.313
DALL10 -0.042 0.011 -3.810 0.000
DDROPOUT 0.020 0.022 0.932 0.351

The implication would be that as DALL10 (a cluster-level covariate) increases, F decreases. However, the loadings of c#1-c#3 on F (and the effect of DALL10) are the same across all latent classes.

2) In reference to the latter issue (just controlling for clustering effect but still including cluster-level covariates) -- is it still appropriate to describe the effect as a cluster-level effect (e.g., those with a higher district-level achievement rating are less likely to engage in certain patterns of substance use)?
 Bengt O. Muthen posted on Wednesday, May 07, 2008 - 6:29 am
1) Yes, the loadings for f on the between level are the same across the classes. But f still has differential effect on the classes in that the loadings are different for the different c#'s, corresponding to the different classes. I wouldn't know how to interpret a loading for a given c# to also vary across the latent classes.

2) yes
 Eva Van de gaer posted on Monday, August 04, 2008 - 7:45 am
Hello,

I am trying to estimate a two-level growth mixture model but encounter some estimation problems. Can you please help me?
I get the following errors:
WARNING: THE SAMPLE COVARIANCE OF THE INDEPENDENT VARIABLES IN CLASS 1 IS SINGULAR. THE MODEL ESTIMATION DID NOT TERMINATE NORMALLY DUE TO A NON-POSITIVE DEFINITE FISHER INFORMATION MATRIX. THIS MAY BE DUE TO THE STARTING VALUES BUT MAY ALSO BE AN INDICATION OF MODEL IDENTIFICATION. THE CONDITION NUMBER IS -0.125D-17.
THIS MAY ALSO BE DUE TO LARGE THRESHOLDS. DECREASING (INCREASING) LOGHIGH (LOGLOW) MAY RESOLVE THIS PROBLEM. LARGE THRESHOLDS WERE FOUND
FOR:
* THRESHOLD 2 OF CLASS INDICATOR HOGESL FOR CLASS 1
* THRESHOLD 2 OF CLASS INDICATOR HOGESL FOR CLASS 2
THE STANDARD ERRORS OF THE MODEL PARAMETER ESTIMATES COULD NOT BE
COMPUTED. THIS IS OFTEN DUE TO THE STARTING VALUES BUT MAY ALSO BE
AN INDICATION OF MODEL NONIDENTIFICATION. CHANGE YOUR MODEL AND/OR STARTING VALUES. PROBLEM INVOLVING PARAMETER 5.
 Linda K. Muthen posted on Monday, August 04, 2008 - 9:35 am
Please send your input, data, output, and license number to support@statmodel.com.
 C. Sullivan posted on Tuesday, January 27, 2009 - 8:26 am
I am trying to estimate a multilevel LCA with students (~2500) nested in schools (37). We have twelve items in the LCA. Is there a means of estimating something akin to an "empty" model in a typical multilevel situation? This would be done in order to simply get a sense of whether there is variation in latent class estimates across schools. I'm not sure that I saw an example in the User's guide that captured this specific case (10.7?).
 Bengt O. Muthen posted on Tuesday, January 27, 2009 - 5:29 pm
You would use ex 10.6 without x, f, and w. The variances for the c# variables on Between would tell you if there is variation across schools.
 C. Sullivan posted on Tuesday, March 24, 2009 - 1:03 pm
I ran a multilevel LC model as specified in the example and am getting a message indicating nonidentification because there are more parameters (12 observed variables with mostly categorical levels of measurement and 5 latent classes) than clusters (37). Can this problem be resolved or does the relatively small number of between level units ensure that this particular model will be underidentified in the multilevel framework?
 Linda K. Muthen posted on Tuesday, March 24, 2009 - 3:10 pm
The message is saying that the number of total parameters being estimated in the model is more than 37. If you have more than 37 between parameters, this would present a problem because you in effect have more parameters than observations. If not, the effect is unknown although deemed to be not serious. The impact of this situation has not been studied as far as we know.
 K Frampton posted on Thursday, May 05, 2011 - 12:24 pm
I have a 3 class multilevel lca with 6 parenting indicators. There are 666 kids nested in 333 families. I want to use class to predict a distal outcome (child behavior). I also want to see if there is a sig interaction between a covariate (poverty) and class (i.e. allowing the effect of poverty to vary across class).

I'm not sure if I have the right syntax, and any guidance is appreciated:

Use variables are
Parenting 1-6
age boy poverty chbhvr;

classes = c(3);
cluster = famid;
within = age boy;
between = poverty;

analysis: type= twolevel mixture missing;
starts = 100 10;

model:
%within%
%overall%
chbhvr on age boy;
c on age boy;
%between%
%overall%
f by c#1 c#2;
f on poverty;
chbhvr on poverty;
%c#1%
chbhvr on poverty;
%c#2%
chbhvr on poverty;
%c#3%
chbhvr on poverty;
 Bengt O. Muthen posted on Thursday, May 05, 2011 - 6:52 pm
That looks like a reasonable start.

I wasn't sure that I understood your statement:

if there is a sig interaction between a covariate (poverty) and class (i.e. allowing the effect of poverty to vary across class).

I first thought you meant that the class probabilities were influenced by poverty, but your setup indicates that you think the influence of poverty on the between part of the distal varies across the classes. A class-varying slope like this is sometimes difficult to estimate well.
 K Frampton posted on Friday, May 06, 2011 - 2:23 pm
thank you! I'm having trouble getting my head around it myself...

I hope this helps to clarify my research questions, which are:

1. to identify mothers' parenting profiles. To this extent, the substantive nature of my question doesn't necessarily require a multilevel lca (originally, before extending to predict a distal, I was specifying a type=complex to account for nesting of multiple kids in a family). We aren't concerned about 'family level' clustering or modeling of the profiles.

2. identify covariates that predict profile membership (e.g., poverty).

3. identify if there is a significant interaction between profile and poverty in influencing child behaviour. I want to find out whether the influence of poverty on child behaviour varies across L1 profiles. Here the child behaviour is also nested (i.e. multiple kids in a family have scores).

It's question 3 that I'm having trouble conceptualizing and specifying in the multilevel syntax correctly. How do you capture this L1 Profile X L2 variable interaction on a distal?

Would you recommend running a lca with type=complex, saving the Cprob (entropy > 0.8), and then using that as an observed variable in a subsequent multilevel analysis?

Thanks again!
 Jen-Hua, Hsueh posted on Thursday, May 26, 2011 - 1:47 am
Hello,
I am trying to fit a Multilevel Mixture Model with a between level class variable as described in Asparouhov & Muthen (2008) .I have ten categorical indicators in between level, and two continuous indicators in within level. Is it reasonable to allow the two continuous indicators in within level to be correlated with each other and let the correlation vary in different latent classes? I can sccessfully get the result in Mplus, but I want to make sure. Does this model violate the conditional independence assumption of mixture model and the results are not trustworthy? Do I have to follow the EXAMPLE 7.16 in User's Guide to deal with the conditional dependence problem?

Asparouhov, T. & Muthen, B. (2008). Multilevel mixture models. In Hancock, G. R., & Samuelsen, K. M. (Eds.), Advances in latent variable mixture models, pp. 27-51. Charlotte, NC: Information Age Publishing, Inc.
 Linda K. Muthen posted on Thursday, May 26, 2011 - 3:21 pm
These covariances are not typically part of an LCA. If included they imply partial conditional independence.
 Artemis Koukounari posted on Thursday, June 02, 2011 - 8:57 am
Dear Professors,
I am trying to fit a TWO-LEVEL LTA (at the moment I am just trying 2 timepoints i.e 2 categorical latent variables with 2 classes in each of them but ideally I would like to test if I can increase these in the future) and I am also trying to use the parametric approach with the factor trick as in Henry and Muthen 2010. My question is if in the overall part of the between part of the model I need two factors for the random intercepts of the 2 categorical latent variables or just one because I have 2 categorical latent variables as I am in LTA and not LCA as in the paper. Having run both approaches it seems to me due to computational time and warning msgs that the 2nd approach is correct i.e.
%BETWEEN%
%OVERALL%
C2#1 ON C1#1;
FC BY C1#1 C2#1;
But is this really correct? Can you help me please as I cannot seem to find a relevant example/code for LTA?
Thank you so much,
Kind Regards,
Artemis
 Linda K. Muthen posted on Thursday, June 02, 2011 - 9:49 am
If you go to the website under Papers, you will find all of the inputs for the Henry and Muthen paper with the paper. Those should help.
 Artemis Koukounari posted on Thursday, June 02, 2011 - 9:55 am
Thanks very much for your quick response, I do have these inputs but they all are on LCA and not LTA, this is why I have posted this question. I am just not sure if I need two factors because I have two latent categorical variables or not. Thanks again!
 Artemis Koukounari posted on Thursday, June 02, 2011 - 10:08 am
Thank you for all yor responses and info and apologies to disturb you again but in the Henry and Muthen paper there is no documentation of the factor trick for LTA. Your statement about 'the one is mixed over classes and the other is for the most likely class' does it refer also for the same paper?
 Bengt O. Muthen posted on Thursday, June 02, 2011 - 4:10 pm
You wrote:

%BETWEEN%
%OVERALL%
C2#1 ON C1#1;
FC BY C1#1 C2#1;

but with only 2 classes per time point, the statement

C2#1 ON C1#1;

seems sufficient because that alone makes the 2 random intercepts correlate.

I think you are saying that you want to go to more than 2 classes and then you need to simplify the dimensionality by saying e.g. for 3 classes:

FC1 BY C1#1 C1#2;
FC2 BY C2#1 C2#2;

and perhaps have

FC2 ON FC1;
 Artemis Koukounari posted on Friday, June 03, 2011 - 3:28 am
This is very helpful thanks so much!!
I have a last question if I may please...I do understand what you recommended for the case of 3 classes. In this same case (i.e. 3 classes) apart from the 3 lines you posted would i need also to include in the overall part of the between part of the model the general statement of

C2 ON C1

for the correlation of the 2 random intercepts in the 2 classes or do I ommit this statement when I am trying to simplify the dimensionality?

Thanks again.
 Bengt O. Muthen posted on Friday, June 03, 2011 - 9:03 am
The short-hand form C2 ON C1 is I think only available for categorical latent variables, whereas on Between they are continuous (random intercept) variables. And if you write it out you would have - with 3 classes - 2 random intercepts at time 2 regressed on 2 random intercepts at time 1. This would then get high-dimensional. So the short answer is - don't have any such statement on Between.
 Artemis Koukounari posted on Friday, June 03, 2011 - 9:41 am
Great!!thanks so much for all the valuable comments and info.
 Artemis Koukounari posted on Sunday, July 03, 2011 - 12:03 pm
Dear Prof Muthen,
We have fitted a TWO-LEVEL LTA (3 timepoints i.e 3 categorical latent variables with 3 classes) by using the parametric approach with the factor trick as in Henry and Muthen 2010. In the overall part of the between part of the model we have:
FC1 BY C1#1 C1#2;
FC2 BY C2#1 C2#2;
FC3 BY C3#1 C3#2;
FC2 ON FC1;
FC3 ON FC2;
By looking at the following paper and using notation in formula 7 pp
218: Multilevel Latent Class Models by JK Vermunt 2003 http://spitswww.uvt.nl/~vermunt/sm2003.pdf
We cannot find in the MPLUS output the ESTIMATED FIXED INTERCEPT FOR EACH CLASS (IN THE NOTATION THEY ARE MENTIONED AS \gamma). Can you please indicate where we could find these?
Thanks,
BW,
Artemis
 Bengt O. Muthen posted on Sunday, July 03, 2011 - 1:34 pm
I think you are referring to the class probability related parameters, which would appear in the Between part of the output under a heading of either means or intercepts, and be called C#1 etc. If you can't find them, send output to support@statmodel.com.
 Junqing Liu posted on Friday, September 23, 2011 - 3:07 pm
I used the following syntax to run a two-level CFA mixture model. Two things in the output concern me.

1) The output says the standard errors of the model parameter estimates may not trustworthy because of the starting values or having more parameters than the numbers of clusters. I have 45 clusters and the model estimated 63 parameters. How I may change the syntax to reduce the numbers of parameters? Also, the size of the clusters ranges from 3-18. Is there a rule of thumb regarding the size of clusters?

2) The within cluster means of items are identical across classes. The between cluster means of the items are also identical across classes. What may cause the identical means or how to fix this problem? Still the p-value of tech 14 indicates the two class model fits better than one class model.

VARIABLE:
Usevariables=E1 E3 E10 E13 E25 E29 E2 E11 E12 E14 E15 E16 E17 E19 E26 agency;
CLASSES=C(2);
Cluster=agency;
ANALYSIS:
type = mixture twolevel;
Process=8(STARTS);
Starts=0;
Model:
%WITHIN%
%OVERALL%
fw BY E1 E3 E10 E13 E25 E29 E2 E11 E12 E14 E15 E16 E17 E19 E26;
%BETWEEN%
%OVERALL%
fb BY E1 E3 E10 E13 E25 E29 E2 E11 E12 E14 E15 E16 E17 E19 E26;
c#1*1;
%c#1%
[fb*2];

output:
tech11 tech14;
SAVEDATA: SAVE=CPROBABILITIES;
FILE IS ebppostprobs.dat;

Thanks a lot!
 Linda K. Muthen posted on Saturday, September 24, 2011 - 8:41 am
1. The only way to know the impact of having more parameters than clusters is to do a simulation study. See papers by Joop Hox related to number of observations per cluster.

2. Holding the intercepts and factor loadings equal is the default for factors. If you free the intercepts, you must fix the factor means to zero in all classes.
 Artemis Koukounari posted on Friday, April 20, 2012 - 9:18 am
Dear Bengt and Linda

We have fitted a TWO-LEVEL LTA (4 timepoints i.e 4 categorical latent variables with 4 classes) by using the non-parametric approach as in Henry and Muthen 2010. CB has 2 classes. That means that we have in the %BETWEEN% %OVERALL%

C1#1 ON CB;
C1#2 ON CB;
C1#3 ON CB;
C2#1 ON CB;
C2#2 ON CB;
C2#3 ON CB;
C3#1 ON CB;
C3#2 ON CB;
C3#3 ON CB;
C4#1 ON CB;
C4#2 ON CB;
C4#3 ON CB;

We have submitted for publication an applied stats paper which makes inference for PROPORTIONS FOR EACH LATENT CLASS VARIABLE BASED ON ESTIMATED POSTERIOR PROBABILITIES. Reviewer is asking for standard errors of these proportions. Is there a way we could calculate these from the estimated parameters the MPLUS output gives us?

Many thanks, BW

Artemis
 Linda K. Muthen posted on Friday, April 20, 2012 - 1:17 pm
You should be able to do this using MODEL CONSTRAINT where you define the parameters and thereby get standard errors for them. However, it would be very complicated to do given the multilevel nature of your data. You would need to get an expert to help you with this.
 Fangsheng Zhu posted on Monday, March 06, 2017 - 6:33 pm
Dear Professors,

If possible, I wish to hear your explications on the commands that seem to identify threshold structures, in the specifications of the within model in Example 10.7 in Mplus User Manual v6.

Why would we need the threshold commands here (if I understand it right that the [u1$1-u10$1] are meant to indicate thresholds)? And, why would we specify it twice?

I looked at other parts of the manual and didn't find readily available explanation on this. Thank you!

MODEL cw:
%WITHIN%
%cw#1%
[u1$1-u10$1];
[u1$2-u10$2];
%cw#2%
[u1$1-u10$1];
[u1$2-u10$2];
%cw#3%
[u1$1-u10$1];
[u1$2-u10$2];
%cw#4%
[u1$1-u10$1];
[u1$2-u10$2];
 Bengt O. Muthen posted on Tuesday, March 07, 2017 - 5:52 pm
They appear in each class to make sure that these thresholds are allowed to vary across classes. The first line is for the first threshold and the second line for the second threshold (in other words, the variable has 3 categories).
 Aurelie Lange posted on Friday, September 14, 2018 - 6:03 am
Dear Dr Muthen,

I was wondering whether it is possible to explore the portion of variance explained by different levels in the multilevel data, to help decide for which level we need to control.

I have data from a group intervention with couples. We have: 100 couples within 29 groups within 15 institutions.

As we merely want to control for the dependency in the data, I use TYPE=COMPLEX. Ideally I would want to control for both couples and group, however this does not seem possible with type=complex.

1. Is it possible to estimate the portion of variance explained by different levels in your data?
2. Is it possible to control for dependency on 2 different levels without specifying a within and between model?

Thank you for your advice.

Sincerely,
Aurelie
 Bengt O. Muthen posted on Friday, September 14, 2018 - 1:26 pm
Try Type = Threelevel Basic to see how big the variances are on the different levels.
 Aurelie Lange posted on Saturday, September 15, 2018 - 12:33 pm
Dear Dr Muthen,

Thank you for your quick reply. This does provide valuable information.

Is there consensus on the hight of the ICC that would require correcting for it (that would require taking that level into account)?

Thank you!

Aurelie
 Bengt O. Muthen posted on Sunday, September 16, 2018 - 11:53 am
No real rule of thumb here - it depends not only on the ICC, but also on how many observations you have per cluster. The best way to check is to check how the SEs differ when using Type=Complex versus not.
 Margarita  posted on Wednesday, February 06, 2019 - 6:06 am
Hi Dr. Muthen,

After getting the warning about the change in likelihood during the last E step likely due to negative abs in a multilevel mixture model (CACE) I increased the miterations to 1000 and integration points to montecarlo (5000), but I can see from TECH8 that there are still frequent large negative abs (up to -500). I have 6 dimensions of integration on the within and 2 on the between. From my estimations the model would take about a week to finish running. At which point in TECH8 can we conclude that the model will not converge?

Other similar models with the same sample but with different outcomes converge just fine, so this might be data specific.

Thank you
 Bengt O. Muthen posted on Wednesday, February 06, 2019 - 5:21 pm
It is very hard to deal with 6 dimensions -try to simply the model to have fewer dimensions.
 DONGHO CHOI posted on Thursday, December 12, 2019 - 1:07 am
Hi. I am trying to model a Between level latent class variable using a within observed variable in multilevel mixture model.
In Asparouhov & Muthen (2006), it is said I can easily do this by putting a "stochastic constraint" (i.e., class variables are constrained to be identical across cluster; https://www.statmodel.com/download/MultilevelMixtures2.pdf). I wonder this is how to implement:

!two level gmm
WITHIN = P1PPL; !(1 or 0)
BETWEEN = TREAT LC; !(1 or 0); !LC is between level class variable;
CLUSTER = TEACHER;
CATEGORICAL = training3; !(1 or 0); !training3 is within level observed data
CLASSES = LC(2);

~~~
%BETWEEN%
%OVERALL%
ib sb | SSIS0@0 SSIS1@1 SSIS2@2 SSIS3@3;
SSIS0-SSIS3@0;
[ib sb];
ib sb on TREAT;
ib* sb@0;

!compliers
%lc#1%
[training3$1@-15]; !observed data is constrained to be 1
[ib sb];
sb ON TREATMENT;

!never-takers
%lc#2%
[training3$1@15]; !observed data is constrained to be 0
[ib sb];
sb on TREATMENT@0;

Thanks!
 Tihomir Asparouhov posted on Thursday, December 12, 2019 - 3:47 pm
Why do you have SSIS0-SSIS3@0. That doesn't look correct.

Also your setup is contradictory. You model implies that
training3=LC

However, you say that training3 is a within level variable but LC is a between level variable. This must be fixed conceptually and in the model.

The quote from the article is not up to date. The command
BETWEEN = LC;
is now used directly instead of the stochastic constraint, to make a latent class variable be a between level variable.
 DONGHO CHOI posted on Sunday, December 15, 2019 - 12:00 am
Hi. Thanks for reply! I got a reply from support@statmodel.com and now I am fixing variance at 0.01 instead of 0.

I guess I need more recent resources. Yet, pardon me for bringing up the article again. I do have a follow up question.

In Asparouhov & Muthen (2006), it is said: "...The key question in modeling between level class variables is whether the within level observed variables can be used directly to identify the classes(p.9)".

It is also said: "... Between level latent class variables can be measured by within and between observed variables but can be predicted only by between observed variables(p.14)"

Doesn't this mean I can use within level variables to measure(or identify) between level class variable? I'd appreciate if you could correct me on this.

Many thanks in advance!
 Tihomir Asparouhov posted on Monday, December 16, 2019 - 11:10 am
You can use within level variables to measure between level class variable. Here is an example

VARIABLE:NAMES ARE u1-u8 clus;
CATEGORICAL = u1-u8;
within=u1-u8;
CLASSES = cb(2);
BETWEEN = cb;
CLUSTER = clus;

ANALYSIS: TYPE = TWOLEVEL MIXTURE;
ALGORITHM = INTEGRATION;

MODEL:

%WITHIN%
%OVERALL%
f BY u1-u8;
[f@0];

%cb#1%
[u1$1-u8$1];

%cb#2%
[u1$1-u8$1];

%BETWEEN%
%OVERALL%
 Marcus Pietsch posted on Monday, December 16, 2019 - 11:46 am
Hello,

I am trying to estimate a twolevel LCA indicated by level 1 (within) variables, but first want to check for classes on each level separately.

I know to do this for level 1. But I am not sure how to do this for level 2.

I have tried it this way:

Usevariables are
A01 A02 A04 A08 A09 A11 A15 A20 A22 A30;


classes = cb(2);
within= A01 A02 A04 A08 A09 A11 A15 A20 A22 A30;
between = cb;
Missing are blank;
cluster=clusterid;

Analysis:

Type=twolevel mixture;
processors= 2;
starts= 1000 100;


Model:

%between%
%overall%

Is this correct?

Thanks
 Marcus Pietsch posted on Monday, December 16, 2019 - 12:28 pm
Addition:

I guess I will have to use the "Cluster Mean" statement and add the newly defined variables to the between statement.

Is this correct?
 Bengt O. Muthen posted on Monday, December 16, 2019 - 1:31 pm
Using cluster means is probably a good approach.
 DONGHO CHOI posted on Monday, December 16, 2019 - 9:44 pm
Dear Dr. Asparouhov,

Thank you very much for your help! I have couple of questions about the details. Consider 2 lvl regression mixture model:

VARIABLE: NAMES ARE y x1 x2 w class clus;
USEVARIABLES = y x1 w u1-u8;
Categorical = u1-u8;
CLASSES = cb (2);
WITHIN = x1 u1-u8;
BETWEEN = w cb;
CLUSTER = clus;

MODEL:
%WITHIN%
%OVERALL%
y ON x1;
f BY u1-u8;
[f@0];

%cb#1%
[u1$1-u8$1];
y on x1;
y;

%cb#2%
[u1$1-u8$1];

%BETWEEN%
%OVERALL%
y ON w;
cb#1 ON w;

%cb#1%
[y*2];

Does this model make sense? Also, what is the role of f in the model? Do I need to consider correlation between f(or u1-u8) and other outcome variables (y)? Thanks again! :-)
 DONGHO CHOI posted on Monday, December 16, 2019 - 11:20 pm
Oh and is it possible to materials for example 9 in Muthen (2004)? I checked the link and this is not available. (https://www.statmodel.com/examples/penn.shtml#muthenexamples) And finally,

“…A key new feature in Figure 19.11 is the across-school variation cb in the individual-level latent class variable c. This part of the model makes it possible to study the influence of school-level variables on the class member probability for the students.” (Muthen, 2004; p.365)

does cb in this article correspond to a_cj in Asparouhov & Muthen (2000)? as it denotes: "...Within-between latent class variables can be measured and predicted by within level observed variables, while the random effects a_cj can be measured and predicted by between observed variables." (Asparouhov & Muthen, 2006)

Thanks for taking your time!
 Bengt O. Muthen posted on Wednesday, December 18, 2019 - 1:24 pm
First Choi post:

u1-u8 are latent class indicators in a regular LCA. The factor f allows within-class correlations - this is factor mixture modeling (see our papers on this). The factor f probably correlates with y but that's a substantive question.

Second post:

Which article is Muthen 2004? The cb variable is a latent class variable on Between while a_cj is a continuous random intercept.
 Bengt O. Muthen posted on Wednesday, December 18, 2019 - 1:39 pm
I guess you are referring to

Latent Variable Analysis Growth Mixture Modeling and Related Techniques for Longitudinal Data

If so, which page is example 9?
 DONGHO CHOI posted on Wednesday, January 01, 2020 - 11:07 pm
Dear Dr. Muthen,

Thanks for your comments! I will surely look into your papers on factor mixture modeling.

As for the second post, yes I am referring to that article. The page is 365.

Thanks again and happy new year! :-)
Tom
 Adam Garber posted on Wednesday, March 18, 2020 - 2:09 pm
Hello,

I am working on replicating the results of your RI-LTA paper as a class demonstration. The data set "Reading proficiency example" is in a format that I seem to be un-able to coerce into readable format (using either fixed width or delimiter methods)

https://www.statmodel.com/download/RILTA/dp.analytic.dat

Many thanks, Adam
 Bengt O. Muthen posted on Wednesday, March 18, 2020 - 2:33 pm
So you have used the Fortran-type FORMAT IS option?:

DATA:
FILE = dp.analytic.dat;
FORMAT IS f1.0, 20f2.0;

There is also a second version of this paper.
 Adam Garber posted on Wednesday, March 18, 2020 - 3:09 pm
Thank you, greatly appreciated.

Is the new version available on your website?

I have not been able to find a second version.
 Bengt O. Muthen posted on Wednesday, March 18, 2020 - 3:41 pm
Not yet posted - but I can send it.
 Adam Garber posted on Wednesday, March 18, 2020 - 6:25 pm
Yes, this would be greatly appreciated. If possible send to-

agarber@ucsb.edu
 Bengt O. Muthen posted on Thursday, March 19, 2020 - 11:32 am
This Version 2 of the paper is now posted on our home page and on our special RI-LTA page. Scripts for the Version 2 runs will be posted shortly.
 Rimantas Vosylis posted on Thursday, August 13, 2020 - 1:43 am
Dear support,

In one of the posts in this forum (dated 2006) you noted that "In future Mplus versions, we will also have a latent class variable varying on the between level. That would be a school-level variable, classifying different schools."

Is it possible to do it in current version 8? i.e., to extract latent classes on the "between" level variables?

I have two continuous variables that vary only on the school class) level and preliminary LCA analysis with aggregated data indicates the presence of 3 classes. I want to move these classes to unaggregated data, to see if some "within" level variable parameters differ across those three classes. My initial of LCA analysis on between level results in this error: "Parameters involving between-level observed variables are not allowed to vary across classes..."
It looks like it is not possible to run LCA on "between" level variables. But maybe I am doing something wrong here.

My syntax looks like this:
USEVARIABLES = bSGSMAS1 bSGSPER1;
BETWEEN = bSGSMAS1 bSGSPER1;
CLASSES = SGSCC(2);
CLUSTER = CLASSID;
ANALYSIS:
TYPE IS TWOLEVEL MIXTURE;
ESTIMATOR IS MLR;
MODEL:
%WITHIN%
%BETWEEN%
%OVERALL%
%SGSCC#1%
[bSGSMAS1*];
[bSGSPER1*];
%SGSCC#2%
[bSGSMAS1*];
[bSGSPER1*];

THANK YOU!
 Bengt O. Muthen posted on Thursday, August 13, 2020 - 6:18 pm
Yes, this is possible since some time. Look for UG examples with

Between = cb;

where cb is the between-level latent class variable.
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: