在 R psych 中访问 c​​ronbach's alpha 的一般置信边界

Access general confidence boundaries of cronbach's alpha in R psych

我有一个使用 psych::alpha 的数据框。在输出中,一般 cronbach 的 alpha 值周围有一般置信度边界。我想访问它们,但是当我将输出另存为变量时它们不会出现在结果中。在 documentation 中,它们被称为 itemboot.ci 但在此处的 alpha object.enter 代码中不存在

library(psych)
set.seed(1)
foo <- data.frame(X = rnorm(25), Y = rnorm(25), Z = rnorm(25))
bar <- alpha(foo)

alpha(foo)bar 都给出了这个输出:

Reliability analysis   
Call: alpha(x = foo)

  raw_alpha std.alpha G6(smc) average_r      S/N  ase mean   sd median_r
     0.023  -0.00091  0.0049    -3e-04 -0.00091 0.32 0.12 0.54    0.022

 lower alpha upper     95% confidence boundaries
-0.61 0.02 0.66 

 Reliability if an item is dropped:
  raw_alpha std.alpha G6(smc) average_r    S/N alpha se var.r  med.r
X     0.039     0.043   0.022     0.022  0.045     0.35    NA  0.022
Y     0.093     0.094   0.049     0.049  0.103     0.36    NA  0.049
Z    -0.148    -0.155  -0.072    -0.072 -0.134     0.44    NA -0.072

 Item statistics 
   n raw.r std.r r.cor  r.drop  mean   sd
X 25  0.58  0.56 -0.12  0.0027 0.169 0.95
Y 25  0.41  0.55 -0.36 -0.0296 0.032 0.71
Z 25  0.72  0.62  0.61  0.0543 0.165 1.11

在哪里

lower alpha upper     95% confidence boundaries
-0.61 0.02 0.66

是我想要访问并保存为变量的值。 bar$itemboot.ci 即使在 documentation 中提到它,也会给出 NULL 甚至循环 a 也不会显示置信边界:

for(i in 1:length(bar)){
    print(bar[i])
}

给出:

$total
  raw_alpha    std.alpha     G6(smc)    average_r           S/N      ase      mean       sd   median_r
 0.02297052 -0.000914273 0.004926574 -0.000304572 -0.0009134379 0.323334 0.1221019 0.544037 0.02180445

$alpha.drop
    raw_alpha   std.alpha     G6(smc)   average_r         S/N  alpha se var.r       med.r
X  0.03880703  0.04267832  0.02180445  0.02180445  0.04458096 0.3488970    NA  0.02180445
Y  0.09264777  0.09365915  0.04913033  0.04913033  0.10333767 0.3588215    NA  0.04913033
Z -0.14776806 -0.15482062 -0.07184849 -0.07184849 -0.13406464 0.4395377    NA -0.07184849

$item.stats
   n     raw.r     std.r      r.cor       r.drop       mean        sd
X 25 0.5843116 0.5644059 -0.1232943  0.002682803 0.16866521 0.9501080
Y 25 0.4056801 0.5486244 -0.3639981 -0.029593160 0.03223135 0.7062806
Z 25 0.7151930 0.6184929  0.6088273  0.054340331 0.16540907 1.1051952

$response.freq
NULL

$keys
X Y Z 
1 1 1 

$scores
 [1] -0.094825557 -0.194726192 -0.655087102 -0.004077450  0.726824345  0.839537022  0.005806616  0.027287230  0.363898646
[10] -0.605834183  1.166134789 -0.014562240  0.003061795 -0.362224119  0.381611153 -0.006888302 -0.691503524  1.035451483
[19]  0.510379244  0.692585766  0.228997248  0.145590611  0.484608087 -1.011931847  0.082433358

$nvar
[1] 3

$boot.ci
NULL

$boot
NULL

$Unidim
$Unidim$Unidim
[1] -0.0006057996


$var.r
[1] 0.004025575

$Fit
$Fit$Fit.off
[1] 0.9973251


$call
alpha(x = foo)

$title
NULL

当您通过使用 print 或将其发送到 R 控制台打印对象时,可能 会发生一些额外的处理。对象通常有自己的 print,在这种情况下,您可以看到 print.psych 方法(在幕后调用,而不是在任何 psych 包对象上调用 print)正在对您的对象执行以下操作属于(子)class alpha:

  }, alpha = {
    cat("\nReliability analysis ", x$title, " \n")
    cat("Call: ")
    print(x$call)
    cat("\n ")
    print(x$total, digits = digits)
    if (!is.null(x$total$ase)) {
      cat("\n lower alpha upper     95% confidence boundaries\n")
      cat(round(c(x$total$raw_alpha - 1.96 * x$total$ase, 
        x$total$raw_alpha, x$total$raw_alpha + 1.96 * 
          x$total$ase), digits = digits), "\n")
    }
    if (!is.null(x$boot.ci)) {
      cat("\n lower median upper bootstrapped confidence intervals\n", 
        round(x$boot.ci, digits = digits))
    }

如果您对 bar 输出变量做同样的事情;你得到这些值:

library(psych)
set.seed(1)

foo <- data.frame(bar = rnorm(25), Y = rnorm(25), Z = rnorm(25))

bar <- alpha(foo)


cat(round(c(bar$total$raw_alpha - 1.96 * bar$total$ase, 
            bar$total$raw_alpha, bar$total$raw_alpha + 1.96 * 
              bar$total$ase), digits = 2), "\n")
#> -0.61 0.02 0.66

因此,总而言之,这些值是通过“手动”计算置信区间获得的,其中系数估计 raw_alpha 加上或减去 95% CI (1.96) 乘以标准误差 (ase).