Як виконати кореляційний тест у python (з прикладом)
Одним із способів кількісного визначення зв’язку між двома змінними є використання коефіцієнта кореляції Пірсона , який вимірює лінійний зв’язок між двома змінними .
Він завжди приймає значення від -1 до 1, де:
- -1 вказує на абсолютно негативну лінійну кореляцію
- 0 означає відсутність лінійної кореляції
- 1 вказує на абсолютно позитивну лінійну кореляцію
Щоб визначити, чи є коефіцієнт кореляції статистично значущим, ви можете обчислити відповідний t-показник і p-значення.
Формула для розрахунку t-показника коефіцієнта кореляції (r):
t = r * √ n-2 / √ 1-r 2
Тоді значення p обчислюється як відповідне двостороннє значення p для t-розподілу з n-2 ступенями свободи.
Приклад: кореляційний тест у Python
Щоб визначити, чи є коефіцієнт кореляції між двома змінними статистично значущим, ви можете виконати кореляційний тест у Python за допомогою функції pearsonr із бібліотеки SciPy .
Ця функція повертає коефіцієнт кореляції між двома змінними, а також двобічне значення p.
Наприклад, припустімо, що ми маємо такі дві таблиці в Python:
#create two arrays
x = [3, 4, 4, 5, 7, 8, 10, 12, 13, 15]
y = [2, 4, 4, 5, 4, 7, 8, 19, 14, 10]
Ми можемо імпортувати функцію pearsonr і обчислити коефіцієнт кореляції Пірсона між двома таблицями:
from scipy. stats . stats import pearsonr #calculation correlation coefficient and p-value between x and y pearsonr(x, y) (0.8076177030748631, 0.004717255828132089)
Ось як інтерпретувати результат:
- Коефіцієнт кореляції Пірсона (r): 0,8076
- Двостороннє p-значення: 0,0047
Коефіцієнт кореляції близький до 1, це говорить нам про те, що існує сильний позитивний зв’язок між двома змінними.
А оскільки відповідне значення p менше 0,05, ми робимо висновок, що існує статистично значущий зв’язок між двома змінними.
Зверніть увагу, що ми також можемо отримати індивідуальний коефіцієнт кореляції та p-значення з функції Пірсона :
#extract correlation coefficient (rounded to 4 decimal places) r = round(pearsonr(x, y)[ 0 ], 4) print (r) 0.8076 #extract p-value (rounded to 4 decimal places) p = round(pearsonr(x, y)[ 1 ], 4) print (p) 0.0047
Ці значення трохи легше читати порівняно з результатом оригінальної функції Pearsonr .
Додаткові ресурси
У наступних посібниках надається додаткова інформація про коефіцієнти кореляції:
Вступ до коефіцієнта кореляції Пірсона
Що вважається «сильною» кореляцією?
П’ять гіпотез кореляції Пірсона