0. Install packages and load dataset.

## Run libraries
packages <- c("haven", "tidyverse", "psych", "ggplot2", "tidySEM", "OpenMx")
installed <- packages %in% rownames(installed.packages())
if (any(!installed)) {
  install.packages(packages[!installed])
}
lapply(packages, library, character.only = TRUE)

## Import dataset
url <- "/Users/jasonhoskin/Downloads/ICSUS_2025_State_18 to 25_CLN.sav"
df1 <- read_sav(url)

## Remove unnecessary variables
rm(installed, packages, url)

1. Run descriptive statistics and simplify dataset.

## Sample size and number of variables
dim(df1)
## [1] 5402  257
## Calculate dem frequencies
describe(df1[, 3:22])
##              vars    n mean   sd median trimmed  mad min max range   skew
## age             1 5402 4.39 1.78      4    4.23 1.48   2   9     7   0.71
## ethnic          2 5089 1.87 0.34      2    1.96 0.00   1   2     1  -2.18
## race            3 5354 1.67 1.52      1    1.25 0.00   1   7     6   2.45
## gender          4 5375 1.73 0.57      2    1.71 0.00   1   3     2   0.06
## gender1         5   59 1.00 0.00      1    1.00 0.00   1   1     0    NaN
## gender2         6 1804 1.00 0.00      1    1.00 0.00   1   1     0    NaN
## gender3         7 3318 1.00 0.00      1    1.00 0.00   1   1     0    NaN
## gender4         8   51 1.00 0.00      1    1.00 0.00   1   1     0    NaN
## gender5         9   22 1.00 0.00      1    1.00 0.00   1   1     0    NaN
## gender6        10  191 1.00 0.00      1    1.00 0.00   1   1     0    NaN
## gender7        11   28 1.00 0.00      1    1.00 0.00   1   1     0    NaN
## gender8        12   23 1.00 0.00      1    1.00 0.00   1   1     0    NaN
## gender_text*   13 5402 1.03 0.59      1    1.00 0.00   1  18    17  21.25
## stustat        14 5384 1.04 0.20      1    1.00 0.00   1   2     1   4.69
## schyear        15 5396 2.66 1.56      2    2.45 1.48   1   8     7   0.81
## residenc       16 5399 3.54 1.57      4    3.59 1.48   1   7     6  -0.08
## greekmem       17 5394 1.87 0.34      2    1.96 0.00   1   2     1  -2.14
## instate        18 5398 1.37 0.60      1    1.26 0.00   1   3     2   1.40
## athlete        19 5392 1.87 0.33      2    1.97 0.00   1   2     1  -2.23
## veteran        20 5375 1.99 0.08      2    2.00 0.00   1   2     1 -12.27
##              kurtosis   se
## age             -0.02 0.02
## ethnic           2.74 0.00
## race             4.96 0.02
## gender          -0.48 0.01
## gender1           NaN 0.00
## gender2           NaN 0.00
## gender3           NaN 0.00
## gender4           NaN 0.00
## gender5           NaN 0.00
## gender6           NaN 0.00
## gender7           NaN 0.00
## gender8           NaN 0.00
## gender_text*   488.28 0.01
## stustat         19.96 0.00
## schyear         -0.04 0.02
## residenc        -1.57 0.02
## greekmem         2.57 0.00
## instate          0.88 0.01
## athlete          2.97 0.00
## veteran        148.52 0.00
## Simplify dataset
df2 <- df1 |>
  dplyr::select(autoid |
                  smokmo:othmo |
                  gmpools:gmoth | gcqsleep:gcqdepress)

dim(df2)
## [1] 5402   38
freq_list <- lapply(df2[, 2:38], table, useNA = "ifany")

freq_list
## $smokmo
## 
##    1    2    3    4    5    6    7    8 <NA> 
## 4106  869  238   86   37   33   18   12    3 
## 
## $cigarmo
## 
##    1    2    3    4    5    6    7    8 <NA> 
## 4538  683  125   21    6    9    1    3   16 
## 
## $snufmo
## 
##    1    2    3    4    5    6    7    8 <NA> 
## 4993  248   42   22   14   15   13   44   11 
## 
## $hookmo
## 
##    1    2    3    4    5    6    7    8 <NA> 
## 5027  306   31   11    9    1    2    4   11 
## 
## $ecigmo
## 
##    1    2    3    4    5    6    7    8 <NA> 
## 3445 1013  242  115   55   55   88  373   16 
## 
## $alcmo
## 
##    1    2    3    4    5    6    7    8 <NA> 
## 1424 1258  978  708  412  282  115  161   64 
## 
## $marmo
## 
##    1    2    3    4    5    6    7    8 <NA> 
## 3237 1049  321  170  126  124  161  202   12 
## 
## $cocmo
## 
##    1    2    3    4    5    6    7    8 <NA> 
## 5275   97    9    6    2    2    1    1    9 
## 
## $hallumo
## 
##    1    2    3    4    5    6    7 <NA> 
## 5074  269   34    9    3    1    2   10 
## 
## $hermo
## 
##    1    2    3    4    5 <NA> 
## 5378   11    1    1    1   10 
## 
## $methmo
## 
##    1    2    3    4    5    6    8 <NA> 
## 5367   20    1    1    1    2    1    9 
## 
## $inhmo
## 
##    1    2    3    4    5    6    7 <NA> 
## 5271   94   13    7    4    2    2    9 
## 
## $rxstmo
## 
##    1    2    3    4    5    6    7    8 <NA> 
## 5152  182   33   11    4    2    5    2   11 
## 
## $rxpkmo
## 
##    1    2    3    4    5    6    7 <NA> 
## 5259  119   10    3    1    1    2    7 
## 
## $rxsedmo
## 
##    1    2    3    4    5    6    7 <NA> 
## 5286   92    7    6    2    1    2    6 
## 
## $othmo
## 
##    1    2    3    4    5    6 <NA> 
## 5272   92   13    6    2    3   14 
## 
## $gmpools
## 
##    1    2    3    4 <NA> 
## 3887  278   77   27 1133 
## 
## $gmfant
## 
##    1    2    3    4 <NA> 
## 4013  162   53   35 1139 
## 
## $gmvideo
## 
##    1    2    3    4 <NA> 
## 3782  342  112   36 1130 
## 
## $gmonsport
## 
##    1    2    3    4 <NA> 
## 3921  167  103   78 1133 
## 
## $gmothsp
## 
##    1    2    3    4 <NA> 
## 4136   64   33   32 1137 
## 
## $gmonline
## 
##    1    2    3    4 <NA> 
## 4076  127   45   21 1133 
## 
## $gmesports
## 
##    1    2    3    4 <NA> 
## 4180   42   24   22 1134 
## 
## $gmhorse
## 
##    1    2    3    4 <NA> 
## 4175   73    8    9 1137 
## 
## $gmcards
## 
##    1    2    3    4 <NA> 
## 3885  262   93   27 1135 
## 
## $gmlott
## 
##    1    2    3    4 <NA> 
## 3274  876  100   18 1134 
## 
## $gmcasino
## 
##    1    2    3    4 <NA> 
## 3930  297   30    7 1138 
## 
## $gmcharit
## 
##    1    2    3    4 <NA> 
## 3831  393   35    8 1135 
## 
## $gmoth
## 
##    1    2    3    4 <NA> 
## 4132   62   16   13 1179 
## 
## $gcqsleep
## 
##    1    2    3 <NA> 
## 1748   32    6 3616 
## 
## $gcqhyg
## 
##    1    2    3 <NA> 
## 1770   15    1 3616 
## 
## $gcqfrnd
## 
##    1    2    3 <NA> 
## 1771   15    1 3615 
## 
## $gcqfmly
## 
##    1    2    3 <NA> 
## 1760   18    7 3617 
## 
## $gcqacad
## 
##    1    2    3 <NA> 
## 1764   15    4 3619 
## 
## $gcqmoney
## 
##    1    2    3 <NA> 
## 1705   64   15 3618 
## 
## $gcqbad
## 
##    1    2    3 <NA> 
## 1650  123   10 3619 
## 
## $gcqdepress
## 
##    1    2    3 <NA> 
## 1743   28    3 3628

