test_that("model construction validation", {
# latent class analysis
lca2 = catlvm(L1[2] ~ X1 + X2 + X3 + X4 + X5)
lca3 = catlvm(L1[3] ~ X1 + X2 + X3 + X4 + X5)
lca4 = catlvm(L1[4] ~ X1 + X2 + X3 + X4 + X5)
lca5 = catlvm(L1[5] ~ X1 + X2 + X3 + X4 + X5)
# several latent class analysis
lcas2 = catlvm(L1[2] ~ X1 + X2 + X3 + X4 + X5,
L2[2] ~ Y1 + Y2 + Y3 + Y4 + Y5)
lcas3 = catlvm(L1[3] ~ X1 + X2 + X3 + X4 + X5,
L2[3] ~ Y1 + Y2 + Y3 + Y4 + Y5,
L3[3] ~ Z1 + Z2 + Z3 + Z4 + Z5)
# joint latent class analysis
jlca1 = catlvm(L1[3] ~ X1 + X2 + X3,
L2[3] ~ Y1 + Y2 + Y3,
L3[3] ~ Z1 + Z2 + Z3,
JC[3] ~ L1 + L2 + L3)
jlca2 = catlvm(L1[2] ~ X1 + X2 + X3,
L2[3] ~ Y1 + Y2 + Y3,
L3[4] ~ Z1 + Z2 + Z3,
JC[3] ~ L1 + L2 + L3)
# highly joint latent class analysis
jjcpa = catlvm(L1[2] ~ X11 + X21 + X31,
M1[2] ~ Y11 + Y21 + Y31,
N1[2] ~ Z11 + Z21 + Z31,
L2[2] ~ X12 + X22 + X32,
M2[2] ~ Y12 + Y22 + Y32,
N2[2] ~ Z12 + Z22 + Z32,
L3[2] ~ X13 + X23 + X33,
M3[2] ~ Y13 + Y23 + Y33,
N3[2] ~ Z13 + Z23 + Z33,
J1[2] ~ L1 + M1 + N1,
J2[2] ~ L2 + M2 + N2,
J3[2] ~ L3 + M3 + N3,
JP[2] ~ J1 + J2 + J3)
# latent class analysis with latent group
lcawg = catlvm(LG[2] ~ Z1 + Z2 + Z3,
LC[2] ~ X1 + X2 + X3,
LG ~ LC)
})
test_that("models with constraints", {
# latent class profile analysis
lcpa1 = catlvm(L1[3] ~ X1 + X2 + X3, L2[3] ~ Y1 + Y2 + Y3,
L3[3] ~ Z1 + Z2 + Z3, PF[4] ~ L1 + L2 + L3,
constraints = list(c("L1", "L2", "L3")))
expect_error(
catlvm(L1[2] ~ X1 + X2 + X3, L2[3] ~ Y1 + Y2 + Y3,
L3[4] ~ Z1 + Z2 + Z3, PF[3] ~ L1 + L2 + L3,
constraints = list(c("L1", "L2", "L3")))
)
# joint latent class analysis
jlcpa = catlvm(L1[2] ~ X11 + X21 + X31,
M1[2] ~ Y11 + Y21 + Y31,
N1[2] ~ Z11 + Z21 + Z31,
L2[2] ~ X12 + X22 + X32,
M2[2] ~ Y12 + Y22 + Y32,
N2[2] ~ Z12 + Z22 + Z32,
L3[2] ~ X13 + X23 + X33,
M3[2] ~ Y13 + Y23 + Y33,
N3[2] ~ Z13 + Z23 + Z33,
J1[2] ~ L1 + M1 + N1,
J2[2] ~ L2 + M2 + N2,
J3[2] ~ L3 + M3 + N3,
JP[2] ~ J1 + J2 + J3,
constraints = list(
c("L1", "L2", "L3"), c("M1", "M2", "M3"), c("N1", "N2", "N3"),
c("J1 ~ L1", "J2 ~ L2", "J3 ~ L3"),
c("J1 ~ M1", "J2 ~ M2", "J3 ~ M3"),
c("J1 ~ N1", "J2 ~ N2", "J3 ~ N3")
))
# latent transition analysis
lta = catlvm(L1[3] ~ X11 + X21 + X31,
L2[3] ~ X12 + X22 + X32,
L3[3] ~ X13 + X23 + X33,
L1 ~ L2, L2 ~ L3,
constraints = list(c("L1", "L2", "L3")))
# joint latent transition analysis
jlta = catlvm(L1[3] ~ X11 + X21 + X31,
M1[3] ~ Y11 + Y21 + Y31,
N1[3] ~ Z11 + Z21 + Z31,
L2[3] ~ X12 + X22 + X32,
M2[3] ~ Y12 + Y22 + Y32,
N2[3] ~ Z12 + Z22 + Z32,
L3[3] ~ X13 + X23 + X33,
M3[3] ~ Y13 + Y23 + Y33,
N3[3] ~ Z13 + Z23 + Z33,
J1[3] ~ L1 + M1 + N1,
J2[3] ~ L2 + M2 + N2,
J3[3] ~ L3 + M3 + N3,
J1 ~ J2, J2 ~ J3,
constraints = list(
c("L1", "L2", "L3"), c("M1", "M2", "N3"), c("N1", "N2", "N3"),
c("J1 ~ L1", "J2 ~ L2", "J3 ~ L3"),
c("J1 ~ M1", "J2 ~ M2", "J3 ~ M3"),
c("J1 ~ N1", "J2 ~ N2", "J3 ~ N3")
))
# multivariate latent class profile analysis
mlcpa = catlvm(L1[3] ~ X11 + X21 + X31,
M1[3] ~ Y11 + Y21 + Y31,
L2[3] ~ X12 + X22 + X32,
M2[3] ~ Y12 + Y22 + Y32,
L3[3] ~ X13 + X23 + X33,
M3[3] ~ Y13 + Y23 + Y33,
LP[3] ~ L1 + M1 + L2 + M2 + L3 + M3,
constraints = list(
c("L1", "L2", "L3"), c("M1", "M2", "M3"),
c("LP->L1", "LP->L2", "LP->L3"),
c("LP->M1", "LP->M2", "LP->M3")
))
# latent class profile analysis with latent group
lcpawg = catlvm(LG[2] ~ Z1 + Z2 + Z3,
LG ~ P1,
L1[2] ~ X11 + X12 + X13,
L2[2] ~ X21 + X22 + X23,
L3[2] ~ X31 + X32 + X33,
P1[2] ~ L1 + L2 + L3,
constraints = list(c("L1", "L2", "L3")))
# latent class analysis with latent profile
lcawp = catlvm(LP[2] ~ L1 + L2 + L3,
L1[2] ~ Y11 + Y12 + Y13,
L2[2] ~ Y21 + Y22 + Y23,
L3[2] ~ Y31 + Y32 + Y33,
LP ~ L,
L[2] ~ X11 + X12 + X13,
constraints = list(c("L1", "L2", "L3")))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.