Как выполнить корреляционный тест в python (с примером)
Один из способов количественной оценки связи между двумя переменными – использовать коэффициент корреляции Пирсона , который измеряет линейную связь между двумя переменными .
Он всегда принимает значение от -1 до 1, где:
- -1 указывает на совершенно отрицательную линейную корреляцию.
- 0 указывает на отсутствие линейной корреляции
- 1 указывает на совершенно положительную линейную корреляцию.
Чтобы определить, является ли коэффициент корреляции статистически значимым, вы можете вычислить соответствующие t-показатель и p-значение.
Формула для расчета 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]
Мы можем импортировать функцию Пирсона и рассчитать коэффициент корреляции Пирсона между двумя таблицами:
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 .
Дополнительные ресурсы
Следующие учебные пособия предоставляют дополнительную информацию о коэффициентах корреляции:
Введение в коэффициент корреляции Пирсона
Что считается «сильной» корреляцией?
Пять гипотез корреляции Пирсона