psych
包中包含一个函数?alpha
,用于计算测试可靠性和一些项目统计信息。当输入原始数据(带有二进制值的data.frame以获得正确/不正确的答案)时,它会返回mean和st等。开发。对于每个项目。但是,有时它不会,并且只提供项目整体相关性。
为什么?
The docu表示只计算&s;和#34;对于数据矩阵[...]",x
是"数据。框架或数据矩阵,或协方差或相关矩阵"。但是它如何知道我是否给它原始数据或相关矩阵?
答案 0 :(得分:0)
alpha
psych
命令使用x
命令检测输入isCorrelation
是否为相关矩阵。
让我们考虑一下这个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)))
}