## ---- include = FALSE--------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----setup-------------------------------------------------------------------- library(MIIVefa) library(mnormt) ## ----demo, eval=FALSE--------------------------------------------------------- # miivefa( # data = yourdata, # sigLevel = 0.05, # scalingCrit = 'sargan+factorloading_R2', # correlatedErrors = NULL # ) ## ----sim1a-------------------------------------------------------------------- seed <- 1235 #generate latent factor values eta <- rmnorm(n=500, mean = c(0,0,0,0), varcov = matrix(c(1,.5, .5, .5, .5,1, .5, .5, .5, .5,1, .5, .5, .5, .5,1), nrow = 4)) #generate errors seed <- 1235 e <- rmnorm(n=500, varcov = diag(.25, nrow = 20)) lambda <- cbind(c(1, .8, .75, .7, .65, rep(0,9), .4, rep(0,5)), c(rep(0,5), 1, .8, .75, .7, .65, rep(0,9), .3), c(rep(0,10), 1, .8, .75, .7, .65, rep(0,5)), c(rep(0,15), 1, .8, .75, .7, .65)) rep <- 500 #obtain observed variable values sim1 <- eta %*% t(lambda) + e #create column names colnames(sim1) <- paste0("x", 1:ncol(sim1)) #make it a data frame sim1 <- as.data.frame(sim1) ## ----sim1b-------------------------------------------------------------------- miivefa(sim1, .01) ## ----sim2a-------------------------------------------------------------------- seed <- 1234 #for replication purpose #generate latent factor values eta <- rmnorm(n=500, mean = c(0,0), varcov = matrix(c(1,.5, .5,1), nrow = 2)) #generate errors seed <- 1234 CE <- 0.15 e <- rmnorm(n=500, mean = rep(0,8), varcov = matrix(rbind(c(.25, 0, 0, 0, CE, 0, 0, 0), c(0, .25, 0, 0, 0, CE, 0, 0), c(0, 0, .25, 0, 0, 0, CE, 0), c(0, 0, 0, .25, 0, 0, 0, CE), c(CE, 0, 0, 0, .25, 0, 0, 0), c(0, CE, 0, 0, 0, .25, 0, 0), c(0, 0, CE, 0, 0, 0, .25, 0), c(0, 0, 0, CE, 0, 0, 0, .25)), nrow=8, ncol=8)) #factor loading matrix lambda <- matrix(c(1,0, .8,0, .7,0, .6,0, 0,1, 0,.8, 0,.7, .4,.6), nrow = 8, byrow = T) #obtain observed variable values sim2 <- eta %*% t(lambda) + e #create column names colnames(sim2) <- paste0("x", 1:ncol(sim2)) #make it a data frame sim2 <- as.data.frame(sim2) ## ----sim2b, warning=F--------------------------------------------------------- miivefa(sim2, .01) ## ----sim2c-------------------------------------------------------------------- miivefa(sim2, .01, correlatedErrors = 'x1~~x5 x2~~x6 x3~~x7 x4~~x8') ## ----sim3a-------------------------------------------------------------------- seed <- 1237 #for replication purpose #generate latent factor values eta <- rmnorm(n=500, mean = c(0,0), varcov = matrix(c(1,.5, .5,1), nrow = 2)) #generate residuals seed <- 1237 e <- rmnorm(n=500, varcov = diag(.25, nrow = 10)) #factor loading matrix lambda <- matrix(c(1,0, .8,0, .7,0, .6,0, 0,1, 0,.8, 0,.7, .4,.6, 0,0, 0,0), nrow = 10, byrow = T) #obtain observed variable values sim3 <- eta %*% t(lambda) + e #create column names colnames(sim3) <- paste0("x", 1:ncol(sim3)) #make it a data frame sim3 <- as.data.frame(sim3) ## ----sim3b, warning=F--------------------------------------------------------- miivefa(sim3, .01) ## ----emp1a-------------------------------------------------------------------- library(lavaan) holzingerdata <- lavaan::HolzingerSwineford1939[,7:15] head(holzingerdata) ## ----emp1b-------------------------------------------------------------------- miivefa(holzingerdata, sigLevel = .01, 'sargan+factorloading_R2') ## ----emp2a-------------------------------------------------------------------- library(MPsychoR) data("Bergh") miivefa(Bergh[,1:10], .01, 'sargan+factorloading_R2') ## ----emp3a, warning=F--------------------------------------------------------- data("SDOwave") sdowavedata <- SDOwave[, c(paste0(c('I1.','I2.','I3.','I4.'), 1996), paste0(c('I1.','I2.','I3.','I4.'), 2000))] miivefa(sdowavedata, .01) ## ----emp3b, warning=F--------------------------------------------------------- miivefa(sdowavedata, .01, correlatedErrors = 'I1.1996~~I1.2000 I2.1996~~I2.2000 I3.1996~~I3.2000 I4.1996~~I4.2000')