getPosterior function

Compute Posterior Probabilities, Cluster Assignments, and Model Entropy for a Longitudinal Mixture Model

Compute Posterior Probabilities, Cluster Assignments, and Model Entropy for a Longitudinal Mixture Model

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.

getPosterior(model, nClass, label = FALSE, cluster_TIC = NULL)

Arguments

  • model: A fitted mxModel object. Specifically, this should be the mxOutput slot from the output of getMIX().
  • 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 NULL, indicating that no such time-invariant covariates are present in the model.

Returns

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): If label = TRUE, the model's accuracy based on true labels.

The content of these slots can be printed using the printTable() 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) 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") )

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. tools:::Rd_expr_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. tools:::Rd_expr_doi("10.1080/10705510709336735")
  • Maintainer: Jin Liu
  • License: GPL (>= 3.0)
  • Last published: 2023-09-12