library(lavaan) dat2 <- read.csv("example2c.csv", header = FALSE) colnames(dat2) <- c("u1", "u2", "u3", "u4", "u5", "u6", "u7", "u8", "g") for(i in 1:8) dat2[,i] <- ordered(dat2[,i]) dat2[,9] <- factor(dat2[,9], labels = c("male", "female")) configural2 <- " f1 =~ c(1, 1)*u1 + u2 + u3 + u4 f2 =~ c(1, 1)*u5 + u6 + u7 + u8 u1 | c(t11, t11)*t1 u2 | c(t21, t21)*t1 u3 | c(t31, t31)*t1 u4 | c(t41, t41)*t1 u5 | c(t51, t51)*t1 u6 | c(t61, t61)*t1 u7 | c(t71, t71)*t1 u8 | c(t81, t81)*t1 f1 ~~ NA*f1 f2 ~~ NA*f2 f1 ~~ NA*f2 f1 ~ c(0, NA)*1 f2 ~ c(0, NA)*1 u1 ~~ c(1, 1)*u1 u2 ~~ c(1, NA)*u2 u3 ~~ c(1, NA)*u3 u4 ~~ c(1, NA)*u4 u5 ~~ c(1, 1)*u5 u6 ~~ c(1, NA)*u6 u7 ~~ c(1, NA)*u7 u8 ~~ c(1, NA)*u8 " outConfigural2 <- cfa(configural2, data = dat2, group = "g", parameterization="theta", estimator="wlsmv") weak2 <- " f1 =~ c(1, 1)*u1 + c(f21, f21)*u2 + c(f31, f31)*u3 + c(f41, f41)*u4 f2 =~ c(1, 1)*u5 + c(f62, f62)*u6 + c(f72, f72)*u7 + c(f82, f82)*u8 u1 | c(t11, t11)*t1 u2 | c(t21, t21)*t1 u3 | c(t31, t31)*t1 u4 | c(t41, t41)*t1 u5 | c(t51, t51)*t1 u6 | c(t61, t61)*t1 u7 | c(t71, t71)*t1 u8 | c(t81, t81)*t1 f1 ~~ NA*f1 f2 ~~ NA*f2 f1 ~~ NA*f2 f1 ~ c(0, NA)*1 f2 ~ c(0, NA)*1 u1 ~~ c(1, 1)*u1 u2 ~~ c(1, NA)*u2 u3 ~~ c(1, NA)*u3 u4 ~~ c(1, NA)*u4 u5 ~~ c(1, 1)*u5 u6 ~~ c(1, NA)*u6 u7 ~~ c(1, NA)*u7 u8 ~~ c(1, NA)*u8 " outWeak2 <- cfa(weak2, data = dat2, group = "g", parameterization="theta", estimator="wlsmv") strict2 <- " f1 =~ c(1, 1)*u1 + c(f21, f21)*u2 + c(f31, f31)*u3 + c(f41, f41)*u4 f2 =~ c(1, 1)*u5 + c(f62, f62)*u6 + c(f72, f72)*u7 + c(f82, f82)*u8 u1 | c(t11, t11)*t1 u2 | c(t21, t21)*t1 u3 | c(t31, t31)*t1 u4 | c(t41, t41)*t1 u5 | c(t51, t51)*t1 u6 | c(t61, t61)*t1 u7 | c(t71, t71)*t1 u8 | c(t81, t81)*t1 f1 ~~ NA*f1 f2 ~~ NA*f2 f1 ~~ NA*f2 f1 ~ c(0, NA)*1 f2 ~ c(0, NA)*1 u1 ~~ c(1, 1)*u1 u2 ~~ c(1, 1)*u2 u3 ~~ c(1, 1)*u3 u4 ~~ c(1, 1)*u4 u5 ~~ c(1, 1)*u5 u6 ~~ c(1, 1)*u6 u7 ~~ c(1, 1)*u7 u8 ~~ c(1, 1)*u8 " outStrict2 <- cfa(strict2, data = dat2, group = "g", parameterization="theta", estimator="wlsmv") summary(outConfigural2, fit = TRUE) summary(outWeak2, fit = TRUE) summary(outStrict2, fit = TRUE) anova(outConfigural2, outWeak2) anova(outWeak2, outStrict2)