두 부울 벡터 사이의 Pearson 또는 Spearman 상관 관계를 계산하는 것이 의미가 있습니까?


42

0과 1 만 포함하는 두 개의 부울 벡터가 있습니다. Pearson 또는 Spearman 상관 관계를 계산하면 의미가 있거나 합리적입니까?


2
두 변수가 이분법이면 Pearson = Spearman = Kendall 's tau입니다. 그렇습니다. 진정으로 이진 (부울) 데이터를 사용하면 데이터를 중심으로하지 않고 "Pearson"을 계산하는 것이 코사인입니다.
ttnphns

1
... and = Phi (표준화 된 Chi-square)는 규모에서 우발 사태 테이블로 우리를 안내합니다.
ttnphns

답변:


34

Pearson과 Spearman 상관 관계는 yx 와 같은 두 이진 변수 모두에 대해 01 이있는 한 정의됩니다 . 두 변수의 산포도를 생각하면 의미가 무엇인지에 대한 질적 아이디어를 쉽게 얻을 수 있습니다. 분명히 네 가지 가능성 ( 0 , 0 ) , ( 0 , 1 ) , ( 1 , 0 ) , ( 1 , 1 )yx(0,0),(0,1),(1,0),(1,1)(시각화를 위해 동일한 지점을 흔들어 지 터링하는 것이 좋습니다.) 예를 들어, 두 벡터가 동일한 모든 상황에서 각각 0과 1을 각각 갖는 경우 y=x 로 정의 되며 상관 관계는 반드시 1 입니다. 마찬가지로 y=1x 이고 상관 관계는 1 있습니다.

0101

01


1
이 상황에서 Pearson 또는 Spearman 상관 계수가이 두 이진 벡터에 대해 좋은 유사성 메트릭이 아닙니까?
Zhilong Jia 2016

그렇습니다. 유사성을 측정하지 않으며 벡터 중 하나에 대해 모든 0 또는 1에 대해 정의되지 않았습니다.
Nick Cox

두 개의 동일하거나 '반대'벡터의 경우는 분명하지 않습니다. x = c (1,1,1,1,1) 및 y = (0,0,0,0,0)이면 y = 1-x이고 정의에 따라 반드시 해당되어야한다고 말하는 것처럼 들립니다. -1의 상관 관계를 암시합니다. 마찬가지로 y = x-1은 +1의 상관 관계를 암시합니다. 산점도에는 1 점 (5 회 반복) 만 있으므로 직선을 통해 그릴 수 있습니다. 이 경우 상관 관계가 정의되지 않은 것 같습니다. 당신이 무슨 뜻인지 이해 못해서 미안 @NickCox
PM.

2
아니; 첫 번째 문장에서 상관 관계를 정의하려면 0과 1을 혼합해야한다는 것을 지적하지는 않습니다. 그렇지 않으면 두 변수 중 하나의 SD가 0이면 상관 관계가 정의되지 않습니다. 그러나 나는 그것을 두 번 언급하기 위해 대답을 편집했습니다.
Nick Cox

15

이진 벡터에 대해 다음과 같은 특수한 유사성 메트릭이 있습니다.

  • 자카드-니덤
  • 주사위
  • 성탄절
  • 러셀 라오
  • 소칼 미케 너
  • 로저스-타니 모토
  • 쿨진 스키

기타

자세한 내용은 여기를 참조 하십시오 .


5
확실하고 포괄적 인 참조가 많이 있습니다. 저자의 이름을 정확하게 잡는 수준에서도 Kulczyński와 Tanimoto에 주목하십시오. 예를 들어 Hubálek, Z. 1982를 참조하십시오. 이진 (현재 부재) 데이터를 기반으로 한 연관 및 유사 계수 : 평가. 생물학적 검토 57 : 669-689.
닉 콕스

5
'타니 모토'라는 철자가 틀렸지 만 '쿨진 스키'는 의도적으로 단순화되었습니다. 의심의 여지없이 귀하의 참조는 더 신뢰할 만하지 만 모든 사람이 접근 할 수는 없습니다.
Digio

0

이진 데이터에 Pearson의 상관 계수를 사용하지 않는 것이 좋습니다. 다음 카운터 예를 참조하십시오.

set.seed(10) 
a = rbinom(n=100, size=1, prob=0.9) 
b = rbinom(n=100, size=1, prob=0.9)

대부분의 경우 둘 다 1

table(a,b)

> table(a,b)
   b
a    0  1
  0  0  3
  1  9 88

그러나 상관 관계는 이것을 보여주지 않습니다.

cor(a, b, method="pearson")

> cor(a, b, method="pearson")
[1] -0.05530639

그러나 Jaccard 인덱스 와 같은 이진 유사성 측정 값 은 훨씬 더 높은 연관성을 보여줍니다.

install.packages("clusteval")
library('clusteval')
cluster_similarity(a,b, similarity="jaccard", method="independence")

> cluster_similarity(a,b, similarity="jaccard", method="independence")
[1] 0.7854966

왜 이런거야? 간단한 이변 량 회귀 분석을 참조하십시오.

plot(jitter(a, factor = .25), jitter(b, factor = .25), xlab="a", ylab="b", pch=15, col="blue", ylim=c(-0.05,1.05), xlim=c(-0.05,1.05))
abline(lm(a~b), lwd=2, col="blue")
text(.5,.9,expression(paste(rho, " = -0.055")))

아래 도표 (점수를 더 명확하게하기 위해 작은 소음이 추가됨) 이변 량 회귀선

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.