The saved examples below were generated with nlpsem 1.0.0.9006;
extdata/REGENERATED.txt records the versions and how the
fits compare with the previous ones. Rendering this guide does not refit
its disabled model-fitting chunks. Refit with the current version for a
new analysis, use getDiagnostics() to check admissibility
and uncertainty, and compare multiple starts for difficult nonlinear or
mixture models. These examples are not evidence of numerical
qualification.
# Load ECLS-K (2011) data
data("RMS_dat")
RMS_dat0 <- RMS_dat
# Re-baseline the data so that the estimated initial status is for the
# starting point of the study
baseT <- RMS_dat0$T1
RMS_dat0$T1 <- RMS_dat0$T1 - baseT
RMS_dat0$T2 <- RMS_dat0$T2 - baseT
RMS_dat0$T3 <- RMS_dat0$T3 - baseT
RMS_dat0$T4 <- RMS_dat0$T4 - baseT
RMS_dat0$T5 <- RMS_dat0$T5 - baseT
RMS_dat0$T6 <- RMS_dat0$T6 - baseT
RMS_dat0$T7 <- RMS_dat0$T7 - baseT
RMS_dat0$T8 <- RMS_dat0$T8 - baseT
RMS_dat0$T9 <- RMS_dat0$T9 - baseT
# Standardize time-invariant covariates (TICs)
## ex1 and ex2 are standardized growth TICs in models
RMS_dat0$ex1 <- scale(RMS_dat0$Approach_to_Learning)
RMS_dat0$ex2 <- scale(RMS_dat0$Attention_focus)
## gx1 and gx2 are standardized cluster TICs in models
RMS_dat0$gx1 <- scale(RMS_dat0$INCOME)
RMS_dat0$gx2 <- scale(RMS_dat0$EDU)
xstarts <- mean(baseT)getSummary() function, with HetModels = TRUE
specified.Math_BLS_LGCM1 <- getLGCM(
dat = RMS_dat0, t_var = "T", y_var = "M", curveFun = "BLS", intrinsic = FALSE,
records = 1:9, tries = 10
)
Math_BLS_LGCM2 <- getMIX(
dat = RMS_dat0, prop_starts = c(0.45, 0.55), sub_Model = "LGCM", y_var = "M",
t_var = "T", records = 1:9, curveFun = "BLS", intrinsic = FALSE, tries = 10
)
set.seed(20191029)
Math_BLS_LGCM3 <- getMIX(
dat = RMS_dat0, prop_starts = c(0.30, 0.40, 0.30), sub_Model = "LGCM", y_var = "M",
t_var = "T", records = 1:9, curveFun = "BLS", intrinsic = FALSE, tries = 10
)Figure1 <- getFigure(
model = Math_BLS_LGCM1@mxOutput, nClass = NULL, cluster_TIC = NULL, sub_Model = "LGCM",
y_var = "M", curveFun = "BLS", y_model = "LGCM", t_var = "T", records = 1:9,
m_var = NULL, x_var = NULL, x_type = NULL, xstarts = xstarts, xlab = "Month",
outcome = "Mathematics"
)
show(Figure1)
#> figOutput Object
#> --------------------
#> Trajectories: 1
#> Figure 1:
#> `geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'Figure2 <- getFigure(
model = Math_BLS_LGCM2@mxOutput, nClass = 2, cluster_TIC = NULL, sub_Model = "LGCM",
y_var = "M", curveFun = "BLS", y_model = "LGCM", t_var = "T", records = 1:9,
m_var = NULL, x_var = NULL, x_type = NULL, xstarts = xstarts, xlab = "Month",
outcome = "Mathematics"
)
show(Figure2)
#> figOutput Object
#> --------------------
#> Trajectories: 1
#> Figure 1:
#> `geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'Figure3 <- getFigure(
model = Math_BLS_LGCM3@mxOutput, nClass = 3, cluster_TIC = NULL, sub_Model = "LGCM",
y_var = "M", curveFun = "BLS", y_model = "LGCM", t_var = "T", records = 1:9,
m_var = NULL, x_var = NULL, x_type = NULL, xstarts = xstarts, xlab = "Month",
outcome = "Mathematics"
)
show(Figure3)
#> figOutput Object
#> --------------------
#> Trajectories: 1
#> Figure 1:
#> `geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'getSummary(model_list = list(Math_BLS_LGCM1@mxOutput, Math_BLS_LGCM2@mxOutput, Math_BLS_LGCM3@mxOutput),
HetModels = TRUE)
#> Model No_Params -2ll AIC BIC Y_res_c1 %Class1 Y_res_c2 %Class2
#> 1 Model1 11 31347.39 31369.39 31415.75 34.0030 100% NA <NA>
#> 2 Model2 23 31134.61 31180.61 31277.55 34.2368 67.4% 31.5801 32.6%
#> 3 Model3 35 31022.74 31092.74 31240.25 25.9356 20% 32.4419 42.2%
#> Y_res_c3 %Class3
#> 1 NA <NA>
#> 2 NA <NA>
#> 3 31.5999 37.8%getDiagnostics() reports slightly indefinite
class-specific covariance matrices of the growth factors in the saved
two-class solution (class 2) and three-class solution (classes 1 and 3),
so refitting these calls returns them with a warning. Weigh the class
enumeration with this in mind.
set.seed(20191029)
RM_BLS_PLGCM3 <- getMIX(
dat = RMS_dat0, prop_starts = c(0.30, 0.40, 0.30), sub_Model = "MGM",
cluster_TIC = c("gx1", "gx2"), t_var = c("T", "T"), y_var = c("R", "M"),
curveFun = "BLS", intrinsic = FALSE, records = list(1:9, 1:9),
y_model = "LGCM", tries = 10, paramOut = TRUE
)Figure4 <- getFigure(
model = RM_BLS_PLGCM3@mxOutput, nClass = 3, cluster_TIC = c("gx1", "gx2"),
sub_Model = "MGM", y_var = c("R", "M"), curveFun = "BLS", y_model = "LGCM",
t_var = c("T", "T"), records = list(1:9, 1:9), m_var = NULL, x_var = NULL,
x_type = NULL, xstarts = xstarts, xlab = "Month",
outcome = c("Reading", "Mathematics")
)
show(Figure4)
#> figOutput Object
#> --------------------
#> Trajectories: 2
#>
#> Trajectory 1 :
#> Figure 1:
#> `geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'#>
#> Trajectory 2 :
#> Figure 1:
#> `geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
The saved three-class bivariate solution is flagged in the same way: the covariance matrices of the growth factors in classes 2 and 3 are slightly indefinite.