### Provisional Script for LCGA, one class, following Ram, Grimm & Estabrook (2017) script on GMM, pg. 148 class1 <- mxModel('Class1', type='RAM', manifestVars=c('depression_scale_2','depression_scale_3','depression_scale_4','depression_scale_5','depression_scale_6','depression_scale_7','depression_scale_8','depression_scale_9'), latentVars=c('eta_1','eta_2'), # residual variances mxPath(from=c('depression_scale_2','depression_scale_3','depression_scale_4','depression_scale_5','depression_scale_6','depression_scale_7','depression_scale_8','depression_scale_9'),arrows=2, free=TRUE, values=1, labels='theta'), # latent variances and covariance mxPath(from=c('eta_1','eta_2'), arrows=2, connect='unique.pairs', free=TRUE, values=c(0,0,0), labels=c('psi_11', 'psi_12', 'psi_22')), # intercept loadings mxPath(from='eta_1', to=c('depression_scale_2','depression_scale_3','depression_scale_4','depression_scale_5','depression_scale_6','depression_scale_7','depression_scale_8','depression_scale_9'), arrows=1, free=FALSE, values=1), # slope loadings mxPath(from='eta_2', to=c('depression_scale_2','depression_scale_3','depression_scale_4','depression_scale_5','depression_scale_6','depression_scale_7','depression_scale_8','depression_scale_9'), arrows=1, free=FALSE, values=c(-3,-2,-1,0,1,2,3,4)), # latent variable means mxPath(from='one', to=c('eta_1', 'eta_2'), arrows=1, free=TRUE, values=c(1, 6), labels=c('alpha_1_c1', 'alpha_2_c1')), # ML Fit Function to run for each individual mxFitFunctionML(vector=TRUE) ) # close model for class 1 classRP1 <- mxMatrix('Full', 1, 1, free=c(TRUE), values=1, lbound=0.001, labels=c('p1'), name='RProps') classP1 <- mxAlgebra(RProps %x% (1 / sum(RProps)), name='Props') algObj1 <- mxAlgebra(-2* sum(log(Props[1,1] %x% Class1.objective)), name='mixtureObj1') obj1 <- mxFitFunctionAlgebra('mixtureObj1') lcga.1.means <- mxModel('1Class Means LCGA', mxData(observed=ML_dfwide, type='raw'), class1,classRP1, classP1, algObj1, obj1, mxComputeSimAnnealing()) lcga.1.means.fit <- mxRun(lcga.1.means) mxTryHard_lcga.1.means.fit <- mxTryHard(lcga.1.means, intervals = TRUE, exhaustive = TRUE) # Run the model, returning the result into model summary(mxTryHard_lcga2cl_Fit) mxStandardizeRAMpaths(mxTryHard_lcga.1.means.fit, SE=FALSE)