Yalnızca 0 ve 1 içeren iki Boole vektörü vardır. Pearson veya Spearman korelasyonunu hesaplarsam, anlamlı mı veya makul mu?
Yalnızca 0 ve 1 içeren iki Boole vektörü vardır. Pearson veya Spearman korelasyonunu hesaplarsam, anlamlı mı veya makul mu?
Yanıtlar:
Pearson ve Spearman korelasyonu, iki ve iki ikili değişken için yaklaşık sn ve sn olduğu sürece , ve deyin . İki değişkenin dağılım grafiğini düşünerek ne anlama geldiklerine dair iyi bir niteliksel fikir edinmek kolaydır. Açıkçası, sadece dört olasılık var (böylece, görselleştirme için aynı noktaları birbirinden sallamak için titremek iyi bir fikirdir). Örneğin, iki vektörün aynı olduğu herhangi bir durumda, her birinde bazı 0'lara ve bazı 1'lere sahip olma, daha sonra tanımlaması ve korelasyonun mutlaka olması gerekir . Benzer şekilde, ve sonra korelasyonun .
İkili vektörler için özel benzerlik ölçümleri vardır, örneğin:
vb.
Ayrıntılar için buraya bakınız .
İkili veriler için Pearson korelasyon katsayısının kullanılmasını tavsiye etmem, aşağıdaki karşı örneğe bakın:
set.seed(10)
a = rbinom(n=100, size=1, prob=0.9)
b = rbinom(n=100, size=1, prob=0.9)
çoğu durumda her ikisi de bir 1 verir
table(a,b)
> table(a,b)
b
a 0 1
0 0 3
1 9 88
ama korelasyon bunu göstermiyor
cor(a, b, method="pearson")
> cor(a, b, method="pearson")
[1] -0.05530639
Jaccard endeksi gibi bir ikili benzerlik ölçüsü bununla birlikte çok daha yüksek bir ilişki olduğunu göstermektedir:
install.packages("clusteval")
library('clusteval')
cluster_similarity(a,b, similarity="jaccard", method="independence")
> cluster_similarity(a,b, similarity="jaccard", method="independence")
[1] 0.7854966
Bu neden? Buraya bakınız basit iki değişkenli regresyon
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")))
Aşağıdaki arsa (puan sayısını daha net hale getirmek için küçük bir gürültü eklendi)