РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
620 of 687 menu

Метод corr аксессора expanding

Метод corr аксессора expanding применяется к DataFrame и вычисляет расширяющуюся корреляцию Пирсона между двумя столбцами или между столбцом и переданным рядом. Расширяющаяся корреляция показывает, как меняется коэффициент корреляции по мере добавления новых наблюдений в окно. Метод возвращает Series с коэффициентами корреляции для каждой позиции, начиная с первой, для которой можно вычислить корреляцию. Первым параметром передаётся второй столбец или Series, с которым вычисляется корреляция. Вторым параметром можно указать метод вычисления корреляции, по умолчанию используется метод Пирсона.

Синтаксис

df['a'].expanding().corr(df['b']) df['a'].expanding(min_periods=3).corr(df['b']) df['a'].expanding().corr(df['b'], method='pearson')

Пример

Давайте вычислим расширяющуюся корреляцию между двумя столбцами таблицы:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [2, 4, 6, 8, 10] }) res = df['a'].expanding().corr(df['b']) print(res)

Результат выполнения кода:

0 NaN 1 1.000000 2 1.000000 3 1.000000 4 1.000000 dtype: float64

В первой позиции корреляция не определена, так как для вычисления требуется минимум две пары значений. Вторая позиция показывает корреляцию на основе двух точек, далее корреляция пересчитывается с каждым новым значением.

Пример

Давайте изменим минимальное количество наблюдений с помощью параметра min_periods:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [2, 3, 5, 7, 11] }) res = df['a'].expanding(min_periods=3).corr(df['b']) print(res)

Результат выполнения кода:

0 NaN 1 NaN 2 0.981981 3 0.989743 4 0.991241 dtype: float64

Параметр min_periods задаёт минимальное количество наблюдений, необходимое для вычисления корреляции. До достижения этого порога возвращается NaN.

Пример

Давайте используем метод корреляции Спирмена для нелинейной зависимости:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [1, 4, 9, 16, 25] }) res = df['a'].expanding().corr(df['b'], method='spearman') print(res)

Результат выполнения кода:

0 NaN 1 1.000000 2 1.000000 3 1.000000 4 1.000000 dtype: float64

Метод Спирмена оценивает монотонную связь между переменными и хорошо работает для нелинейных зависимостей. В данном примере квадратичная зависимость даёт идеальную корреляцию Спирмена.

Пример

Давайте вычислим расширяющуюся корреляцию для всего DataFrame:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [2, 4, 6, 8, 10], 'c': [5, 4, 3, 2, 1] }) res = df.expanding().corr() print(res)

Результат выполнения кода:

a b c 0 a NaN NaN NaN b NaN NaN NaN c NaN NaN NaN 1 a 1.0 1.0 -1.0 b 1.0 1.0 -1.0 c -1.0 -1.0 1.0 2 a 1.0 1.0 -1.0 b 1.0 1.0 -1.0 c -1.0 -1.0 1.0 3 a 1.0 1.0 -1.0 b 1.0 1.0 -1.0 c -1.0 -1.0 1.0 4 a 1.0 1.0 -1.0 b 1.0 1.0 -1.0 c -1.0 -1.0 1.0 dtype: float64

При вызове corr на Expanding объекте, полученном из DataFrame, возвращается многомерный DataFrame с корреляционной матрицей для каждого шага расширения.

Смотрите также

  • метод cov,
    который вычисляет расширяющуюся ковариацию
  • метод mean,
    который вычисляет расширяющееся среднее
  • метод std,
    который вычисляет расширяющееся стандартное отклонение
  • метод apply,
    который применяет пользовательскую функцию к расширяющемуся окну
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить