在 R 中使用 Psych 库运行 Omega

Running Omega with Psych library in R

当我在构造上运行 alpha 时,我在构造上有五个项目,我得到以下结果,没有任何错误

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 psych::alpha(construct,
         na.rm = TRUE,
         title = 'myscale',
         n.iter = 1000)

Reliability analysis  myscale  
Call: psych::alpha(x = construct, title ="myscale", na.rm = TRUE,
n.iter = 1000)

  raw_alpha std.alpha G6(smc) average_r S/N   ase mean   sd
  0.81      0.81    0.78      0.46 4.3 0.013  2.6 0.89

 lower alpha upper     95% confidence boundaries
0.78 0.81 0.84

 lower median upper bootstrapped confidence intervals
 0.77 0.81 0.84

我一直在看论文From Alpha to omega: A practical solution to the pervasive problem of internal consistency estimation链接

建议使用下面的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
MBESS::ci.reliability(construct, interval.type="bca", B=1000, type ="omega")

$est
[1] 0.8107376

$se
[1] 0.01651936

$ci.lower
[1] 0.7764029

$ci.upper
[1] 0.839944

$conf.level
[1] 0.95

$type
[1]"omega"

$interval.type
[1]"bca bootstrap"

我一直在尝试使用 psych 包在我的样本集上运行 omega,以在我??的分析中保持一致

1
2
3
psych::omega(m = construct,
      nfactors = 1, fm ="pa", n.iter = 1000, p = 0.05,
      title ="Omega", plot = FALSE, n.obs = 506)

我收到两条错误消息

In factor.scores, the correlation matrix is singular, an approximation is used
Omega_h for 1 factor is not meaningful, just omega_t

出现此警告是因为 Omega_h 的列数少了两个。上一个关于 SO 的问题在某种程度上回答了这个问题
麦当劳 omega:R

中的警告

我遇到的错误如下

Error in fac(r = r, nfactors = nfactors, n.obs = n.obs, rotate = rotate, :
I am sorry: missing values (NAs) in the correlation matrix do not allow me to continue.
Please drop those variables and try again.
In addition: There were 50 or more warnings (use warnings() to see the first 50)

没有缺失值,所以我不确定第二个错误

我的构造的细节是

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    Q1                  Q2          Q3    
 Min.   :0.000   Min.   :0.000   Min.   :0.000  
 1st Qu.:2.000   1st Qu.:2.000   1st Qu.:2.000  
 Median :3.000   Median :2.000   Median :3.000  
 Mean   :2.597   Mean   :2.393   Mean   :3.227  
 3rd Qu.:3.000   3rd Qu.:3.000   3rd Qu.:4.000  
 Max.   :6.000   Max.   :6.000   Max.   :6.000  

Q4              Q5  
 Min.   :0.00   Min.   :0.000  
 1st Qu.:1.00   1st Qu.:2.000  
 Median :2.00   Median :2.000  
 Mean   :2.17   Mean   :2.445  
 3rd Qu.:3.00   3rd Qu.:3.000  
 Max.   :6.00   Max.   :6.000

编辑

创建的数据具有相同的属性 - 100 个条目(Alpha 大约为 0.56),但它在 omega

上生成相同的错误

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
structure(list(Q1 = c(4, 5, 3, 5, 4, 5, 3, 5, 5, 5, 6,
3, 5, 4, 6, 5, 5, 6, 7, 4, 5, 5, 3, 4, 4, 5, 4, 3, 5, 4, 5, 5,
6, 6, 3, 6, 3, 4, 4, 4, 6, 5, 3, 2, 6, 6, 4, 5, 4, 3, 6, 4, 4,
5, 6, 2, 4, 3, 4, 6, 4, 6, 4, 5, 5, 6, 4, 6, 5, 5, 4, 5, 6, 6,
2, 5, 4, 3, 4, 4, 4, 6, 3, 3, 5, 4, 4, 4, 5, 5, 5, 3, 6, 6, 6,
6, 5, 4, 3, 5), Q2 = c(7, 4, 4, 4, 4, 6, 6, 6, 7, 6, 5,
6, 5, 4, 5, 6, 6, 6, 7, 5, 4, 4, 6, 6, 4, 4, 6, 2, 6, 5, 4, 6,
4, 6, 6, 6, 5, 4, 4, 4, 4, 3, 3, 4, 4, 4, 4, 6, 2, 6, 6, 5, 4,
6, 6, 4, 4, 7, 6, 5, 5, 5, 5, 6, 5, 5, 4, 5, 5, 5, 4, 6, 7, 5,
5, 5, 6, 5, 6, 5, 6, 7, 2, 6, 5, 7, 3, 5, 5, 3, 3, 3, 7, 4, 5,
6, 6, 6, 5, 7), Q3 = c(5, 4, 5, 6, 4, 4, 5, 4, 2, 6, 5,
5, 5, 5, 7, 5, 5, 6, 7, 6, 3, 6, 6, 6, 5, 6, 6, 5, 5, 4, 5, 5,
6, 6, 5, 6, 5, 5, 4, 4, 6, 4, 4, 4, 4, 4, 4, 5, 5, 4, 5, 5, 4,
3, 5, 4, 5, 6, 6, 6, 4, 5, 5, 5, 6, 4, 5, 5, 7, 4, 5, 6, 6, 5,
5, 3, 3, 5, 4, 6, 5, 5, 1, 3, 5, 3, 2, 5, 4, 6, 6, 6, 6, 4, 6,
3, 6, 6, 6, 5), Q4 = c(6, 6, 4, 7, 4, 6, 7, 6, 7, 6, 6,
6, 5, 7, 7, 6, 6, 5, 7, 7, 6, 6, 7, 7, 6, 6, 6, 5, 6, 7, 5, 6,
7, 5, 4, 6, 4, 3, 6, 4, 6, 6, 6, 3, 5, 7, 5, 6, 4, 6, 7, 6, 7,
4, 6, 3, 5, 7, 5, 4, 6, 6, 4, 6, 5, 5, 5, 5, 7, 7, 7, 6, 6, 6,
5, 6, 6, 4, 5, 7, 6, 7, 3, 5, 6, 5, 6, 5, 5, 7, 7, 6, 6, 2, 7,
6, 6, 7, 7, 5)), .Names = c("Q1","Q2","Q3",
"Q4"), row.names = c(NA, 100L), class ="data.frame")

谁能看到我摔倒在哪里?

感谢您的宝贵时间


所以我尝试了这个:

1
psych::omega(m = construct)

它使用了这个结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Omega
Call: psych::omega(m = construct)
Alpha:                 0.56
G.6:                   0.49
Omega Hierarchical:    0.53
Omega H asymptotic:    0.89
Omega Total            0.6

Schmid Leiman Factor loadings greater than  0.2
     g   F1*   F2*   F3*   h2   u2   p2
Q1 0.41  0.30             0.26 0.74 0.65
Q2 0.37  0.25             0.20 0.80 0.67
Q3 0.50        0.25       0.31 0.69 0.80
Q4 0.64              0.23 0.46 0.54 0.89

With eigenvalues of:
    g  F1*  F2*  F3*
 0.95 0.15 0.06 0.05

 general/max  6.35   max/min =   2.83
mean percent general =  0.75    with sd =  0.11 and cv of  0.15
Explained Common Variance of the general factor =  0.78

The degrees of freedom are -3  and the fit is  0
The number of observations was  100  with Chi Square =  0  with prob <  NA
The root mean square of the residuals is  0
The df corrected root mean square of the residuals is  NA

Compare this with the adequacy of just a general factor and no group factors
The degrees of freedom for just the general factor are 2  and the fit is  0.01
The number of observations was  100  with Chi Square =  0.62  with prob <  0.73
The root mean square of the residuals is  0.03
The df corrected root mean square of the residuals is  0.05

RMSEA index =  0  and the 90 % confidence intervals are  NA 0.14
BIC =  -8.59

Measures of factor score adequacy            
                                                 g   F1*   F2*   F3*
Correlation of scores with factors            0.75  0.37  0.27  0.24
Multiple R square of scores with factors      0.57  0.14  0.07  0.06
Minimum correlation of factor score estimates 0.14 -0.72 -0.86 -0.88

 Total, General and Subset omega for each subset
                                                 g  F1*  F2*  F3*
Omega total for total scores and subscales    0.60 0.37 0.31 0.46
Omega general for total scores and subscales  0.53 0.25 0.25 0.41
Omega group for total scores and subscales    0.06 0.12 0.06 0.05

我检查了默认值以及 nfactors = 3n.iter = 1。然后我慢慢增加n.iter,并减少n.factor,它一直工作直到n.iter = 7,并保持nfactors为3

1
psych::omega(m = construct, n.iter = 7, p = 0.05, nfactors = 3)

使用完整的数据集,您应该能够获得更高的 n.iter