psych
包包含一个函数?alpha
,用于计算测试可靠性和一些项统计信息。当输入原始数据(包含正确/不正确答案的二进制值的data.frame )时,除其他外,它返回平均值和st。dev.对于每一件物品。然而,有时它不是,它只提供项目-整体相关性。
为什么会这样呢?
多古表示,均值和sd仅计算为“数据矩阵.”,而x
是“数据的data.frame或矩阵,或协方差或相关矩阵”。但是它怎么知道我是给它原始数据还是一个相关矩阵呢?
发布于 2017-04-30 10:19:26
psych
的psych
命令使用isCorrelation
命令检测输入x
是否为相关矩阵。让我们考虑一下这个教程中给出的数据集
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)))
}
https://stackoverflow.com/questions/43707036
复制