Hello Lex,
I am afraid the group.equal= argument does not work (yet) in combination
with EFA rotation. Multiple group rotation is not simple, but several
approaches do exist. Unfortunately, none of them have been implemented
in lavaan yet. We plan to do this in the spring of 2022.
At the very least, lavaan should provide a warning message. Could you
please open an issue on github (
https://github.com/yrosseel/lavaan) so
that I don't forget?
Thanks in advance,
Yves.
> into difficulty regarding the group.equalargument. I would
> really appreciate any help that others may be able to provide as
> I am still new to this. I have fit an ESEM model with 4 factors
> and I’m using them to predict several variables in a sample with
> N > 600. I want to test the model’s measurement invariance
> across two groups in order to see if it is possible to compare
> models across two timepoints. So far, I have attempted this via
> the code included below.
>
> After reviewing the output I had a few concerns. Particularly,
> that the group.equal argument may not be working properly when
> combined with ESEM. It appears to not be truly constraining to
> equality the loadings. Specifically, it’s only successfully
> constraining loadings for the Residual model and not for the
> Metric or Scalar models. Intercepts and residuals did not have
> this issue and were properly constrained when included in the
> argument for the appropriate models (indicated in code below).
>
> I am wondering if I am understanding the output properly and if
> this concern regarding the group.equalargument is valid? And if
> it is valid, how I might go about testing invariance in other ways?
>
>
> esem1_model <- '
> efa("efa")*f1 +
> efa("efa")*f2 +
> efa("efa")*f3 +
> efa("efa")*f4 =~ cp_pes2 + cp_pes3 + cp_pes4 + cp_pes5 + cp_pes6
> + cp_pes7 + cp_pes8 + cp_pes9 + cp_pes10 + cp_pes11 + cp_pes12 +
> cp_pes14 + cp_pes15 + cp_pes18 + cp_pes19 + cp_pes20 + cp_pes21
> + cp_pes22 + cp_pes23 + cp_pes25 + cp_pes26 + cp_pes27 +
> cp_pes28 + cp_pes29 + cp_pes30 + cp_pes32 + cp_pes34 + cp_pes36
> + cp_pes37 + cp_pes38 + cp_pes39’
>
>
> m1.fit.configural <- sem(model = esem1_model,
> data = dat,
> rotation = "oblimin",
> estimator = "MLR",
> missing = "ml",
> std.ov = TRUE,
> group = "Timepoint")
> summary(m1.fit.configural, fit.measures = TRUE)
>
> For the Metric model group.equal = c("loadings"))is the final
> line in the above code that otherwise remains unchanged. For the
> Scalar model group.equal = c("loadings", "intercepts"))is the
> final line in the above code that also otherwise remains
> unchanged. And finally, for the Residual model group.equal =
> c("loadings", "intercepts", "residuals"))is the final line in
> the above code that otherwise remains unchanged.
>
>
> I hope this makes sense and please do let me know if further
> clarification is needed to help. Thank you so much in advance!
>
> Best,
> Lex
>
> --
> You received this message because you are subscribed to the Google
> Groups "lavaan" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to
lavaan+un...@googlegroups.com
> <mailto:
lavaan+un...@googlegroups.com>.
> To view this discussion on the web visit
>
https://groups.google.com/d/msgid/lavaan/f8327409-710a-43a0-94fe-3fa6574e340cn%40googlegroups.com
> <
https://groups.google.com/d/msgid/lavaan/f8327409-710a-43a0-94fe-3fa6574e340cn%40googlegroups.com?utm_medium=email&utm_source=footer>.