fitFunction <- mxFitFunctionML(rowDiagnostics=TRUE) mxOption(NULL,"Default optimizer","SLSQP") ### to avoid msg error: https://openmx.ssri.psu.edu/node/4238 quadratic_gm_lifesatisf <- mxModel('Quadratic Growth Model, Path Specification', fitFunction, type='RAM', mxData(observed=dfwide_OpenMx, type='raw'), manifestVars=c('life_satisf_2','life_satisf_3','life_satisf_4','life_satisf_5','life_satisf_6','life_satisf_7','life_satisf_8','life_satisf_9'), latentVars=c('eta_1','eta_2','eta_3'), # residual variances mxPath(from=c('life_satisf_2','life_satisf_3','life_satisf_4','life_satisf_5','life_satisf_6','life_satisf_7','life_satisf_8','life_satisf_9'), arrows=2, free=TRUE, values=1, labels='theta'), # latent variable variances & covariances mxPath(from=c('eta_1','eta_2','eta_3'), connect='unique.pairs', arrows=2, free=TRUE, values=c(1,1,1,0.5,0.5,0.5), labels=c('psi_11','psi_21','psi_31','psi_22','psi_32','psi_33')), # factor loadings mxPath(from='eta_1', to=c('life_satisf_2','life_satisf_3','life_satisf_4','life_satisf_5','life_satisf_6','life_satisf_7','life_satisf_8','life_satisf_9'), arrows=1, free=FALSE, values=1), mxPath(from='eta_2', to=c('life_satisf_2','life_satisf_3','life_satisf_4','life_satisf_5','life_satisf_6','life_satisf_7','life_satisf_8','life_satisf_9'), arrows=1, free=FALSE, values=c(0, 1, 2, 3, 4, 5, 6, 7)), mxPath(from='eta_3', to=c('life_satisf_2','life_satisf_3','life_satisf_4','life_satisf_5','life_satisf_6','life_satisf_7','life_satisf_8','life_satisf_9'), arrows=1, free=FALSE, values=c(0, 1 , 4, 9, 16, 25, 36, 49)), # latent variable means mxPath(from='one', to=c('eta_1','eta_2','eta_3'), arrows=1, free=TRUE, values=c(1,1,1), labels=c('alpha_1','alpha_2','alpha_3')) ) # Close Model quadratic_gm_lifesatisf = mxModel(quadratic_gm_lifesatisf, mxCI(c('psi_11','psi_21','psi_31','psi_22','psi_32','psi_33', "theta", 'alpha_1','alpha_2','alpha_3'))) # list the things you want CIs for. quadratic_gm_lifesatisf = mxRun(quadratic_gm_lifesatisf, intervals= T)