On 12/17/2015 02:27 AM, Edward Rigdon wrote:
> # factor to factor
>
> MCQ ~ TCQ
> TCQ ~ SE
> CCQ ~ TCQ
> BCQ ~ TCQ
> SE ~ SP'
>
> Unexpectedly, when these models were estimated, there were free residual
> covariances between the ultimate outcome factors in each model--between
> BCQ and CCQ in Model 1 and between MCQ, CCQ and BCQ in Model 5. That
> seems like very strange behavior to me.
This (default) behavior certainly is as intended. Residuals between
outcome variables (either latent or observed) are -per default- always
correlated. In the defaults-avoiding lavaan() function, this is
controlled by the auto.cov.y= argument (see table 3 in the JSS paper).
You can always 'identify' those outcome variables as follows:
> PT <- lavaanify(CQmodel5, auto = TRUE)
> lavNames(PT, "lv.y")
[1] "MCQ" "CCQ" "BCQ"
(and using "ov.y" for the observed ones).
I believe most multivariate software behaves like this (by default),
including Mplus. The idea is just like in multivariate regression: we do
not -by default- impose a structure on the residuals of outcome
variables. We assume their covariance structure is unstructured, unless
we have theoretical reasons to impose another structure (eg compound
symmetry or AR(1) if the outcomes are repeated measures).
If you are using the sem/cfa function, and you wish to override this,
you need to do this in the syntax, by adding lines like
MCQ ~~ 0*CCQ
if you prefer a zero residual covariance.
Yves.