的alpha
命令檢測輸入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)))
}
謝謝,有道理。這也意味着原始數據中較少的差異可能導致不正確的分類(因爲它可能碰巧偶然對稱)。這也意味着必須將其轉換爲data.frame以防止這種結果。 – jakub
很難想象一個數據集太小,以至於您會面臨原始數據是對稱矩陣的可能性。如果你這麼少的情況下,你可能不應該打擾找到係數α。 –