2. Assess NAs and remove all participants with no responses to the gambling behaviors items.

colSums(is.na(df2))
##     autoid     smokmo    cigarmo     snufmo     hookmo     ecigmo      alcmo 
##          0          3         16         11         11         16         64 
##      marmo      cocmo    hallumo      hermo     methmo      inhmo     rxstmo 
##         12          9         10         10          9          9         11 
##     rxpkmo    rxsedmo      othmo    gmpools     gmfant    gmvideo  gmonsport 
##          7          6         14       1133       1139       1130       1133 
##    gmothsp   gmonline  gmesports    gmhorse    gmcards     gmlott   gmcasino 
##       1137       1133       1134       1137       1135       1134       1138 
##   gmcharit      gmoth   gcqsleep     gcqhyg    gcqfrnd    gcqfmly    gcqacad 
##       1135       1179       3616       3616       3615       3617       3619 
##   gcqmoney     gcqbad gcqdepress 
##       3618       3619       3628
df3 <- df2 |>
  filter(!if_all(
    c(
      gmpools,
      gmfant,
      gmvideo,
      gmonsport,
      gmothsp,
      gmonline,
      gmesports,
      gmhorse,
      gmcards,
      gmlott,
      gmcasino,
      gmcharit,
      gmoth
    ),
    is.na
  ))

## Number of participants removed from dataset:
dim(df2)[1] - dim(df3)[1]
## [1] 1124
colSums(is.na(df3))
##     autoid     smokmo    cigarmo     snufmo     hookmo     ecigmo      alcmo 
##          0          2         14          9         11         13         44 
##      marmo      cocmo    hallumo      hermo     methmo      inhmo     rxstmo 
##          8          6          8          9          7          6         10 
##     rxpkmo    rxsedmo      othmo    gmpools     gmfant    gmvideo  gmonsport 
##          6          6          8          9         15          6          9 
##    gmothsp   gmonline  gmesports    gmhorse    gmcards     gmlott   gmcasino 
##         13          9         10         13         11         10         14 
##   gmcharit      gmoth   gcqsleep     gcqhyg    gcqfrnd    gcqfmly    gcqacad 
##         11         55       2492       2492       2491       2493       2495 
##   gcqmoney     gcqbad gcqdepress 
##       2494       2495       2504

3. Discriminate skip logic NAs from missing data NAs.

## Create a gambling participation indicator
gm_vars <- names(df3)[18:30] # gmpools:gmoth

df1$any_gamble <- apply(df1[gm_vars], 1, function(x) {
  if (all(is.na(x)))
    return(NA)
  if (all(x == 1, na.rm = TRUE))
    return(0)  # never gambled
  return(1)  # gambled at least once
})

## Create a function to separate skip logic NAs from missing data NAs
classify_gcq_na <- function(data, gate_var, consequence_vars) {
  gate <- data[[gate_var]]
  
  results <- lapply(consequence_vars, function(var) {
    item <- data[[var]]
    
    skip_na <- sum(is.na(item) & gate == 0, na.rm = TRUE)
    true_na <- sum(is.na(item) & gate == 1, na.rm = TRUE)
    observed <- sum(!is.na(item))
    
    data.frame(
      variable = var,
      skip_logic_na = skip_na,
      true_missing_na = true_na,
      observed = observed
    )
  })
  
  do.call(rbind, results)
}

## Apply function to dataset
gcq_vars <- names(df3)[31:38]  # gcqsleep:gcqdepress

na_summary <- classify_gcq_na(data = df1,
                              gate_var = "any_gamble",
                              consequence_vars = gcq_vars)
na_summary
##     variable skip_logic_na true_missing_na observed
## 1   gcqsleep          2462              30     1786
## 2     gcqhyg          2462              30     1786
## 3    gcqfrnd          2462              29     1787
## 4    gcqfmly          2462              31     1785
## 5    gcqacad          2462              33     1783
## 6   gcqmoney          2462              32     1784
## 7     gcqbad          2462              33     1783
## 8 gcqdepress          2462              42     1774

4. Make the variables dichotomous.

df4 <- df3 |>
  mutate(across(
    .cols  = starts_with("gm"),
    .fns   = ~ case_when(.x == 1 ~ 1, .x >  1 ~ 2, .default = NA),
    .names = "{.col}_dich"  # Creates new columns, preserving originals
  ))

df5 <- df4 |>
  mutate(across(
    .cols  = starts_with("gcq"),
    .fns   = ~ case_when(.x == 1 ~ 1, .x >  1 ~ 2, .default = NA),
    .names = "{.col}_dich"  # Creates new columns, preserving originals
  ))

## Calculate new frequency list
freq_list <- lapply(df5[, 2:59], table, useNA = "ifany")

