library(lavaan)
HS.model <- ' visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9 '
HSMiss <- HolzingerSwineford1939[,paste("x", 1:9, sep="")]
randomMiss <- rbinom(prod(dim(HSMiss)), 1, 0.1)
randomMiss <- matrix(as.logical(randomMiss), nrow=nrow(HSMiss))
HSMiss[randomMiss] <- NA
out <- cfa.mi(HS.model, data=HSMiss, m = 3, chi="all")
summary(out)
inspect(out, "fit")
inspect(out, "impute")
## Not run:
# ##Multiple group example
# HSMiss2 <- cbind(HSMiss, school = HolzingerSwineford1939[,"school"])
# out2 <- cfa.mi(HS.model, data=HSMiss2, m = 3, miArgs=list(noms="school"), chi="MR", group="school")
# summary(out2)
# inspect(out2, "fit")
# inspect(out2, "impute")
#
# ##Example using previously imputed data with runMI
# library(Amelia)
#
# modsim <- '
# f1 =~ 0.7*y1+0.7*y2+0.7*y3
# f2 =~ 0.7*y4+0.7*y5+0.7*y6
# f3 =~ 0.7*y7+0.7*y8+0.7*y9'
#
# mod <- '
# f1 =~ y1+y2+y3
# f2 =~ y4+y5+y6
# f3 =~ y7+y8+y9'
#
# datsim <- simulateData(modsim,model.type="cfa", meanstructure=TRUE,
# std.lv=TRUE, sample.nobs=c(200,200))
# randomMiss2 <- rbinom(prod(dim(datsim)), 1, 0.1)
# randomMiss2 <- matrix(as.logical(randomMiss2), nrow=nrow(datsim))
# datsim[randomMiss2] <- NA
# datsimMI <- amelia(datsim,m=3, noms="group")
#
# out3 <- runMI(mod, data=datsimMI$imputations, chi="LMRR", group="group", fun="cfa")
# summary(out3)
# inspect(out3, "fit")
# inspect(out3, "impute")
#
# # Categorical variables
# popModel <- "
# f1 =~ 0.6*y1 + 0.6*y2 + 0.6*y3 + 0.6*y4
# y1 ~*~ 1*y1
# y2 ~*~ 1*y2
# y3 ~*~ 1*y3
# y4 ~*~ 1*y4
# f1 ~~ 1*f1
# y1 | 0.5*t1
# y2 | 0.25*t1
# y3 | 0*t1
# y4 | -0.5*t1
# "
# analyzeModel <- "
# f1 =~ y1 + y2 + y3 + y4
# y1 ~*~ 1*y1
# y2 ~*~ 1*y2
# y3 ~*~ 1*y3
# y4 ~*~ 1*y4
# "
# dat <- simulateData(popModel, sample.nobs = 200L)
# miss.pat <- matrix(as.logical(rbinom(prod(dim(dat)), 1, 0.2)), nrow(dat), ncol(dat))
# dat[miss.pat] <- NA
# out5 <- cfa.mi(analyzeModel, data=dat, ordered=paste0("y", 1:4), m = 3,
# miArgs=list(ords = c("y1", "y2", "y3", "y4")))
# summary(out5)
# inspect(out5, "fit")
# inspect(out5, "impute")
#
# ## End(Not run)
Run the code above in your browser using DataLab