test2.R

devtools::load_all()
library(tidyverse)
dat <- readr::read_csv("~/Dropbox/Personal/My Dissertation/data/data_rmjlca.csv")
dat1 <- dat %>% mutate(
   dsmoke1998 = msmoke1998 == 30, msmoke1998 = msmoke1998 > 0, bsmoke1998 = pdsmoke1998 >= 10,
   dsmoke2003 = msmoke2003 == 30, msmoke2003 = msmoke2003 > 0, bsmoke2003 = pdsmoke2003 >= 10,
   dsmoke2008 = msmoke2008 == 30, msmoke2008 = msmoke2008 > 0, bsmoke2008 = pdsmoke2008 >= 10,
   ddrink1998 = mdrink1998 >= 5, mdrink1998 = mdrink1998 > 0, bdrink1998 = bdrink1998 > 0,
   ddrink2003 = mdrink2003 >= 5, mdrink2003 = mdrink2003 > 0, bdrink2003 = bdrink2003 > 0,
   ddrink2008 = mdrink2008 >= 5, mdrink2008 = mdrink2008 > 0, bdrink2008 = bdrink2008 > 0,
   dmari1998 = mmari1998 >= 10, mmari1998 = mmari1998 > 0, smari1998 = smari1998 > 0,
   dmari2003 = mmari2003 >= 10, mmari2003 = mmari2003 > 0, smari2003 = smari2003 > 0,
   dmari2008 = mmari2008 >= 10, mmari2008 = mmari2008 > 0, smari2008 = smari2008 > 0
) %>% mutate_all(as.numeric)



jlcpa <- slcm(
   smoke1[3] ~ ysmoke1998 + msmoke1998 + dsmoke1998 + bsmoke1998,
   drink1[3] ~ ydrink1998 + mdrink1998 + ddrink1998 + bdrink1998,
   mari1[3] ~ ymari1998 + mmari1998 + dmari1998 + smari1998,
   smoke2[3] ~ ysmoke2003 + msmoke2003 + dsmoke2003 + bsmoke2003,
   drink2[3] ~ ydrink2003 + mdrink2003 + ddrink2003 + bdrink2003,
   mari2[3] ~ ymari2003 + mmari2003 + dmari2003 + smari2003,
   smoke3[3] ~ ysmoke2008 + msmoke2008 + dsmoke2008 + bsmoke2008,
   drink3[3] ~ ydrink2008 + mdrink2008 + ddrink2008 + bdrink2008,
   mari3[3] ~ ymari2008 + mmari2008 + dmari2008 + smari2008,
   jc1[5] ~ smoke1 + drink1 + mari1,
   jc2[5] ~ smoke2 + drink2 + mari2,
   jc3[5] ~ smoke3 + drink3 + mari3,
   pf[4] ~ jc1 + jc2 + jc3,
   constraints = list(
      c("smoke1", "smoke2", "smoke3"),
      c("drink1", "drink2", "drink3"),
      c("mari1", "mari2", "mari3"),
      c("jc1 ~ smoke1", "jc2 ~ smoke2", "jc3 ~ smoke3"),
      c("jc1 ~ drink1", "jc2 ~ drink2", "jc3 ~ drink3"),
      c("jc1 ~ mari1", "jc2 ~ mari2", "jc3 ~ mari3")
   )
)

jlcpa <- slcm(
   smoke1[3] ~ ysmoke1998 + msmoke1998 + dsmoke1998 + bsmoke1998,
   drink1[3] ~ ydrink1998 + mdrink1998 + ddrink1998 + bdrink1998,
   mari1[3] ~ ymari1998 + mmari1998 + dmari1998 + smari1998,
   smoke2[3] ~ ysmoke2003 + msmoke2003 + dsmoke2003 + bsmoke2003,
   drink2[3] ~ ydrink2003 + mdrink2003 + ddrink2003 + bdrink2003,
   mari2[3] ~ ymari2003 + mmari2003 + dmari2003 + smari2003,
   smoke3[3] ~ ysmoke2008 + msmoke2008 + dsmoke2008 + bsmoke2008,
   drink3[3] ~ ydrink2008 + mdrink2008 + ddrink2008 + bdrink2008,
   mari3[3] ~ ymari2008 + mmari2008 + dmari2008 + smari2008,
   jc1[5] ~ smoke1 + drink1 + mari1,
   jc2[5] ~ smoke2 + drink2 + mari2,
   jc3[5] ~ smoke3 + drink3 + mari3,
   pf[4] ~ jc1 + jc2 + jc3,
   constraints = list(
      c("smoke1", "smoke2", "smoke3"),
      c("drink1", "drink2", "drink3"),
      c("mari1", "mari2", "mari3"),
      c("jc1 ~ smoke1", "jc2 ~ smoke2", "jc3 ~ smoke3"),
      c("jc1 ~ drink1", "jc2 ~ drink2", "jc3 ~ drink3"),
      c("jc1 ~ mari1", "jc2 ~ mari2", "jc3 ~ mari3")
   )
)

ll <- -Inf
for (i in 1:20) {
   ff <- jlcpa %>% fit(data = dat1, control = list(em.iterlim = 2000))
   if (logLik(ff) > ll)
      gf <- ff
}
estimates(gf, round = 3)


jlca2$args
estimates(jlca2)

library(catlvm)
lcpa <- slcm(
   smoke1[3] ~ ysmoke1998 + msmoke1998 + dsmoke1998 + bsmoke1998,
   smoke2[3] ~ ysmoke2003 + msmoke2003 + dsmoke2003 + bsmoke2003,
   smoke3[3] ~ ysmoke2008 + msmoke2008 + dsmoke2008 + bsmoke2008,
   pf[5] ~ smoke1 + smoke2 + smoke3,
   constraints = list(
      c("smoke1", "smoke2", "smoke3")
   )
) %>% fit(dat1), control = list(em.iterlim = 5000))
lcpa %>% parameter_numbers()
debug(fit)
f <- lcpa %>% fit(restriction = paste0("tau", c(2, 3, 17, 18, 32, 33, 4, 6, 7,8,19,21,22,23,34,36,37,38)))
kim0sun/catlvm documentation built on May 8, 2023, 12:55 p.m.