freq_list
## $smokmo
## 
##    1    2    3    4    5    6    7    8 <NA> 
## 3358  625  168   60   23   22   10   10    2 
## 
## $cigarmo
## 
##    1    2    3    4    5    6    8 <NA> 
## 3685  469   83   12    6    8    1   14 
## 
## $snufmo
## 
##    1    2    3    4    5    6    7    8 <NA> 
## 4011  159   26   18    9    9    9   28    9 
## 
## $hookmo
## 
##    1    2    3    4    5    7    8 <NA> 
## 4018  216   19    7    2    2    3   11 
## 
## $ecigmo
## 
##    1    2    3    4    5    6    7    8 <NA> 
## 2883  737  173   88   41   38   53  252   13 
## 
## $alcmo
## 
##    1    2    3    4    5    6    7    8 <NA> 
## 1252  966  765  560  310  187   84  110   44 
## 
## $marmo
## 
##    1    2    3    4    5    6    7    8 <NA> 
## 2701  794  237  118   92   89  113  126    8 
## 
## $cocmo
## 
##    1    2    3    4    5    6    8 <NA> 
## 4192   68    6    2    1    2    1    6 
## 
## $hallumo
## 
##    1    2    3    4    5    7 <NA> 
## 4053  186   22    6    1    2    8 
## 
## $hermo
## 
##    1    2    3 <NA> 
## 4262    6    1    9 
## 
## $methmo
## 
##    1    2    4    8 <NA> 
## 4255   14    1    1    7 
## 
## $inhmo
## 
##    1    2    3    4    5    6    7 <NA> 
## 4191   65    7    4    2    2    1    6 
## 
## $rxstmo
## 
##    1    2    3    4    5    7    8 <NA> 
## 4101  128   24    8    2    4    1   10 
## 
## $rxpkmo
## 
##    1    2    3    4    6    7 <NA> 
## 4172   88    7    3    1    1    6 
## 
## $rxsedmo
## 
##    1    2    3    4    5    6    7 <NA> 
## 4197   66    1    4    1    1    2    6 
## 
## $othmo
## 
##    1    2    3    4    5    6 <NA> 
## 4193   63    9    2    2    1    8 
## 
## $gmpools
## 
##    1    2    3    4 <NA> 
## 3887  278   77   27    9 
## 
## $gmfant
## 
##    1    2    3    4 <NA> 
## 4013  162   53   35   15 
## 
## $gmvideo
## 
##    1    2    3    4 <NA> 
## 3782  342  112   36    6 
## 
## $gmonsport
## 
##    1    2    3    4 <NA> 
## 3921  167  103   78    9 
## 
## $gmothsp
## 
##    1    2    3    4 <NA> 
## 4136   64   33   32   13 
## 
## $gmonline
## 
##    1    2    3    4 <NA> 
## 4076  127   45   21    9 
## 
## $gmesports
## 
##    1    2    3    4 <NA> 
## 4180   42   24   22   10 
## 
## $gmhorse
## 
##    1    2    3    4 <NA> 
## 4175   73    8    9   13 
## 
## $gmcards
## 
##    1    2    3    4 <NA> 
## 3885  262   93   27   11 
## 
## $gmlott
## 
##    1    2    3    4 <NA> 
## 3274  876  100   18   10 
## 
## $gmcasino
## 
##    1    2    3    4 <NA> 
## 3930  297   30    7   14 
## 
## $gmcharit
## 
##    1    2    3    4 <NA> 
## 3831  393   35    8   11 
## 
## $gmoth
## 
##    1    2    3    4 <NA> 
## 4132   62   16   13   55 
## 
## $gcqsleep
## 
##    1    2    3 <NA> 
## 1748   32    6 2492 
## 
## $gcqhyg
## 
##    1    2    3 <NA> 
## 1770   15    1 2492 
## 
## $gcqfrnd
## 
##    1    2    3 <NA> 
## 1771   15    1 2491 
## 
## $gcqfmly
## 
##    1    2    3 <NA> 
## 1760   18    7 2493 
## 
## $gcqacad
## 
##    1    2    3 <NA> 
## 1764   15    4 2495 
## 
## $gcqmoney
## 
##    1    2    3 <NA> 
## 1705   64   15 2494 
## 
## $gcqbad
## 
##    1    2    3 <NA> 
## 1650  123   10 2495 
## 
## $gcqdepress
## 
##    1    2    3 <NA> 
## 1743   28    3 2504 
## 
## $gmpools_dich
## 
##    1    2 <NA> 
## 3887  382    9 
## 
## $gmfant_dich
## 
##    1    2 <NA> 
## 4013  250   15 
## 
## $gmvideo_dich
## 
##    1    2 <NA> 
## 3782  490    6 
## 
## $gmonsport_dich
## 
##    1    2 <NA> 
## 3921  348    9 
## 
## $gmothsp_dich
## 
##    1    2 <NA> 
## 4136  129   13 
## 
## $gmonline_dich
## 
##    1    2 <NA> 
## 4076  193    9 
## 
## $gmesports_dich
## 
##    1    2 <NA> 
## 4180   88   10 
## 
## $gmhorse_dich
## 
##    1    2 <NA> 
## 4175   90   13 
## 
## $gmcards_dich
## 
##    1    2 <NA> 
## 3885  382   11 
## 
## $gmlott_dich
## 
##    1    2 <NA> 
## 3274  994   10 
## 
## $gmcasino_dich
## 
##    1    2 <NA> 
## 3930  334   14 
## 
## $gmcharit_dich
## 
##    1    2 <NA> 
## 3831  436   11 
## 
## $gmoth_dich
## 
##    1    2 <NA> 
## 4132   91   55 
## 
## $gcqsleep_dich
## 
##    1    2 <NA> 
## 1748   38 2492 
## 
## $gcqhyg_dich
## 
##    1    2 <NA> 
## 1770   16 2492 
## 
## $gcqfrnd_dich
## 
##    1    2 <NA> 
## 1771   16 2491 
## 
## $gcqfmly_dich
## 
##    1    2 <NA> 
## 1760   25 2493 
## 
## $gcqacad_dich
## 
##    1    2 <NA> 
## 1764   19 2495 
## 
## $gcqmoney_dich
## 
##    1    2 <NA> 
## 1705   79 2494 
## 
## $gcqbad_dich
## 
##    1    2 <NA> 
## 1650  133 2495 
## 
## $gcqdepress_dich
## 
##    1    2 <NA> 
## 1743   31 2504

5. Conduct the first LCA using the tidySEM package.

## Set seed
set.seed(123)

## Refilter dataset to only include appropriate variables
df5_lca1 <- df5 |>
  dplyr::select(gmpools_dich:gmoth_dich)

## Change variables to ordered factor class
df5_lca1 <- df5_lca1 |>
  mutate_if(is.numeric, ordered)

## Run first LCA (code use for knitting)
lca1 <- readRDS("lca1_results.rds")

## LCA code used: lca1 <- mx_lca(data = df5_lca1, classes = 1:6, missing = "fiml")
## Save LCA for future knitting ## saveRDS(lca1, file = "lca1_results.rds")

6. Assess latent classes for first LCA.

