#simulate data
a <- matrix(c(
1.5,NA,
0.5,NA,
1.0,NA,
1.0,0.5,
NA,1.5,
NA,0.5,
NA,1.0,
NA,1.0),ncol=2,byrow=TRUE)
d <- matrix(c(
-1.0,NA,NA,
-1.5,NA,NA,
1.5,NA,NA,
0.0,NA,NA,
3.0,2.0,-0.5,
2.5,1.0,-1,
2.0,0.0,NA,
1.0,NA,NA),ncol=3,byrow=TRUE)
sigma <- diag(2)
sigma[1,2] <- sigma[2,1] <- .4
dataset <- simdata(a,d,2000,sigma)
#analyses
#CIFA for 2 factor crossed structure
model.1 <- specify.model()
F1 -> Item_1, lam11, NA
F1 -> Item_2, lam12, NA
F1 -> Item_3, lam13, NA
F1 -> Item_4, lam14, NA
F2 -> Item_4, lam24, NA
F2 -> Item_5, lam25, NA
F2 -> Item_6, lam26, NA
F2 -> Item_7, lam27, NA
F2 -> Item_8, lam28, NA
F1 <-> F2, phi12, NA
F1 <-> F1, NA, 1
F2 <-> F2, NA, 1
mod1 <- confmirt(dataset,model.1)
coef(mod1)
summary(mod1)
residuals(mod1)
#fix first slope at 1.5, and set slopes 7 & 8 to be equal
model.2 <- specify.model()
F1 -> Item_1, NA, 1.5
F1 -> Item_2, lam12, NA
F1 -> Item_3, lam13, NA
F1 -> Item_4, lam14, NA
F2 -> Item_4, lam24, NA
F2 -> Item_5, lam25, NA
F2 -> Item_6, lam26, NA
F2 -> Item_7, lam27, NA
F2 -> Item_8, lam27, NA
F1 <-> F2, phi12, NA
F1 <-> F1, NA, 1
F2 <-> F2, NA, 1
mod2 <- confmirt(dataset,model.2)
anova(mod2,mod1)
#####
#bifactor
model.3 <- specify.model()
F1 -> Item_1, lam11, NA
F1 -> Item_2, lam12, NA
F1 -> Item_3, lam13, NA
F1 -> Item_4, lam14, NA
F1 -> Item_5, lam15, NA
F1 -> Item_6, lam16, NA
F1 -> Item_7, lam17, NA
F1 -> Item_8, lam18, NA
F2 -> Item_1, lam21, NA
F2 -> Item_2, lam22, NA
F2 -> Item_3, lam23, NA
F2 -> Item_4, lam24, NA
F3 -> Item_5, lam35, NA
F3 -> Item_6, lam36, NA
F3 -> Item_7, lam37, NA
F3 -> Item_8, lam38, NA
F1 <-> F1, NA, 1
F2 <-> F2, NA, 1
F3 <-> F3, NA, 1
mod3 <- confmirt(dataset,model.3)
coef(mod3)
summary(mod3)
residuals(mod3)
anova(mod1,mod3)
Run the code above in your browser using DataLab