Bifactor ESEM - uncorrelated factors

99 views
Skip to first unread message

Serena

unread,
Jul 7, 2024, 8:33:48 AM7/7/24
to lavaan
Hi there,

I found factors cannot be uncorrelated in bifactor ESEM.

I have three factors indicated by 4 items each. Now I would like to run bifactor ESEM. My code is:

biesem_mod <- "
  efa('sat')*f1 + efa('sat')*f2 + efa('sat')*f3  =~ var1 + var2 +  var3 + var4 +
                                                                                 var5 + var6 + var7 + var8 +
                                                                                 var9 + var10 + var11 + var12

   g_f =~ var1 + var2 +  var3 + var4 +
               var5 + var6 + var7 + var8 +
               var9 + var10 + var11 + var12

   f1 ~~ 0*f2
   f1 ~~ 0*f3
   f2 ~~ 0*f3

   g_f ~~ 0*f1 + 0*f2 + 0*f3
"
biesem_mod_fit <- cfa(biesem_mod, data = data, cluster = "id", estimator = "MLR", rotation = "geomin")

summary(biesem_mod_fit, fit.measures = TRUE, standardized = TRUE)

After these, in the output:
 Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  f1 ~~                                                                
    f2               0.455                                                0.455    0.455
    f3               0.289                                                0.289    0.289
  f2 ~~                                                                
    f3               0.220                                                0.220    0.220

  f1 ~~                                                                
    g_f              0.000                                                0.000    0.000
  f2 ~~                                                                
    g_f              0.000                                                0.000    0.000
 f3 ~~                                                                
    g_f              0.000                                                0.000    0.000

The covariances between three factors still exist, however, the covariances between specific factors and the general factor are o.

Any ideas about this?

Thanks in advance,
Serena

Daniel Morillo Cuadrado

unread,
Jul 9, 2024, 12:21:57 PM7/9/24
to lav...@googlegroups.com
It's probably due to using a "geomin" rotation, which I think is an oblique rotation. If you want them to be uncorrelated try with an orthogonal rotation instead. According to the `efa()` help page, you may check the GPArotation package for help about the different types of rotations.

In any case, I have my doubts that specific factors should necessarily be constrained to be uncorrelated always, but that may be unrelated to your problem.

Hope it helps!

--
Daniel Morillo, Ph.D.
GitHub | ORCID


--
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.
To view this discussion on the web visit https://groups.google.com/d/msgid/lavaan/4dbcdbe9-a8d3-4cbc-ad99-4aa1f8218ad8n%40googlegroups.com.

Serena

unread,
Jul 10, 2024, 2:09:37 AM7/10/24
to lavaan
Hi Daniel,

Thanks for your ideas!

-> It's probably due to using a "geomin" rotation, which I think is an oblique rotation. If you want them to be uncorrelated try with an orthogonal rotation instead. 
I did try the 'target' rotation, which is an orthogonal rotation, but the results are similar  (i.e., they still cannot be uncorrelated).

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  f1 ~~                                                                
    f2               -0.382                                         
 -0.382     -0.382
    f3               0.729                                            
 0.729       0.729
  f2 ~~                                                                
    f3               -0.260                                         
-0.260       -0.260

  f1 ~~                                                                
    g_f              0.000                                                0.000    0.000
  f2 ~~                                                                
    g_f              0.000                                                0.000    0.000
 f3 ~~                                                                
    g_f              0.000                                                0.000    0.000

-> In any case, I have my doubts that specific factors should necessarily be constrained to be uncorrelated always, but that may be unrelated to your problem.
My understanding is that they capture different information and thus should be uncorrelated. However, I am open to discussing this further.

Best,
Serena
Reply all
Reply to author
Forward
0 new messages