Closed mccarthy-m-g closed 2 years ago
Sorry, this escaped my attention (that was a busy week for me).
The reason measEq.syntax()
uses 3 more df than the model you specified is that it will free residual variances in wave 2 when the thresholds, loadings, and intercepts are constrained for binary indicators.
When using the delta parameterization, it will instead free marginal (total) variances via the scaling parameters in wave 2. But I think the problem there is that you still used model_1b
, which specifies a model assuming the theta parameterization. That is, model_1b
frees the residual variances, which has no effect on fit because they are not model parameters; and the scaling factors remain fixed to 1, so the fit ("chisq"
) is the same with fewer df counted. Instead, specify another model_1c
using measEq.syntax()
, as you did for model_1b
.
I'm trying to reproduce a
lavaan
model for testing longitudinal measurement equivalence of intercepts for a set of binary indicators using thesemTools::measEq.syntax()
function but cannot seem to do so. I'm not sure if I'm specifying something incorrectly here or if this is a bug, so I thought I'd flag it here. I've included a reprex below.For context, the reprex is based on (part of) Example 2.8 from Jason Newsom's Longitudinal Structural Equation Modeling book. I've been able to reproduce the other longitudinal measurement equivalence examples from the book, but not this one.
I'm using the most recent version of
lavaan
and the development version ofsemTools
.Created on 2021-10-24 by the reprex package (v2.0.0)