# Case 009: controlled covariance CFA example, not empirical observations.
suppressPackageStartupMessages(library(lavaan))
S <- matrix(.4,6,6)
S[1:3,1:3] <- 1
S[4:6,4:6] <- 1
diag(S) <- 2
dimnames(S) <- list(paste0("x",1:6),paste0("x",1:6))
N <- 400L  # nominal sample size for the illustrative fit calculations
one <- cfa("f =~ x1+x2+x3+x4+x5+x6",sample.cov=S,sample.nobs=N,
 sample.cov.rescale=FALSE,std.lv=TRUE,meanstructure=FALSE,estimator="ML")
two <- cfa("f1 =~ x1+x2+x3
f2 =~ x4+x5+x6",sample.cov=S,sample.nobs=N,
 sample.cov.rescale=FALSE,std.lv=TRUE,meanstructure=FALSE,estimator="ML")
measures <- c("chisq","df","cfi","rmsea","srmr")
print(rbind(one_factor=fitMeasures(one,measures),two_factor=fitMeasures(two,measures)))
print(round(S-fitted(one)$cov,6))
print(modindices(one,sort=TRUE,maximum.number=5))
# Better fit under the stipulated construction is not independent validation.
stopifnot(lavInspect(one,"converged"),lavInspect(two,"converged"),
 lavInspect(one,"post.check"),lavInspect(two,"post.check"),
 fitMeasures(one,"chisq")>100,fitMeasures(two,"chisq")<1e-6,
 max(abs(S-fitted(two)$cov))<1e-6)
print(packageVersion("lavaan"))
sessionInfo()
