Skip to contents

This function computes McDonald's omega reliability coefficients alongside Cronbach's alpha for a set of items or a scale. It acts as a wrapper for the psych::omega() function. The aim is to make McDonald's omega readily available and present it with the widely-known Cronbach's alpha, allowing for a more complete understanding of scale reliability. The output includes various forms of omega (e.g., total, hierarchical) depending on the factor structure specified.

Usage

item_omega(x, ...)

# S3 method for class 'data.frame'
item_omega(
  x,
  n = "auto",
  rotation = "oblimin",
  factor_method = "minres",
  poly_cor = FALSE,
  verbose = TRUE,
  ...
)

# S3 method for class 'matrix'
item_omega(
  x,
  n = "auto",
  rotation = "oblimin",
  factor_method = "minres",
  n_obs = NULL,
  poly_cor = FALSE,
  verbose = TRUE,
  ...
)

Arguments

x

A matrix or a data frame.

...

Additional arguments passed to psych::omega().

n

Number of factors to extract.

rotation

Rotation to be applied. Defaults to "oblimin". Further options are "simplimax", "Promax", "cluster" and "target". See ?psych::omega for details.

factor_method

The factoring method to be used. Passed to the fm argument in psych::omega(). Defaults to "minres" (minimum residual). Other options include "ml" (maximum likelihood), "pa" (principal axis), etc.

poly_cor

Logical, if TRUE, polychoric correlations will be computed (by passing poly = TRUE to psych::omega()). Defaults to FALSE.

verbose

Logical, if TRUE (default), messages are printed.

n_obs

Number of observations in the original data set if x is a correlation matrix. Required to compute correct fit indices.

Value

A data frames containing the reliability coefficients. Use summary() or parameters::model_parameters() on the returned object to extract more information.

Details

item_omega() is a simple wrapper around psych::omega(), which returns the reliability coefficients. The original object returned by psych::omega() is saved as $model attribute. Further information are accessible via the summary() and parameters::model_parameters() methods. Use as.numeric() to return the reliability coefficients as (named) numeric vector. Detailed information can be found in the docs of ?psych::omega.

References

  • Bland, J. M., & Altman, D. G. (1997). Statistics notes: Cronbach's alpha. BMJ, 314(7080), 572. doi:10.1136/bmj.314.7080.572

  • Revelle, W., & Zinbarg, R. E. (2009). Coefficients alpha, beta, omega, and the glb: Comments on Sijtsma. Psychometrika, 74(1), 145–154. doi:10.1007/s11336-008-9102-z

  • Zinbarg, R.E., Revelle, W., Yovel, I., & Li. W. (2005). Cronbach's Alpha, Revelle's Beta, McDonald's Omega: Their relations with each and two alternative conceptualizations of reliability. Psychometrika. 70, 123-133

Examples

data(mtcars)
x <- mtcars[1:7]
result <- item_omega(x, n = 2)
#> Loading required namespace: GPArotation
#> 
#> Three factors are required for identification -- general factor loadings set to be equal. 
#> Proceed with caution. 
#> Think about redoing the analysis with alternative values of the 'option' setting.

result
#> # Reliability Coefficients
#> 
#> Statistic            | Coefficient
#> ----------------------------------
#> Alpha                |        0.93
#> G.6                  |        0.97
#> Omega (hierarchical) |        0.46
#> Omega (asymptotic H) |        0.47
#> Omega (total)        |        0.97

as.numeric(result)
#>                Alpha                  G.6 Omega (hierarchical) 
#>            0.9315665            0.9662008            0.4610075 
#> Omega (asymptotic H)        Omega (total) 
#>            0.4745543            0.9714535 

summary(result)
#> # Omega Statistics
#> 
#> Statistic            | Coefficient
#> ----------------------------------
#> Alpha                |        0.93
#> G.6                  |        0.97
#> Omega (hierarchical) |        0.46
#> Omega (asymptotic H) |        0.47
#> Omega (total)        |        0.97
#> 
#> # Omega Coefficients
#> 
#> Composite | Omega (total) | Omega (hierarchical) | Omega (group)
#> ----------------------------------------------------------------
#> g         |          0.97 |                 0.46 |          0.48
#> F1*       |          0.96 |                 0.40 |          0.56
#> F2*       |          1.00 |                 0.37 |          0.63
#> 
#> # Variances
#> 
#> Composite | Total (%) | General Factor (%) | Group Factor (%)
#> -------------------------------------------------------------
#> g         |     97.15 |              46.10 |            48.39
#> F1*       |     95.91 |              39.92 |            55.99
#> F2*       |     99.52 |              36.61 |            62.91

parameters::model_parameters(result)
#> # Rotated loadings from Omega (oblimin-rotation)
#> 
#> Variable |    g |      F1* |   F2* |   h2 |       u2 |   p2 | Complexity
#> ------------------------------------------------------------------------
#> mpg-     | 0.59 |     0.70 |  0.07 | 0.85 |     0.15 | 0.41 |       1.96
#> cyl      | 0.67 |     0.65 |  0.22 | 0.92 |     0.08 | 0.48 |       2.22
#> disp     | 0.61 |     0.73 |  0.07 | 0.91 |     0.09 | 0.41 |       1.96
#> hp       | 0.66 |     0.47 |  0.40 | 0.82 |     0.18 | 0.53 |       2.52
#> drat-    | 0.37 |     0.67 | -0.17 | 0.61 |     0.39 | 0.23 |       1.73
#> wt       | 0.49 |     0.79 | -0.15 | 0.90 |     0.10 | 0.27 |       1.75
#> qsec-    | 0.61 | 2.64e-03 |  0.79 | 1.00 | 4.75e-03 | 0.37 |       1.87