Як виконати кореляційний тест у 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 .

Додаткові ресурси

У наступних посібниках надається додаткова інформація про коефіцієнти кореляції:

Вступ до коефіцієнта кореляції Пірсона
Що вважається «сильною» кореляцією?
П’ять гіпотез кореляції Пірсона

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *