Hi Amonet,
The paper you cite states "
Instead, the appropriate null model is one in which neither the variances nor the means of corresponding indicators change over time." Based on this using the HolzingerSwineford1939 data set, cause I don't have yours, I think it should look like this:
littles.null <- '
# for illustration,
# x1, x4, and x7 are the same indicator over time
# x2, x5, and x8 are the same indicator over time
# and x3, x6, and x9 are the same indicator over time
# constrain variances to be equal
x1 ~~ v1*x1
x4 ~~ v1*x4
x7 ~~ v1*x7
x2 ~~ v2*x2
x5 ~~ v2*x5
x8 ~~ v2*x8
x3 ~~ v3*x3
x6 ~~ v3*x6
x9 ~~ v3*x9
# constrain means to be equal
x1 ~ m1*1
x4 ~ m1*1
x7 ~ m1*1
x2 ~ m2*1
x5 ~ m2*1
x8 ~ m2*1
x3 ~ m3*1
x6 ~ m3*1
x9 ~ m3*1
'
ft.ln <- cfa(littles.null, data = HolzingerSwineford1939)
summary(fit.ln, fit.measures = T)
fitmeasures(ft.ln, fit.measures = c("TLI", "CFI", "chisq", "RMSEA"))
inspect(ft.ln, "cov.ov")
inspect(ft.ln, "mean.ov")
traditional.null <- '
x1 ~~ x1
x2 ~~ x2
x3 ~~ x3
x4 ~~ x4
x5 ~~ x5
x6 ~~ x6
x7 ~~ x7
x8 ~~ x8
x9 ~~ x9
'
fit.tn <- cfa(HS.model, data = HolzingerSwineford1939)
summary(
fit.tn, fit.measures = T)
fitmeasures(
fit.tn, fit.measures = c("TLI", "CFI", "chisq", "RMSEA"))
inspect(
fit.tn, "cov.ov")