AVE and Omega values for higher order factors (lavaan and semTools)

964 views Asked by At

I want to use the reliability() function from package semToolson the output from sem() (package lavaan).

I'm using the function like this:

reliability(fit, return.total = TRUE, dropSingle = FALSE, omit.imps = c("no.conv", "no.se"))

But I'm getting the following warning:

Higher-order factors were ignored.

The output shows the value of only three latent variables:

               VOR          DID   ANT
alpha  0.7144851  0.7303742  0.7381195
omega  0.7317086  0.7474582  0.7590928
omega2 0.7317086  0.7474582  0.7590928
omega3 0.7428142  0.7558317  0.7597882
avevar 0.3642473  0.3856845  0.4598487

My model, however, has many more variables. Here is the output generated from the sem() model created with lavaan:

Latent Variables:
                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  CPT =~                                                          
    CPT2              1.000                               0.486    0.570
    CPT3              1.270    0.239    5.312    0.000    0.618    0.840
    CPT4              0.897    0.218    4.121    0.000    0.436    0.518
  ANT =~                                                            
    ANT1              1.000                               0.399    0.564
    ANT4              1.596    0.356    4.486    0.000    0.636    0.737
    ANT3              1.068    0.291    3.667    0.000    0.426    0.494
  ROL =~                                                         
    ROL1              1.000                               0.686    0.841
    ROL2              0.992    0.120    8.300    0.000    0.681    0.761
    ROL3              0.999    0.117    8.572    0.000    0.686    0.781
    ROL4              0.794    0.113    7.009    0.000    0.545    0.664
  SET =~                                                      
    SET1              1.000                               0.613    0.571
    SET2              1.185    0.220    5.382    0.000    0.726    0.809
    SET3              1.081    0.207    5.220    0.000    0.663    0.747
    SET4              0.989    0.216    4.578    0.000    0.606    0.600
  CTO =~                                                         
    CTO1              1.000                               0.903    0.752
    CTO2              0.878    0.145    6.037    0.000    0.793    0.687
    CTO3              1.005    0.155    6.482    0.000    0.907    0.772
  RWD =~                                                              
    RWD1              1.000                               0.831    0.831
    RWD2              1.054    0.097   10.878    0.000    0.876    0.911
    RWD3              1.025    0.099   10.373    0.000    0.852    0.863
  VOR =~                                                               
    VOR1              1.000                               0.281    0.383
    VOR2              2.107    0.665    3.170    0.002    0.592    0.605
    VOR3              1.994    0.615    3.245    0.001    0.560    0.653
    VOR4              1.845    0.578    3.193    0.001    0.518    0.619
    VOR5              1.968    0.603    3.264    0.001    0.553    0.667
  DID =~                                                          
    DID1              1.000                               0.447    0.667
    DID2              1.250    0.191    6.530    0.000    0.559    0.804
    DID3              1.176    0.187    6.302    0.000    0.526    0.759
    DID4              0.969    0.172    5.632    0.000    0.433    0.658
    DID5              0.550    0.224    2.453    0.014    0.246    0.268
  ABT =~                                                          
    ABT1              1.000                               0.701    0.703
    ABT2              1.321    0.195    6.760    0.000    0.926    0.809
    ABT3              0.578    0.135    4.291    0.000    0.405    0.475
    ABT4              0.864    0.165    5.248    0.000    0.606    0.589
  EMT =~                                                          
    VOR               1.000                               0.666    0.666
    DID               1.672    0.602    2.778    0.005    0.699    0.699
    ABT               3.372    1.159    2.909    0.004    0.900    0.900

Here is the SEM model I'm using to generate latent variables:

modelnew <- '
CPT =~ CPT2 + CPT3 + CPT4
ANT =~   ANT1 + ANT4 +  ANT3
ROL =~ ROL1 + ROL2 + ROL3 + ROL4

SET =~ SET1+SET2+SET3+SET4
CTO =~ CTO1+CTO2+CTO3  
RWD =~ RWD1+RWD2+RWD3



VOR =~ VOR1 + VOR2 + VOR3  +VOR4 + VOR5
DID =~ DID1 +DID2 +DID3 +DID4 +DID5
ABT =~ ABT1 +ABT2 +ABT3 +ABT4
EMT =~ VOR + DID + ABT

CPT ~~ EMT 
ROL ~~ EMT 
ANT ~~ EMT 

CPT  ~~ SET + CTO + RWD
ANT ~~ SET + CTO + RWD
ROL ~~ SET + CTO + RWD
'

How do I get the AVE and Omega values of all the latent variables without ignoring Higher-order factors?

1

There are 1 answers

0
Werner Hertzog On

Your model is a higher-order model since it uses latent variables (VOR DID and ABT) as dependent ones (see line EMT =~ VOR + DID + ABT).

This is what your model looks like when plot it with function semPaths() in package semPlot:

enter image description here

Because reliability() can only handle one factor, it ignores the upper variables (the 'higher-order factor') of your model.

Luckily, there's a solution for that. Just use function reliabilityL2() from semTools:

reliabilityL2(fit, "EMT")
reliabilityL2(fit, "CPT")
reliabilityL2(fit, "ANT")
# and so on...

This should give you the Omega for the missing variables.