

Partial conditional independence 

Message/Author 


Hello, in the Mplus user's guide example 7.16 describes a latent class analysis with partial local independence. Is the method desribed comparable to the term "direct effect" which is used by Hagenaars (1988) or Magidson and Vermunt (2004)? Can I use the method of Mplus to account for a lack of conditional independence between a continous indicator and a nominal indicator? Best Christopher Hagenaars, J. A. (1988). Latent structure models with direct effects between indicators: Local dependence models. Sociological Methods and Research, 16, 379405. Magidson, J., & Vermunt, J. K. (2004). Latent class models. In D. Kaplan (Ed.), The Sage handbook of quantitative methodology series for the social sciences (pp. 175198). Thousand Oaks, CA: Sage. 


I believe this is what they call a direct effect. You can do this with one nominal and one continuous. 

Lewina Lee posted on Thursday, February 16, 2012  2:45 pm



Drs. Muthen, In Mplus User's Guide Version 5, example 7.16 describes LCA with partial conditional independence in one of the classes such that a latent factor (f) loads on 2 continuous indicators (u2, u3). Example 7.22 models correlations among continuous indicators y1y4. Are specifying latent factors (f) and correlations among indicators both valid ways of testing conditional dependence among indicators? If not, how are they different? My indicators are subscale scores on different measures (e.g., intelligence subscales A, B, C; personality subscales I, II, III). I want to test for residual covariance among subscales from the same construct. Is there a preferred way to do this? For instance: F1 by A B C; F2 by I II III; vs. A with BC; B with C; I with IIIII; II with III; Thank you for your help, Lewina 


Residual covariances cannot be specified using WITH when numerical integration is involved. This is because each residual covariance requires one dimension of integration. Otherwise, WITH can be used. In your case, I believe WITH is allowed. Your BY statements are not correct. Each residual covariance requires one BY statement, for example, f BY u1@1 u2; f@1; [f@0]; where the residual covariance is found in the factor loading for u2. 

Lewina Lee posted on Tuesday, February 21, 2012  1:20 pm



Dear Linda, Thank you for your reply. I have 21 continuous indicators, each representing a subscale score under 4 separate measures (e.g., intelligence, personality). I first attempted to run latent profile analyses with k=1 through k=8 & conditional independence. As a second step, I attempted to test for conditional dependence among indicators of the same measure. Per your earlier response, I specified conditional dependence via: MODEL: %overall% A1 with A2A4; A2 with A3A4; A3 with A4; B1 with B2B7; B2 with B3B7; (and so forth) I estimated a 1class solution & a 2class solution. I received error messages regarding "AN ILLCONDITIONED FISHER INFORMATION MATRIX", "A NONPOSITIVE DEFINITE FISHER INFORMATION MATRIX", "NONPOSITIVE DEFINITE FIRSTORDER DERIVATIVE PRODUCT MATRIX" & "SINGULARITY OF INFORMATION MATRIX." Parameters involving residual covariances were referenced. What can I do? Also, how can I show that there is little or no conditional dependence across subscales of the same measure? Thank you for your insight. Lewina 


I think your approach should work. Please send to support to more clearly see what is going on. 

I Exley posted on Monday, January 18, 2016  11:05 am



Drs Muthen, I am running a LC model with 5 categorical & 2 count indicators. The 5 class model has better fit & made substantive sense. Tech10 zscore for bivariate residuals (categorical vars) were fine but residuals for count variables had high zscores (6.739 & 13.271). I used the syntax for partial conditional independence (7.16, UG) but get error messages "invalid threshold" Should I adjust for lack of independence and if so, what is the problem in model 1b below? Thank you, Model 1a: categorical = Mdrug3 adOPIin adSTIin adOPIus adSTIus; count = numNIdrug poly4w2; IDvariable = subjectid; classes = c(5); Analysis: Type=mixture; Estimator = MLR; starts = 800 20; Model: %overall% C ON City Model 1b: usevariables = Mdrug3 adOPIin adSTIin adOPIus adSTIus numNIdrug poly4w2 City; categorical = Mdrug3 adOPIin adSTIin adOPIus adSTIus; count = numNIdrug poly4w2; classes = c(5); Analysis: Type=mixture; Estimator = MLR; Algorithm = Integration; starts = 400 20; Model: %overall% f by numNIdrug poly4w2; f@1; [f@0]; %c#1% [Mdrug3$1adOPIin$1adSTIin$1adOPIus$1adSTIus$1]; f by numNIdrug poly4w2; C ON City 


Model 1b seems like a possible way to go. Delete the hyphen (dash) between the thresholds. Actually, you don't need to mention them because they vary across classes by default. 

Back to top 

