psych::alpha不是return的意思,sd

psych::alpha does not return mean, sd

psych 包包含一个函数 ?alpha,它可以计算测试可靠性和一些项目统计信息。当输入原始数据(一个 data.frame 的 correct/incorrect 答案的二进制值)时,它 returns,除其他外,mean 和 st。开发者对于每个项目。但是,有时它不会,只提供项目整体相关性。

这是为什么?

The docu表示mean和sd只计算"For data matrices [...]",x是"A data.frame or matrix of data, or a covariance or correlation matrix"。但它怎么知道我给它的是原始数据还是相关矩阵?

psychalpha命令使用isCorrelation命令检测输入x是否为相关矩阵。 让我们考虑这个 tutorial:

中给出的数据集
datafilename <- "http://personality-project.org/R/datasets/extraversion.items.txt" 
items <- read.table(datafilename,header=TRUE)    
df <- with(items, data.frame(q_262 ,q_1480 ,q_819 ,q_1180 ,q_1742 )) 

对象 df 是一个 data.frame,其列代表对五个项目的响应。命令 isCorrelation(在 alpha 中使用)正确检测到这不是相关矩阵:

library(psych)
isCorrelation(df)
[1] FALSE

如果我们计算df的相关矩阵并传递给isCorrelation,我们再次得到正确答案:

mtx <- cor(df)
isCorrelation(mtx)
[1] TRUE

查看 isCorrelation 内部可以看到相关矩阵被定义为一个对象,它不是 data.frame(因此是 matrix)并且是对称的:

isCorrelation <- function (x) 
{
    return(!is.data.frame(x) && isSymmetric(unname(x)))
}