Метод corr аксессора ewm
Метод corr аксессора ewm применяется к Series
и вычисляет экспоненциально взвешенную корреляцию Пирсона
между текущим рядом и другим рядом. Метод возвращает
Series с теми же индексами, что и исходный ряд,
содержащий скользящие значения корреляции.
Синтаксис
series.ewm(com=None, span=None, halflife=None, alpha=None, min_periods=0, adjust=True, ignore_na=False).corr(other, pairwise=None)
Параметры метода corr:
-
other- второй ряд (Series) для расчёта корреляции; -
pairwise- логический параметр, определяющий, рассчитывать ли попарную корреляцию для нескольких колонок (по умолчаниюNone).
Основные параметры экспоненциального взвешивания задаются
в аксессоре ewm перед вызовом corr.
Пример
Рассчитаем экспоненциально взвешенную корреляцию между двумя рядами:
import pandas as pd
ser1 = pd.Series([1, 2, 3, 4, 5])
ser2 = pd.Series([2, 4, 6, 8, 10])
res = ser1.ewm(span=3).corr(ser2)
print(res)
Результат выполнения кода:
0 NaN
1 1.000000
2 1.000000
3 1.000000
4 1.000000
dtype: float64
Корреляция равна 1.0, так как ряды идеально связаны.
Пример
Рассмотрим случай с отрицательной корреляцией:
import pandas as pd
ser1 = pd.Series([10, 20, 30, 40, 50])
ser2 = pd.Series([50, 40, 30, 20, 10])
res = ser1.ewm(span=3).corr(ser2)
print(res)
Результат выполнения кода:
0 NaN
1 -1.000000
2 -1.000000
3 -1.000000
4 -1.000000
dtype: float64
Значения корреляции равны -1.0, что указывает на полную
отрицательную зависимость.
Пример
Используем параметр min_periods для контроля минимального
количества наблюдений:
import pandas as pd
ser1 = pd.Series([1, 2, 3, 4, 5])
ser2 = pd.Series([5, 4, 3, 2, 1])
res = ser1.ewm(span=3, min_periods=3).corr(ser2)
print(res)
Результат выполнения кода:
0 NaN
1 NaN
2 -1.000000
3 -1.000000
4 -1.000000
dtype: float64
Первые два значения отсутствуют, так как для их расчёта
не хватает наблюдений (требуется 3).