2017-04-30 10 views
0

psych 패키지에는 테스트 신뢰성과 일부 항목 통계를 계산하는 ?alpha 함수가 포함되어 있습니다. 원시 데이터 (정답/정답에 대한 이진 값을 가진 data.frame)를 받으면 평균과 표준을 반환합니다. dev. 각 항목에 대해 그러나 때로는 그렇지 않으며 항목 - 전체 상관 관계 만 제공합니다.psych :: alpha는 mean을 반환하지 않습니다.

왜 그럴까요?

The docu은 평균 및 sd는 "데이터 행렬 [...]"에 대해서만 계산되며 x은 "데이터. 프레임 또는 데이터 행렬 또는 공분산 또는 상관 행렬"이라고 명시되어 있습니다. 하지만 원시 데이터 또는 상관 행렬을 제공하는지 여부를 어떻게 알 수 있습니까?

답변

0

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 누구의 열 5 개 항목에 대한 응답을 나타내는 사용 data.frame이다. 올바르게은 상관 행렬 아님을 감지 (alpha 내에서 사용) 명령 isCorrelation :

mtx <- cor(df) 
isCorrelation(mtx) 
[1] TRUE 
: 우리가 df의 상관 행렬을 계산하고 isCorrelation에 전달하면

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

, 우리는 다시 정확한 답변을 얻을

isCorrelation 내부를 보면 상관 매트릭스가 data.frame이 아니므로 (따라서 matrix) 대칭 인 개체로 정의됩니다.

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

감사합니다. 즉, 원시 데이터의 분산이 적 으면 분류가 잘못 될 수 있습니다 (우연히 대칭이 될 수 있음). 이것은 또한이 결과를 막기 위해 data.frame으로 변환해야한다는 것을 의미합니다. – jakub

+0

원시 데이터가 대칭 행렬 일 가능성이 낮기 때문에 데이터 세트가 너무 작다고 상상하기 어렵습니다. 극소수의 경우 계수 알파를 찾기가 쉽지 않을 것입니다. –