fit1 <- table_fit(lca1)
fit1
##   Name Classes        LL    n Parameters      AIC      BIC    saBIC   Entropy
## 1    1       1 -13815.68 4278         13 27657.36 27740.06 27698.75 1.0000000
## 2    2       2 -12071.01 4278         27 24196.01 24367.77 24281.97 0.8538182
## 3    3       3 -11805.73 4278         41 23693.46 23954.27 23823.99 0.7098784
## 4    4       4 -11697.07 4278         55 23504.14 23854.00 23679.24 0.7785529
## 5    5       5 -11708.86 4278         69 23555.72 23994.65 23775.39 0.8086513
## 6    6       6 -11577.44 4278         83 23320.88 23848.87 23585.13 0.7015369
##    prob_min  prob_max       n_min     n_max  np_ratio   np_local
## 1 1.0000000 1.0000000 1.000000000 1.0000000 329.07692 329.076923
## 2 0.8703959 0.9827206 0.164329126 0.8356709 158.44444  54.076923
## 3 0.7706319 0.9206315 0.104020570 0.6280972 104.34146  34.230769
## 4 0.5839871 0.9831005 0.014960262 0.7515194  77.78182   4.923077
## 5 0.8031282 0.9248372 0.006545115 0.6196821  62.00000   2.153846
## 6 0.5281830 0.9937712 0.010518934 0.6367461  51.54217   3.461538
# Extract and compare class profiles for 3 and 4-class solutions
table_prob(lca1[[3]])
##          Variable Category  Probability  group
## 1    gmpools_dich        1 1.000000e+00 class1
## 2    gmpools_dich        2 0.000000e+00 class1
## 3     gmfant_dich        1 9.874340e-01 class1
## 4     gmfant_dich        2 1.256602e-02 class1
## 5    gmvideo_dich        1 7.995629e-01 class1
## 6    gmvideo_dich        2 2.004371e-01 class1
## 7  gmonsport_dich        1 9.550279e-01 class1
## 8  gmonsport_dich        2 4.497213e-02 class1
## 9    gmothsp_dich        1 1.000000e+00 class1
## 10   gmothsp_dich        2 1.110223e-16 class1
## 11  gmonline_dich        1 9.379188e-01 class1
## 12  gmonline_dich        2 6.208122e-02 class1
## 13 gmesports_dich        1 9.620779e-01 class1
## 14 gmesports_dich        2 3.792205e-02 class1
## 15   gmhorse_dich        1 9.663810e-01 class1
## 16   gmhorse_dich        2 3.361903e-02 class1
## 17   gmcards_dich        1 8.519929e-01 class1
## 18   gmcards_dich        2 1.480071e-01 class1
## 19    gmlott_dich        1 5.034698e-01 class1
## 20    gmlott_dich        2 4.965302e-01 class1
## 21  gmcasino_dich        1 8.471951e-01 class1
## 22  gmcasino_dich        2 1.528049e-01 class1
## 23  gmcharit_dich        1 7.283305e-01 class1
## 24  gmcharit_dich        2 2.716695e-01 class1
## 25     gmoth_dich        1 9.614771e-01 class1
## 26     gmoth_dich        2 3.852286e-02 class1
## 27   gmpools_dich        1 2.524348e-01 class2
## 28   gmpools_dich        2 7.475652e-01 class2
## 29    gmfant_dich        1 5.106214e-01 class2
## 30    gmfant_dich        2 4.893786e-01 class2
## 31   gmvideo_dich        1 7.055666e-01 class2
## 32   gmvideo_dich        2 2.944334e-01 class2
## 33 gmonsport_dich        1 4.172532e-01 class2
## 34 gmonsport_dich        2 5.827468e-01 class2
## 35   gmothsp_dich        1 7.390776e-01 class2
## 36   gmothsp_dich        2 2.609224e-01 class2
## 37  gmonline_dich        1 7.432208e-01 class2
## 38  gmonline_dich        2 2.567792e-01 class2
## 39 gmesports_dich        1 9.115487e-01 class2
## 40 gmesports_dich        2 8.845132e-02 class2
## 41   gmhorse_dich        1 8.924188e-01 class2
## 42   gmhorse_dich        2 1.075812e-01 class2
## 43   gmcards_dich        1 6.206126e-01 class2
## 44   gmcards_dich        2 3.793874e-01 class2
## 45    gmlott_dich        1 4.580295e-01 class2
## 46    gmlott_dich        2 5.419705e-01 class2
## 47  gmcasino_dich        1 7.028066e-01 class2
## 48  gmcasino_dich        2 2.971934e-01 class2
## 49  gmcharit_dich        1 7.519184e-01 class2
## 50  gmcharit_dich        2 2.480816e-01 class2
## 51     gmoth_dich        1 9.041043e-01 class2
## 52     gmoth_dich        2 9.589574e-02 class2
## 53   gmpools_dich        1 9.877011e-01 class3
## 54   gmpools_dich        2 1.229894e-02 class3
## 55    gmfant_dich        1 9.968636e-01 class3
## 56    gmfant_dich        2 3.136405e-03 class3
## 57   gmvideo_dich        1 9.558819e-01 class3
## 58   gmvideo_dich        2 4.411810e-02 class3
## 59 gmonsport_dich        1 9.912671e-01 class3
## 60 gmonsport_dich        2 8.732867e-03 class3
## 61   gmothsp_dich        1 9.971911e-01 class3
## 62   gmothsp_dich        2 2.808875e-03 class3
## 63  gmonline_dich        1 1.000000e+00 class3
## 64  gmonline_dich        2 7.296386e-13 class3
## 65 gmesports_dich        1 9.991702e-01 class3
## 66 gmesports_dich        2 8.297820e-04 class3
## 67   gmhorse_dich        1 1.000000e+00 class3
## 68   gmhorse_dich        2 0.000000e+00 class3
## 69   gmcards_dich        1 9.885038e-01 class3
## 70   gmcards_dich        2 1.149623e-02 class3
## 71    gmlott_dich        1 9.404917e-01 class3
## 72    gmlott_dich        2 5.950830e-02 class3
## 73  gmcasino_dich        1 9.938901e-01 class3
## 74  gmcasino_dich        2 6.109949e-03 class3
## 75  gmcharit_dich        1 1.000000e+00 class3
## 76  gmcharit_dich        2 0.000000e+00 class3
## 77     gmoth_dich        1 9.991246e-01 class3
## 78     gmoth_dich        2 8.753832e-04 class3
table_prob(lca1[[4]])
##           Variable Category  Probability  group
## 1     gmpools_dich        1 9.939372e-01 class1
## 2     gmpools_dich        2 6.062840e-03 class1
## 3      gmfant_dich        1 9.968970e-01 class1
## 4      gmfant_dich        2 3.102966e-03 class1
## 5     gmvideo_dich        1 9.499559e-01 class1
## 6     gmvideo_dich        2 5.004409e-02 class1
## 7   gmonsport_dich        1 9.908548e-01 class1
## 8   gmonsport_dich        2 9.145228e-03 class1
## 9     gmothsp_dich        1 9.974646e-01 class1
## 10    gmothsp_dich        2 2.535430e-03 class1
## 11   gmonline_dich        1 1.000000e+00 class1
## 12   gmonline_dich        2 0.000000e+00 class1
## 13  gmesports_dich        1 9.985849e-01 class1
## 14  gmesports_dich        2 1.415120e-03 class1
## 15    gmhorse_dich        1 1.000000e+00 class1
## 16    gmhorse_dich        2 0.000000e+00 class1
## 17    gmcards_dich        1 9.846472e-01 class1
## 18    gmcards_dich        2 1.535282e-02 class1
## 19     gmlott_dich        1 9.276743e-01 class1
## 20     gmlott_dich        2 7.232572e-02 class1
## 21   gmcasino_dich        1 9.893015e-01 class1
## 22   gmcasino_dich        2 1.069855e-02 class1
## 23   gmcharit_dich        1 9.776051e-01 class1
## 24   gmcharit_dich        2 2.239495e-02 class1
## 25      gmoth_dich        1 1.000000e+00 class1
## 26      gmoth_dich        2 5.856093e-12 class1
## 27    gmpools_dich        1 8.950156e-01 class2
## 28    gmpools_dich        2 1.049844e-01 class2
## 29     gmfant_dich        1 9.743630e-01 class2
## 30     gmfant_dich        2 2.563702e-02 class2
## 31    gmvideo_dich        1 8.322709e-01 class2
## 32    gmvideo_dich        2 1.677291e-01 class2
## 33  gmonsport_dich        1 9.208808e-01 class2
## 34  gmonsport_dich        2 7.911921e-02 class2
## 35    gmothsp_dich        1 9.945270e-01 class2
## 36    gmothsp_dich        2 5.472988e-03 class2
## 37   gmonline_dich        1 9.159884e-01 class2
## 38   gmonline_dich        2 8.401155e-02 class2
## 39  gmesports_dich        1 1.000000e+00 class2
## 40  gmesports_dich        2 8.506382e-09 class2
## 41    gmhorse_dich        1 9.467263e-01 class2
## 42    gmhorse_dich        2 5.327370e-02 class2
## 43    gmcards_dich        1 8.130612e-01 class2
## 44    gmcards_dich        2 1.869388e-01 class2
## 45     gmlott_dich        1 3.862159e-01 class2
## 46     gmlott_dich        2 6.137841e-01 class2
## 47   gmcasino_dich        1 8.000471e-01 class2
## 48   gmcasino_dich        2 1.999529e-01 class2
## 49   gmcharit_dich        1 7.080506e-01 class2
## 50   gmcharit_dich        2 2.919494e-01 class2
## 51      gmoth_dich        1 9.509063e-01 class2
## 52      gmoth_dich        2 4.909373e-02 class2
## 53    gmpools_dich        1 2.197195e-01 class3
## 54    gmpools_dich        2 7.802805e-01 class3
## 55     gmfant_dich        1 3.577470e-01 class3
## 56     gmfant_dich        2 6.422530e-01 class3
## 57    gmvideo_dich        1 6.652238e-01 class3
## 58    gmvideo_dich        2 3.347762e-01 class3
## 59  gmonsport_dich        1 2.710619e-01 class3
## 60  gmonsport_dich        2 7.289381e-01 class3
## 61    gmothsp_dich        1 6.518290e-01 class3
## 62    gmothsp_dich        2 3.481710e-01 class3
## 63   gmonline_dich        1 6.952694e-01 class3
## 64   gmonline_dich        2 3.047306e-01 class3
## 65  gmesports_dich        1 8.870952e-01 class3
## 66  gmesports_dich        2 1.129048e-01 class3
## 67    gmhorse_dich        1 9.005052e-01 class3
## 68    gmhorse_dich        2 9.949483e-02 class3
## 69    gmcards_dich        1 6.090325e-01 class3
## 70    gmcards_dich        2 3.909675e-01 class3
## 71     gmlott_dich        1 5.100698e-01 class3
## 72     gmlott_dich        2 4.899302e-01 class3
## 73   gmcasino_dich        1 6.763600e-01 class3
## 74   gmcasino_dich        2 3.236400e-01 class3
## 75   gmcharit_dich        1 7.729640e-01 class3
## 76   gmcharit_dich        2 2.270360e-01 class3
## 77      gmoth_dich        1 8.888895e-01 class3
## 78      gmoth_dich        2 1.111105e-01 class3
## 79    gmpools_dich        1 1.000000e+00 class4
## 80    gmpools_dich        2 0.000000e+00 class4
## 81     gmfant_dich        1 9.662150e-01 class4
## 82     gmfant_dich        2 3.378499e-02 class4
## 83    gmvideo_dich        1 2.149269e-01 class4
## 84    gmvideo_dich        2 7.850731e-01 class4
## 85  gmonsport_dich        1 1.000000e+00 class4
## 86  gmonsport_dich        2 0.000000e+00 class4
## 87    gmothsp_dich        1 1.000000e+00 class4
## 88    gmothsp_dich        2 1.083755e-11 class4
## 89   gmonline_dich        1 9.020477e-01 class4
## 90   gmonline_dich        2 9.795226e-02 class4
## 91  gmesports_dich        1 4.796113e-01 class4
## 92  gmesports_dich        2 5.203887e-01 class4
## 93    gmhorse_dich        1 9.504801e-01 class4
## 94    gmhorse_dich        2 4.951991e-02 class4
## 95    gmcards_dich        1 7.308432e-01 class4
## 96    gmcards_dich        2 2.691568e-01 class4
## 97     gmlott_dich        1 7.483172e-01 class4
## 98     gmlott_dich        2 2.516828e-01 class4
## 99   gmcasino_dich        1 1.000000e+00 class4
## 100  gmcasino_dich        2 0.000000e+00 class4
## 101  gmcharit_dich        1 8.856710e-01 class4
## 102  gmcharit_dich        2 1.143290e-01 class4
## 103     gmoth_dich        1 9.199535e-01 class4
## 104     gmoth_dich        2 8.004651e-02 class4
# Visualize item probability profiles
plot_prob(lca1[[3]]) +
  theme(axis.text.x = element_text(
    angle = 45,
    hjust = 1,
    size = 7
  ))

