Є два булеві вектори, які містять лише 0 і 1. Якщо я обчислюю співвідношення Пірсона чи Спірмена, вони є осмисленими чи розумними?
Є два булеві вектори, які містять лише 0 і 1. Якщо я обчислюю співвідношення Пірсона чи Спірмена, вони є осмисленими чи розумними?
Відповіді:
Кореляція Пірсона та Спірмена визначається до тих пір, поки у вас є і деякі s для обох двох бінарних змінних, скажімо, і . Легко отримати хороше якісне уявлення про те, що вони означають, роздумуючи про розкидану ділянку двох змінних. Зрозуміло, що існує лише чотири можливості (так що тремтіння струшувати однакові точки для візуалізації є гарною ідеєю). Наприклад, у будь-якій ситуації, коли два вектори однакові, за умови, що у кожному є 0s та 1s, то за визначенням і кореляція обов'язково дорівнює . Аналогічно можливо, щоі тоді кореляція дорівнює .
Для цієї установки не існує можливості для монотонних відносин, які не є лінійними. При прийнятті рангів с і с за звичайною умовою середнього рівня, ранги є лише лінійною трансформацією вихідних с і с, а кореляція Спірмена обов'язково ідентична кореляції Пірсона. Отже, немає підстав розглядати кореляцію Спірмена окремо тут, або взагалі взагалі.
Кореляції виникають закономірно для деяких проблем, пов’язаних з і с, наприклад, при вивченні бінарних процесів у часі чи просторі. В цілому, однак, існуватимуть кращі способи мислення щодо таких даних, багато в чому залежать від головного мотиву такого дослідження. Наприклад, те, що кореляції мають багато сенсу, не означає, що лінійна регресія є хорошим способом моделювання бінарної відповіді. Якщо одна з бінарних змінних є відповіддю, то більшість статистичних людей починають з розгляду моделі logit.
Існують спеціалізовані показники подібності для бінарних векторів, такі як:
тощо.
Детальніше дивіться тут .
Я б не радив використовувати коефіцієнт кореляції Пірсона для двійкових даних, див. Наступний зустрічний приклад:
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
Бінарний показник подібності, такий як індекс Жакарда, виявляє, однак, набагато вищу асоціацію:
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")))
графік нижче (додається невеликий шум, щоб зробити кількість балів більш чіткими)