Вычисление корреляции и ковариации

В библиотеке pandas для вычисления корреляции и ковариации между столбцами или строками в DataFrame используются методы .corr() и .cov() соответственно. Давайте рассмотрим оба метода подробнее.

Ковариация

Что такое ковариация?

Ковариация показывает, как две переменные изменяются вместе. Если ковариация положительная, это указывает на то, что переменные имеют тенденцию увеличиваться или уменьшаться вместе. Если ковариация отрицательная, одна переменная имеет тенденцию увеличиваться, когда другая уменьшается.

Вычисление ковариации в pandas

Метод .cov() вычисляет ковариационную матрицу для всех пар столбцов (или строк).

Пример:

import pandas as pd

# Создадим DataFrame
data = {
    'A': [1, 2, 3, 4, 5],
    'B': [2, 4, 6, 8, 10],
    'C': [5, 4, 3, 2, 1]
}
df = pd.DataFrame(data)

# Вычисляем ковариацию
cov_matrix = df.cov()
print(cov_matrix)

Вывод:

     A     B     C
A  2.5  5.0 -2.5
B  5.0 10.0 -5.0
C -2.5 -5.0  2.5

Описание:

  • Ковариация между A и B равна 5.0, что говорит о положительной связи.

  • Ковариация между A и C равна -2.5, что указывает на обратную связь.

Корреляция

Что такое корреляция?

Корреляция измеряет силу и направление линейной связи между двумя переменными. Она нормализована и принимает значения от -1 до 1:

  • 1: идеальная положительная линейная связь.

  • -1: идеальная отрицательная линейная связь.

  • 0: отсутствие линейной связи.

Вычисление корреляции в pandas

Метод .corr() вычисляет корреляционную матрицу для всех пар столбцов (или строк). По умолчанию используется корреляция Пирсона, но доступны и другие виды корреляции, такие как Спирмена и Кендалла.

Пример:

# Вычисляем корреляцию
corr_matrix = df.corr()
print(corr_matrix)

Вывод:

     A    B    C
A  1.0  1.0 -1.0
B  1.0  1.0 -1.0
C -1.0 -1.0  1.0

Описание:

  • Корреляция между A и B равна 1.0, что указывает на идеальную положительную линейную связь.

  • Корреляция между A и C равна -1.0, что говорит об идеальной отрицательной линейной связи.

Параметры методов

  • min_periods: минимальное количество наблюдений, необходимых для вычисления ковариации или корреляции. Если не задано, по умолчанию это равняется числу строк.

  • Метод .corr() имеет параметр method, который может принимать значения:

    • 'pearson': метод Пирсона (по умолчанию).

    • 'kendall': корреляция Кендалла.

    • 'spearman': корреляция Спирмена.

Пример вычисления корреляции Спирмена:

corr_spearman = df.corr(method='spearman')
print(corr_spearman)

Заключение

Методы .corr() и .cov() в pandas предоставляют мощные инструменты для анализа линейных взаимосвязей между переменными в данных. Ковариация полезна для понимания направления связи, а корреляция — для оценки силы и направления линейной зависимости.

Last updated