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