Learn R Programming

MplusLGM (version 1.0.0)

fitGBTM: Fit Group-Based Trajectory Models (GBTM) for class enumeration.

Description

Perform class enumeration by fitting a series of GBTM in Mplus across a predetermined range of classes, and returning a list of fitted models for evaluation and comparison.

Usage

fitGBTM(
  data,
  outvar,
  catvar = FALSE,
  idvar,
  min_k = 2L,
  max_k = 6L,
  starting_val = 500,
  polynomial = 1,
  timescores,
  timescores_indiv = FALSE,
  estimator = c("MLR", "ML", "WLSMV", "WLS"),
  transformation = c("LOGIT", "PROBIT"),
  output = c("TECH1", "TECH11", "SAMPSTAT", "STANDARDIZED"),
  plot = "PLOT3",
  save = "FSCORES",
  wd = "Results"
)

Value

A list of mplusObject including the fitted GBTM models for each class specification.

Arguments

data

A data frame containing all variables for the trajectory analysis.

outvar

A character vector specifying the outcome variables at different times.

catvar

A logical value indicating whether the outcome variable is categorical. Default is FALSE.

idvar

A character string specifying the ID variable.

min_k

An integer specifying the minimum number of latent classes to evaluate. Default is 2.

max_k

An integer specifying the maximum number of latent classes to evaluate. Default is 6.

starting_val

A numeric value specifying the number of random starting values to generate for the initial optimization stage. Note that the number of final stage optimizations will be set as equal to half of this value.

polynomial

An integer specifying the order of the polynomial used to model trajectories. Supported values are: 1 (linear), 2 (quadratic), 3 (cubic). Default is 1.

timescores

A numeric vector specifying the time scores for the model. If timescores_indiv = TRUE, a character vector should be used to specify variables with individually varying times of observation.

timescores_indiv

A logical value indicating whether to use individually varying times of observation for the outcome variable. Default is FALSE.

estimator

A character string to specify the estimator to use in the analysis. Default is 'MLR'.

transformation

A character string to specify the latent response variable transformation to use when the outcome variable is categorical. Default is LOGIT.

output

A character vector specifying the requested Mplus output options for the model.

plot

A character string specifying the requested Mplus plot options for the model. Default is PLOT3.

save

A character string specifying the type of results to be saved by Mplus. Default is FSCORES.

wd

A character string specifying the directory where the results folder will be created for saving Mplus input, output, and data files. Default is the current working directory.

Details

The fitGBTM function automates the process of fitting GBTM, iterating through an increasing number of class. This function is designed for conducting class enumeration and help identifying the optimal number of latent classes. GBTM should converge the quickest to a solution given its lower number of free parameters when compared to other LGM.

The function operates as follows:

  • 1. Iterate over an increasing number of classes, ranging from min_k to max_k.

  • 2. Create GBTM mplusObject with appropriate class specification using the LGMobject function.

  • 3. Fit models using the runLGM function, ensuring convergence by increasing the number of random starting values until the best log-likelihood is replicated.

  • 4. Return a list of mplusObject including results for the fitted GBTM models with each class structures.

The function automates the procedure outlined for model selection in: Van Der Nest et al,. (2020). "An overview of mixture modelling for latent evolutions in longitudinal data: Modelling approaches, fit statistics and software." Advances in Life Course Research 43: 100323.

This function builds upon the capabilities of the mplusObject and mplusModeler functions from the MplusAutomation package.

See Also

LGMobject for creating the mplusObject of a latent growth model. runLGM for conducting latent growth modelling with an mplusObject.

Examples

Run this code
# \donttest{
# Example usage:
GBTM_models <- fitGBTM(
  data = symptoms,
  outvar = paste("sx", seq(from = 0, to = 24, by = 6), sep = "_"),
  catvar = FALSE,
  idvar = "id",
  starting_val = 500,
  min_k = 2L,
  max_k = 6L,
  timescores = seq(from = 0, to = 24, by = 6),
  timescores_indiv = FALSE,
  polynomial = 1,
  output = c("TECH1", 'TECH14', "SAMPSTAT", "STANDARDIZED"),
  plot = "PLOT3",
  save = "FSCORES",
  wd = file.path("Results", "Trajectories")
)

# Accessing the model:
GBTM2 <- GBTM_models[[1]] #with 2 latent classes
GBTM3 <- GBTM_models[[2]] #with 3 latent classes
GBTM4 <- GBTM_models[[3]] #with 4 latent classes
# }

Run the code above in your browser using DataLab