getPosterior {nlpsem} | R Documentation |
Compute Posterior Probabilities, Cluster Assignments, and Model Entropy for a Longitudinal Mixture Model
Description
This function computes posterior probabilities, cluster assignments, and model entropy for a given mixture model with a predefined number of classes. If the true labels are available, it can also compute the model accuracy.
Usage
getPosterior(model, nClass, label = FALSE, cluster_TIC = NULL)
Arguments
model |
A fitted mxModel object. Specifically, this should be the |
nClass |
An integer representing the predefined number of latent classes in the model. |
label |
A logical value indicating whether the data contains true labels, which are often available in a simulated data set. Default is FALSE. |
cluster_TIC |
A string or character vector representing the column name(s) for time-invariant covariate(s)
indicating cluster formations. Default is |
Value
An object of class postOutput
. Depending on the label
argument, the object may contain the following slots:
-
prob
: A matrix of posterior probabilities. -
membership
: A vector indicating class membership based on maximum posterior probability. -
entropy
: The entropy of the model, a measure of uncertainty in class assignment. -
accuracy
(optional): Iflabel = TRUE
, the model's accuracy based on true labels.
The content of these slots can be printed using the printTable()
method for S4 objects.
References
-
Peugh, J., & Fan, X. (2015). Enumeration Index Performance in Generalized Growth Mixture Models: A Monte Carlo Test of Muthén's (2003) Hypothesis. Structural Equation Modeling: A Multidisciplinary Journal, 22(1), 115-131. Routledge. doi:10.1080/10705511.2014.919823
-
Lubke, G., & Muthén, B.O. (2007). Performance of Factor Mixture Models as a Function of Model Size, Covariate Effects, and Class-Specific Parameters. Structural Equation Modeling: A Multidisciplinary Journal, 14(1), 26-47. Routledge. doi:10.1080/10705510709336735
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)
RMS_dat0$gx1 <- scale(RMS_dat0$INCOME)
RMS_dat0$gx2 <- scale(RMS_dat0$EDU)
# Fit longitudinal mixture group model of bilinear spline functional form with fixed knot but no
# cluster TICs or growth TICs
set.seed(20191029)
MIX_BLS_LGCM_r <- getMIX(
dat = RMS_dat0, prop_starts = c(0.33, 0.34, 0.33), sub_Model = "LGCM",
cluster_TIC = NULL, y_var = "M", t_var = "T", records = 1:9, curveFun = "BLS",
intrinsic = FALSE, res_scale = list(0.3, 0.3, 0.3), growth_TIC = NULL, tries = 10
)
label1 <- getPosterior(
model = MIX_BLS_LGCM_r@mxOutput, nClass = 3, label = FALSE, cluster_TIC = NULL
)
# Fit longitudinal mixture group model of bilinear spline functional form with fixed knot, cluster
# TICs, and growth TICs
set.seed(20191029)
MIX_BLS_LGCM.TIC_r <- getMIX(
dat = RMS_dat0, prop_starts = c(0.33, 0.34, 0.33), sub_Model = "LGCM",
cluster_TIC = c("gx1", "gx2"), y_var = "M", t_var = "T", records = 1:9,
curveFun = "BLS", intrinsic = FALSE, res_scale = list(0.3, 0.3, 0.3),
growth_TIC = c("ex1", "ex2"), tries = 10
)
label2 <- getPosterior(
model = MIX_BLS_LGCM.TIC_r@mxOutput, nClass = 3, label = FALSE, cluster_TIC = c("gx1", "gx2")
)