plot_prob(lca1[[4]]) +
  theme(axis.text.x = element_text(
    angle = 45,
    hjust = 1,
    size = 7
  ))

# Minimum sample size for 3 classes
fit1[3, 4] * fit1[3, 12]
## [1] 445
# Minimum sample size for 4 classes
fit1[4, 4] * fit1[4, 12]
## [1] 64

7. Conduct the second latent class analysis, where I run LCAs among gamblers only, using the 13 gambling behavior variables plus the 8 consequence variables, estimating 1–21 classes.

set.seed(123)

## Refilter dataset to only include appropriate variables
df5_lca2 <- df5 |>
  filter(if_any(gmpools_dich:gcqdepress_dich, ~. == 2)) |>
  dplyr::select(gmpools_dich:gcqdepress_dich)

## Change variables to ordered factor class
df5_lca2 <- df5_lca2 |>
  mutate_if(is.numeric, ordered)

## Run second LCA (code use for knitting)
## lca2 <- mx_lca(data = df5_lca2, classes = 1:6, missing = "fiml")

lca2 <- readRDS("~/lca2_results.rds")

## LCA code used: lca1 <- mx_lca(data = df5_lca1, classes = 1:6, missing = "fiml")
## Save LCA for future knitting ## saveRDS(lca2, file = "lca2_results.rds")

6. Assess latent classes for second LCA.

