import statistics # Новое в версии 3.10 r = statistics.correlation(x, y, /, *, method='linear')
x
, y
- последовательность входных данных.method='linear'
- последовательность входных данных.Новое в версии 3.10.
Функция correlation()
модуля statistics
возвращает коэффициент корреляции Пирсона для двух входных данных x
и y
. Коэффициент корреляции Пирсона r
принимает значения от -1 до +1. Он измеряет силу и направление линейной зависимости.
Изменено в Python 3.12: Добавлена поддержка коэффициента ранговой корреляции Спирмена.
Если аргумент method='ranked'
, то вычисляет коэффициент ранговой корреляции Спирмена для двух входных данных x
и y
. Данные заменяются рангами. Связи усредняются таким образом, чтобы равные значения получали одинаковый ранг. Результирующий коэффициент измеряет силу монотонной зависимости.
Коэффициент корреляции Спирмена подходит для порядковых данных или для непрерывных данных, которые не удовлетворяют требованию линейной пропорции для коэффициента корреляции Пирсона.
Обе последовательности входных данных должны быть одинаковой длины (не менее двух) и не должны быть постоянными, в противном случае возникает ошибка StatisticsError
.
Коэффициент корреляции Пирсона r
принимает значения от -1 до +1. Он измеряет силу и направление линейной связи, где +1 означает очень сильную положительную линейную связь, -1 - очень сильную отрицательную линейную связь, а 0 - отсутствие линейной связи.
Планеты: Меркурий, Венера, Земля, Марс, Юпитер, Сатурн, Уран и Нептун
# дни >>> orbital_period = [88, 225, 365, 687, 4331, 10_756, 30_687, 60_190] # миллионы километров >>> dist_from_sun = [58, 108, 150, 228, 778, 1_400, 2_900, 4_500] # Покажем, что существует совершенная монотонная зависимость >>> correlation(orbital_period, dist_from_sun, method='ranked') # 1.0 # Обратите внимание, что линейная зависимость несовершенна. >>> round(correlation(orbital_period, dist_from_sun), 4) # 0.9882 # Продемонстрируем третий закон Кеплера: существует # линейная корреляция между квадратом периода # обращения и кубом расстояния от Солнца. >>> period_squared = [p * p for p in orbital_period] >>> dist_cubed = [d * d * d for d in dist_from_sun] >>> round(correlation(period_squared, dist_cubed), 4) # 1.0