getMGroup {nlpsem} | R Documentation |
Fit a Longitudinal Multiple Group Model
Description
This function fits a longitudinal multiple group model based on the specified sub-model. Supported submodels include:
Latent growth curve models,
Latent change score models,
Latent growth curve models or latent change score models with a time-varying covariate,
Multivariate latent growth curve models or multivariate latent change score models,
Longitudinal mediation models.
For the first three submodels, time-invariant covariates are allowed.
Usage
getMGroup(
dat,
grp_var,
sub_Model,
t_var,
records,
y_var,
curveFun,
intrinsic = NULL,
y_model = NULL,
m_var = NULL,
x_type = NULL,
x_var = NULL,
TVC = NULL,
decompose = NULL,
growth_TIC = NULL,
starts = NULL,
res_scale = NULL,
res_cor = NULL,
tries = NULL,
OKStatus = 0,
jitterD = "runif",
loc = 1,
scale = 0.25,
paramOut = FALSE,
names = NULL
)
Arguments
dat |
A wide-format data frame, with each row corresponding to a unique ID. It contains the observed variables with repeated measurements and occasions for each longitudinal process, time-invariant covariates (TICs) if any, and a variable that indicates manifested group. |
grp_var |
A string specifying the column that indicates manifested classes. |
sub_Model |
A string that specifies the sub-model for manifested classes. Supported sub-models include |
t_var |
A string specifying the prefix of the column names corresponding to the time variable for each study wave.
This applies when |
records |
A numeric vector denoting the indices of the observed study waves. This applies when |
y_var |
A string defining the prefix of the column names corresponding to the outcome variable for each study wave. This
is applicable when |
curveFun |
A string specifying the functional forms of the growth curve(s). Supported options for |
intrinsic |
A logical flag indicating whether to build an intrinsically nonlinear longitudinal model. By default, this is
|
y_model |
A string that specifies how to fit longitudinal outcomes. Supported values are |
m_var |
A string that specifies the prefix of the column names corresponding to the mediator variable at each study wave.
By default, this is |
x_type |
A string indicating the type of predictor variable used in the model. Supported values are |
x_var |
A string specifying the baseline predictor if |
TVC |
A string that specifies the prefix of the column names corresponding to the time-varying covariate at each time
point. By default, this is |
decompose |
An integer specifying the decomposition option for temporal states. Supported values include |
growth_TIC |
A string or character vector of column names of time-invariant covariate(s) accounting for the variability
of growth factors if any. Default is |
starts |
A list containing initial values for the parameters. Default is |
res_scale |
A list where each element is a (vector of) numeric scaling factor(s) for residual variance to calculate the
corresponding initial value for a latent class, between |
res_cor |
A list where each element is a (vector of) numeric initial value(s) for residual correlation in each class. It
needs to be specified if the sub_Model is |
tries |
An integer specifying the number of additional optimization attempts. Default is |
OKStatus |
An integer (vector) specifying acceptable status codes for convergence. Default is |
jitterD |
A string specifying the distribution for jitter. Supported values are: |
loc |
A numeric value representing the location parameter of the jitter distribution. Default is |
scale |
A numeric value representing the scale parameter of the jitter distribution. Default is |
paramOut |
A logical flag indicating whether to output the parameter estimates and standard errors. Default is |
names |
A character vector specifying parameter names. Default is |
Value
An object of class myMxOutput
. Depending on the paramOut
argument, the object may contain the following slots:
-
mxOutput
: This slot contains the fitted longitudinal multiple group model. A summary of this model can be obtained using theModelSummary()
function. -
Estimates
(optional): IfparamOut = TRUE
, a data frame with parameter estimates and standard errors. The content of this slot can be printed using theprintTable()
method for S4 objects.
Examples
mxOption(model = NULL, key = "Default optimizer", "CSOLNP", reset = FALSE)
data("RMS_dat")
# Re-baseline the data so that the estimated initial status is for the starting point of the study
RMS_dat0 <- RMS_dat
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
RMS_dat0$ex1 <- scale(RMS_dat0$Approach_to_Learning)
RMS_dat0$ex2 <- scale(RMS_dat0$Attention_focus)
# Fit longitudinal multiple group model of bilinear spline functional form with fixed knot
MGroup_BLS_LGCM.TIC_f <- getMGroup(
dat = RMS_dat0, grp_var = "SEX", sub_Model = "LGCM", y_var = "M", t_var = "T",
records = 1:9, curveFun = "BLS", intrinsic = FALSE, res_scale = list(0.3, 0.3)
)
# Fit longitudinal multiple group model of bilinear spline functional form with random knot
paraBLS.TIC_LGCM.f <- c(
"alpha0", "alpha1", "alpha2", "alphag",
paste0("psi", c("00", "01", "02", "0g", "11", "12", "1g", "22", "2g", "gg")),
"residuals", paste0("beta1", c(0:2, "g")), paste0("beta2", c(0:2, "g")),
paste0("mux", 1:2), paste0("phi", c("11", "12", "22")),
"mueta0", "mueta1", "mueta2", "mu_knot"
)
set.seed(20191029)
MGroup_BLS_LGCM.TIC_f <- getMGroup(
dat = RMS_dat0, grp_var = "SEX", sub_Model = "LGCM", y_var = "M", t_var = "T",
records = 1:9, curveFun = "BLS", intrinsic = TRUE, res_scale = list(0.3, 0.3),
growth_TIC = c("ex1", "ex2"), tries = 10, paramOut = TRUE, names = paraBLS.TIC_LGCM.f
)
printTable(MGroup_BLS_LGCM.TIC_f)