fit2 <- table_fit(lca2)
fit2
##   Name Classes         LL    n Parameters      AIC      BIC    saBIC   Entropy
## 1    1       1 -11354.872 1816         21 22751.74 22867.34 22800.62 1.0000000
## 2    2       2 -10766.306 1816         43 21618.61 21855.30 21718.69 0.8706046
## 3    3       3 -10407.668 1816         65 20945.34 21303.12 21096.62 0.7554996
## 4    4       4 -10137.618 1816         87 20449.24 20928.12 20651.72 0.7906488
## 5    5       5 -10075.333 1816        109 20368.67 20968.64 20622.36 0.8390197
## 6    6       6  -9921.122 1816        131 20104.24 20825.32 20409.14 0.7730202
##    prob_min  prob_max      n_min     n_max np_ratio  np_local
## 1 1.0000000 1.0000000 1.00000000 1.0000000 86.47619 86.476190
## 2 0.8765436 0.9804656 0.15583700 0.8441630 42.23256 13.476190
## 3 0.8232718 0.9289432 0.18447137 0.6200441 27.93846 15.952381
## 4 0.8263384 0.9779214 0.01817181 0.4614537 20.87356  1.571429
## 5 0.8218634 0.9816541 0.01927313 0.5655286 16.66055  1.666667
## 6 0.7572899 0.9477226 0.01982379 0.4427313 13.86260  1.714286
# Extract and compare class profiles for 3 and 4-class solutions
table_prob(lca2[[3]])
##            Variable Category  Probability  group
## 1      gmpools_dich        1 9.708115e-01 class1
## 2      gmpools_dich        2 2.918851e-02 class1
## 3       gmfant_dich        1 9.834368e-01 class1
## 4       gmfant_dich        2 1.656324e-02 class1
## 5      gmvideo_dich        1 2.058743e-01 class1
## 6      gmvideo_dich        2 7.941257e-01 class1
## 7    gmonsport_dich        1 9.693537e-01 class1
## 8    gmonsport_dich        2 3.064632e-02 class1
## 9      gmothsp_dich        1 9.741901e-01 class1
## 10     gmothsp_dich        2 2.580988e-02 class1
## 11    gmonline_dich        1 9.636688e-01 class1
## 12    gmonline_dich        2 3.633122e-02 class1
## 13   gmesports_dich        1 8.677876e-01 class1
## 14   gmesports_dich        2 1.322124e-01 class1
## 15     gmhorse_dich        1 9.829165e-01 class1
## 16     gmhorse_dich        2 1.708351e-02 class1
## 17     gmcards_dich        1 8.473998e-01 class1
## 18     gmcards_dich        2 1.526002e-01 class1
## 19      gmlott_dich        1 7.673801e-01 class1
## 20      gmlott_dich        2 2.326199e-01 class1
## 21    gmcasino_dich        1 9.588799e-01 class1
## 22    gmcasino_dich        2 4.112010e-02 class1
## 23    gmcharit_dich        1 8.486151e-01 class1
## 24    gmcharit_dich        2 1.513849e-01 class1
## 25       gmoth_dich        1 9.540212e-01 class1
## 26       gmoth_dich        2 4.597878e-02 class1
## 27    gcqsleep_dich        1 9.926367e-01 class1
## 28    gcqsleep_dich        2 7.363342e-03 class1
## 29      gcqhyg_dich        1 9.903800e-01 class1
## 30      gcqhyg_dich        2 9.619967e-03 class1
## 31     gcqfrnd_dich        1 1.000000e+00 class1
## 32     gcqfrnd_dich        2 6.340894e-11 class1
## 33     gcqfmly_dich        1 9.956515e-01 class1
## 34     gcqfmly_dich        2 4.348503e-03 class1
## 35     gcqacad_dich        1 1.000000e+00 class1
## 36     gcqacad_dich        2 5.575099e-09 class1
## 37    gcqmoney_dich        1 9.209381e-01 class1
## 38    gcqmoney_dich        2 7.906194e-02 class1
## 39      gcqbad_dich        1 8.825471e-01 class1
## 40      gcqbad_dich        2 1.174529e-01 class1
## 41  gcqdepress_dich        1 9.833127e-01 class1
## 42  gcqdepress_dich        2 1.668727e-02 class1
## 43     gmpools_dich        1 2.818533e-01 class2
## 44     gmpools_dich        2 7.181467e-01 class2
## 45      gmfant_dich        1 4.126000e-01 class2
## 46      gmfant_dich        2 5.874000e-01 class2
## 47     gmvideo_dich        1 6.417037e-01 class2
## 48     gmvideo_dich        2 3.582963e-01 class2
## 49   gmonsport_dich        1 3.123403e-01 class2
## 50   gmonsport_dich        2 6.876597e-01 class2
## 51     gmothsp_dich        1 6.500692e-01 class2
## 52     gmothsp_dich        2 3.499308e-01 class2
## 53    gmonline_dich        1 6.769611e-01 class2
## 54    gmonline_dich        2 3.230389e-01 class2
## 55   gmesports_dich        1 8.779832e-01 class2
## 56   gmesports_dich        2 1.220168e-01 class2
## 57     gmhorse_dich        1 8.949086e-01 class2
## 58     gmhorse_dich        2 1.050914e-01 class2
## 59     gmcards_dich        1 6.063757e-01 class2
## 60     gmcards_dich        2 3.936243e-01 class2
## 61      gmlott_dich        1 5.145220e-01 class2
## 62      gmlott_dich        2 4.854780e-01 class2
## 63    gmcasino_dich        1 6.737264e-01 class2
## 64    gmcasino_dich        2 3.262736e-01 class2
## 65    gmcharit_dich        1 7.798672e-01 class2
## 66    gmcharit_dich        2 2.201328e-01 class2
## 67       gmoth_dich        1 8.737253e-01 class2
## 68       gmoth_dich        2 1.262747e-01 class2
## 69    gcqsleep_dich        1 8.937581e-01 class2
## 70    gcqsleep_dich        2 1.062419e-01 class2
## 71      gcqhyg_dich        1 9.620384e-01 class2
## 72      gcqhyg_dich        2 3.796161e-02 class2
## 73     gcqfrnd_dich        1 9.521219e-01 class2
## 74     gcqfrnd_dich        2 4.787807e-02 class2
## 75     gcqfmly_dich        1 9.318666e-01 class2
## 76     gcqfmly_dich        2 6.813342e-02 class2
## 77     gcqacad_dich        1 9.429980e-01 class2
## 78     gcqacad_dich        2 5.700195e-02 class2
## 79    gcqmoney_dich        1 8.618264e-01 class2
## 80    gcqmoney_dich        2 1.381736e-01 class2
## 81      gcqbad_dich        1 7.891530e-01 class2
## 82      gcqbad_dich        2 2.108470e-01 class2
## 83  gcqdepress_dich        1 9.259374e-01 class2
## 84  gcqdepress_dich        2 7.406257e-02 class2
## 85     gmpools_dich        1 8.887441e-01 class3
## 86     gmpools_dich        2 1.112559e-01 class3
## 87      gmfant_dich        1 9.604910e-01 class3
## 88      gmfant_dich        2 3.950896e-02 class3
## 89     gmvideo_dich        1 9.207522e-01 class3
## 90     gmvideo_dich        2 7.924776e-02 class3
## 91   gmonsport_dich        1 9.093041e-01 class3
## 92   gmonsport_dich        2 9.069593e-02 class3
## 93     gmothsp_dich        1 1.000000e+00 class3
## 94     gmothsp_dich        2 0.000000e+00 class3
## 95    gmonline_dich        1 9.380405e-01 class3
## 96    gmonline_dich        2 6.195950e-02 class3
## 97   gmesports_dich        1 1.000000e+00 class3
## 98   gmesports_dich        2 0.000000e+00 class3
## 99     gmhorse_dich        1 9.573243e-01 class3
## 100    gmhorse_dich        2 4.267569e-02 class3
## 101    gmcards_dich        1 8.272437e-01 class3
## 102    gmcards_dich        2 1.727563e-01 class3
## 103     gmlott_dich        1 3.329642e-01 class3
## 104     gmlott_dich        2 6.670358e-01 class3
## 105   gmcasino_dich        1 8.138692e-01 class3
## 106   gmcasino_dich        2 1.861308e-01 class3
## 107   gmcharit_dich        1 7.254955e-01 class3
## 108   gmcharit_dich        2 2.745045e-01 class3
## 109      gmoth_dich        1 9.705333e-01 class3
## 110      gmoth_dich        2 2.946671e-02 class3
## 111   gcqsleep_dich        1 1.000000e+00 class3
## 112   gcqsleep_dich        2 0.000000e+00 class3
## 113     gcqhyg_dich        1 1.000000e+00 class3
## 114     gcqhyg_dich        2 1.209033e-13 class3
## 115    gcqfrnd_dich        1 1.000000e+00 class3
## 116    gcqfrnd_dich        2 0.000000e+00 class3
## 117    gcqfmly_dich        1 9.992771e-01 class3
## 118    gcqfmly_dich        2 7.229023e-04 class3
## 119    gcqacad_dich        1 1.000000e+00 class3
## 120    gcqacad_dich        2 0.000000e+00 class3
## 121   gcqmoney_dich        1 9.948705e-01 class3
## 122   gcqmoney_dich        2 5.129501e-03 class3
## 123     gcqbad_dich        1 9.798872e-01 class3
## 124     gcqbad_dich        2 2.011277e-02 class3
## 125 gcqdepress_dich        1 9.993206e-01 class3
## 126 gcqdepress_dich        2 6.794481e-04 class3
table_prob(lca2[[4]])
##            Variable Category  Probability  group
## 1      gmpools_dich        1 2.066925e-01 class1
## 2      gmpools_dich        2 7.933075e-01 class1
## 3       gmfant_dich        1 3.580100e-01 class1
## 4       gmfant_dich        2 6.419900e-01 class1
## 5      gmvideo_dich        1 6.973768e-01 class1
## 6      gmvideo_dich        2 3.026232e-01 class1
## 7    gmonsport_dich        1 2.737430e-01 class1
## 8    gmonsport_dich        2 7.262570e-01 class1
## 9      gmothsp_dich        1 6.749027e-01 class1
## 10     gmothsp_dich        2 3.250973e-01 class1
## 11    gmonline_dich        1 6.951118e-01 class1
## 12    gmonline_dich        2 3.048882e-01 class1
## 13   gmesports_dich        1 9.175827e-01 class1
## 14   gmesports_dich        2 8.241728e-02 class1
## 15     gmhorse_dich        1 9.054382e-01 class1
## 16     gmhorse_dich        2 9.456175e-02 class1
## 17     gmcards_dich        1 6.225700e-01 class1
## 18     gmcards_dich        2 3.774300e-01 class1
## 19      gmlott_dich        1 4.708030e-01 class1
## 20      gmlott_dich        2 5.291970e-01 class1
## 21    gmcasino_dich        1 6.676923e-01 class1
## 22    gmcasino_dich        2 3.323077e-01 class1
## 23    gmcharit_dich        1 7.739956e-01 class1
## 24    gmcharit_dich        2 2.260044e-01 class1
## 25       gmoth_dich        1 9.045011e-01 class1
## 26       gmoth_dich        2 9.549888e-02 class1
## 27    gcqsleep_dich        1 9.793941e-01 class1
## 28    gcqsleep_dich        2 2.060587e-02 class1
## 29      gcqhyg_dich        1 1.000000e+00 class1
## 30      gcqhyg_dich        2 6.167354e-09 class1
## 31     gcqfrnd_dich        1 1.000000e+00 class1
## 32     gcqfrnd_dich        2 2.357115e-12 class1
## 33     gcqfmly_dich        1 9.901101e-01 class1
## 34     gcqfmly_dich        2 9.889901e-03 class1
## 35     gcqacad_dich        1 1.000000e+00 class1
## 36     gcqacad_dich        2 0.000000e+00 class1
## 37    gcqmoney_dich        1 9.472005e-01 class1
## 38    gcqmoney_dich        2 5.279951e-02 class1
## 39      gcqbad_dich        1 8.737866e-01 class1
## 40      gcqbad_dich        2 1.262134e-01 class1
## 41  gcqdepress_dich        1 9.900881e-01 class1
## 42  gcqdepress_dich        2 9.911936e-03 class1
## 43     gmpools_dich        1 9.291320e-01 class2
## 44     gmpools_dich        2 7.086796e-02 class2
## 45      gmfant_dich        1 1.000000e+00 class2
## 46      gmfant_dich        2 0.000000e+00 class2
## 47     gmvideo_dich        1 9.999999e-01 class2
## 48     gmvideo_dich        2 1.221676e-07 class2
## 49   gmonsport_dich        1 9.674513e-01 class2
## 50   gmonsport_dich        2 3.254871e-02 class2
## 51     gmothsp_dich        1 1.000000e+00 class2
## 52     gmothsp_dich        2 3.062106e-11 class2
## 53    gmonline_dich        1 9.704411e-01 class2
## 54    gmonline_dich        2 2.955889e-02 class2
## 55   gmesports_dich        1 1.000000e+00 class2
## 56   gmesports_dich        2 3.634737e-11 class2
## 57     gmhorse_dich        1 9.466688e-01 class2
## 58     gmhorse_dich        2 5.333123e-02 class2
## 59     gmcards_dich        1 8.938899e-01 class2
## 60     gmcards_dich        2 1.061101e-01 class2
## 61      gmlott_dich        1 9.968677e-09 class2
## 62      gmlott_dich        2 1.000000e+00 class2
## 63    gmcasino_dich        1 8.594982e-01 class2
## 64    gmcasino_dich        2 1.405018e-01 class2
## 65    gmcharit_dich        1 8.004784e-01 class2
## 66    gmcharit_dich        2 1.995216e-01 class2
## 67       gmoth_dich        1 9.975581e-01 class2
## 68       gmoth_dich        2 2.441929e-03 class2
## 69    gcqsleep_dich        1 1.000000e+00 class2
## 70    gcqsleep_dich        2 0.000000e+00 class2
## 71      gcqhyg_dich        1 1.000000e+00 class2
## 72      gcqhyg_dich        2 0.000000e+00 class2
## 73     gcqfrnd_dich        1 1.000000e+00 class2
## 74     gcqfrnd_dich        2 0.000000e+00 class2
## 75     gcqfmly_dich        1 9.979709e-01 class2
## 76     gcqfmly_dich        2 2.029086e-03 class2
## 77     gcqacad_dich        1 1.000000e+00 class2
## 78     gcqacad_dich        2 2.889100e-11 class2
## 79    gcqmoney_dich        1 1.000000e+00 class2
## 80    gcqmoney_dich        2 5.921375e-12 class2
## 81      gcqbad_dich        1 1.000000e+00 class2
## 82      gcqbad_dich        2 0.000000e+00 class2
## 83  gcqdepress_dich        1 1.000000e+00 class2
## 84  gcqdepress_dich        2 0.000000e+00 class2
## 85     gmpools_dich        1 9.118178e-01 class3
## 86     gmpools_dich        2 8.818224e-02 class3
## 87      gmfant_dich        1 9.572320e-01 class3
## 88      gmfant_dich        2 4.276801e-02 class3
## 89     gmvideo_dich        1 6.143932e-01 class3
## 90     gmvideo_dich        2 3.856068e-01 class3
## 91   gmonsport_dich        1 9.075698e-01 class3
## 92   gmonsport_dich        2 9.243022e-02 class3
## 93     gmothsp_dich        1 9.821529e-01 class3
## 94     gmothsp_dich        2 1.784709e-02 class3
## 95    gmonline_dich        1 9.295170e-01 class3
## 96    gmonline_dich        2 7.048297e-02 class3
## 97   gmesports_dich        1 9.487281e-01 class3
## 98   gmesports_dich        2 5.127188e-02 class3
## 99     gmhorse_dich        1 9.738205e-01 class3
## 100    gmhorse_dich        2 2.617950e-02 class3
## 101    gmcards_dich        1 7.991728e-01 class3
## 102    gmcards_dich        2 2.008272e-01 class3
## 103     gmlott_dich        1 6.705517e-01 class3
## 104     gmlott_dich        2 3.294483e-01 class3
## 105   gmcasino_dich        1 8.435578e-01 class3
## 106   gmcasino_dich        2 1.564422e-01 class3
## 107   gmcharit_dich        1 7.308266e-01 class3
## 108   gmcharit_dich        2 2.691734e-01 class3
## 109      gmoth_dich        1 9.488889e-01 class3
## 110      gmoth_dich        2 5.111113e-02 class3
## 111   gcqsleep_dich        1 9.949244e-01 class3
## 112   gcqsleep_dich        2 5.075573e-03 class3
## 113     gcqhyg_dich        1 9.968741e-01 class3
## 114     gcqhyg_dich        2 3.125892e-03 class3
## 115    gcqfrnd_dich        1 1.000000e+00 class3
## 116    gcqfrnd_dich        2 3.168374e-09 class3
## 117    gcqfmly_dich        1 1.000000e+00 class3
## 118    gcqfmly_dich        2 0.000000e+00 class3
## 119    gcqacad_dich        1 1.000000e+00 class3
## 120    gcqacad_dich        2 0.000000e+00 class3
## 121   gcqmoney_dich        1 9.625656e-01 class3
## 122   gcqmoney_dich        2 3.743437e-02 class3
## 123     gcqbad_dich        1 9.281281e-01 class3
## 124     gcqbad_dich        2 7.187187e-02 class3
## 125 gcqdepress_dich        1 9.931157e-01 class3
## 126 gcqdepress_dich        2 6.884291e-03 class3
## 127    gmpools_dich        1 6.661537e-01 class4
## 128    gmpools_dich        2 3.338463e-01 class4
## 129     gmfant_dich        1 7.600624e-01 class4
## 130     gmfant_dich        2 2.399376e-01 class4
## 131    gmvideo_dich        1 4.221891e-01 class4
## 132    gmvideo_dich        2 5.778109e-01 class4
## 133  gmonsport_dich        1 5.990062e-01 class4
## 134  gmonsport_dich        2 4.009938e-01 class4
## 135    gmothsp_dich        1 7.244525e-01 class4
## 136    gmothsp_dich        2 2.755475e-01 class4
## 137   gmonline_dich        1 5.993370e-01 class4
## 138   gmonline_dich        2 4.006630e-01 class4
## 139  gmesports_dich        1 6.381735e-01 class4
## 140  gmesports_dich        2 3.618265e-01 class4
## 141    gmhorse_dich        1 7.616538e-01 class4
## 142    gmhorse_dich        2 2.383462e-01 class4
## 143    gmcards_dich        1 5.437564e-01 class4
## 144    gmcards_dich        2 4.562436e-01 class4
## 145     gmlott_dich        1 5.722116e-01 class4
## 146     gmlott_dich        2 4.277884e-01 class4
## 147   gmcasino_dich        1 7.335091e-01 class4
## 148   gmcasino_dich        2 2.664909e-01 class4
## 149   gmcharit_dich        1 8.431847e-01 class4
## 150   gmcharit_dich        2 1.568153e-01 class4
## 151      gmoth_dich        1 6.754965e-01 class4
## 152      gmoth_dich        2 3.245035e-01 class4
## 153   gcqsleep_dich        1 2.265659e-01 class4
## 154   gcqsleep_dich        2 7.734341e-01 class4
## 155     gcqhyg_dich        1 6.254411e-01 class4
## 156     gcqhyg_dich        2 3.745589e-01 class4
## 157    gcqfrnd_dich        1 5.394995e-01 class4
## 158    gcqfrnd_dich        2 4.605005e-01 class4
## 159    gcqfmly_dich        1 3.957067e-01 class4
## 160    gcqfmly_dich        2 6.042933e-01 class4
## 161    gcqacad_dich        1 4.530897e-01 class4
## 162    gcqacad_dich        2 5.469103e-01 class4
## 163   gcqmoney_dich        1 2.172279e-01 class4
## 164   gcqmoney_dich        2 7.827721e-01 class4
## 165     gcqbad_dich        1 2.493790e-01 class4
## 166     gcqbad_dich        2 7.506210e-01 class4
## 167 gcqdepress_dich        1 3.822546e-01 class4
## 168 gcqdepress_dich        2 6.177454e-01 class4
# Visualize item probability profiles
plot_prob(lca2[[3]]) +
  theme(axis.text.x = element_text(
    angle = 45,
    hjust = 1,
    size = 7
  ))

plot_prob(lca2[[4]]) +
  theme(axis.text.x = element_text(
    angle = 45,
    hjust = 1,
    size = 7
  ))

# Minimum sample size for 3 classes
fit2[3, 4] * fit2[3, 12]
## [1] 335
# Minimum sample size for 4 classes
fit2[4, 4] * fit2[4, 12]
## [1] 33