Learn R Programming

slca (version 1.3.0)

slca: Construct Structural Latent Class Model

Description

Constructs a latent structure with multiple latent class variables.

Usage

slca(formula = NULL, ..., constraints = NULL)

Value

An object of class slca with the following components:

tree

A data.frame describing the parent-child relationships among latent class and manifest variables.

latent

A data.frame listing all latent class variables with details such as the number of classes.

measure

A data.frame describing the measurement model.

struct

A data.frame detailing the structural model.

The printed model description is divided into four parts:

  1. Latent variables: Lists the latent class variables and the number of classes for each variable. The root variable is marked with an asterisk (*).

  2. Measurement model: Displays manifest indicators for each latent class variable and any applied measurement constraints (lowercase letters indicate consistency).

  3. Structural model: Describes the conditional relationships between latent class variables.

  4. Dependency constraints: Outlines constraints applied to conditional dependencies, where uppercase letters represent consistent dependency structures.

Arguments

formula

a formula specifying the latent structure. Detailed model specifications are provided under 'Details'.

...

additional formulae for defining the model structure.

constraints

a list of constraints to enforce measurement invariance. Detailed explanations of applying constraints are available under 'Details'.

Details

The formula can be categorized into three types, each serving a distinct purpose:

  1. Defining Latent Class Variables with Manifest Indicators: Specify the relationship between a latent class variable and its manifest indicators. The latent class variable is on the left-hand side (lhs), denoted with square brackets [] or parentheses () to indicate the number of classes, and manifest indicators are listed on the right-hand side (rhs). For example:

    
    LC1[k] ~ x1 + x2 + x3
    LC2[k] ~ y1 + y2 + y3
    LC3(k) ~ z1 + z2 + z3
       

    Here, k denotes the number of latent classes for the variable.

  2. Relating Latent Class Variables to Each Other: Define relationships where one latent class variable influences another. For example:

    
    LC2 ~ LC1
       

    This formula implies that LC2 is conditionally dependent on LC1.

  3. Defining Higher-Level Latent Class Variables: Specify relationships where a latent class variable is measured by other latent class variables instead of manifest indicators. For example:

    
    P[k] ~ LC1 + LC2 + LC3
       

    This indicates that the latent variable P is measured by the latent class variables LC1, LC2, and LC3.

In all formulas, variables on the lhs influence those on the rhs.

The constraints argument enforces specific conditions to ensure precise inference, such as measurement invariance. This is particularly useful for longitudinal analysis (eg. LTA or LCPA), where consistent meanings of latent classes across time are essential.

  1. Measurement Invariance for the Measurement Model: Ensures probabilities associated with latent class variables remain consistent. For example:

    
    c("LC1", "LC2", "LC3")
       

    This ensures that LC1, LC2, and LC3 have semantically consistent measurement probabilities.

' 2. Measurement Invariance for the Structural Model: Applies constraints to ensure consistent interpretations of transition probabilities between latent class variables. For example:


c("P ~ LC1", "P -> LC2")
   

This ensures that the transitions from P to LC1 and P to LC2 are consistent.

Examples

Run this code
# Standard LCA
slca(lc[3] ~ y1 + y2 + y3 + y4)
# Latent transition analysis (LTA)
slca(lx[3] ~ x1 + x2 + x3 + x4,
     ly[2] ~ y1 + y2 + y3 + y4,
     lx ~ ly)
# LTA with measurement invariance
slca(l1[3] ~ y11 + y21 + y31 + y41,
     l2[3] ~ y12 + y22 + y32 + y42,
     l1 ~ l2, constraints = c("l1", "l2"))
# Joint latent class analysis
slca(lx[2] ~ x1 + x2 + x3 + x4,
     ly[3] ~ y1 + y2 + y3 + y4,
     lz[2] ~ z1 + z2 + z3 + z4,
     jc[3] ~ lx + ly + lz)
# Latent class profile analysis (with measurement invariance)
slca(l1[3] ~ x1 + x2 + x3 + x4,
     l2[3] ~ y1 + y2 + y3 + y4,
     l3[3] ~ z1 + z2 + z3 + z4,
     pf[4] ~ l1 + l2 + l3,
     constraints = c("l1", "l2", "l3"))

Run the code above in your browser using DataLab