Метод corr аксессора rolling
Метод corr аксессора rolling применяется к объекту
Rolling, который получается после вызова rolling у
DataFrame или Series. Он вычисляет коэффициент
корреляции Пирсона между двумя скользящими окнами данных.
Первым параметром передаётся второй ряд или столбец для сравнения,
вторым параметром можно указать метод корреляции
(по умолчанию 'pearson').
Синтаксис
rolling_obj.corr(other[, method])
Пример
Давайте вычислим скользящую корреляцию между двумя столбцами
с окном в 3 элемента:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [2, 4, 6, 8, 10]
})
res = df['a'].rolling(3).corr(df['b'])
print(res)
Результат выполнения кода:
0 NaN
1 NaN
2 1.0
3 1.0
4 1.0
dtype: float64
Пример
Теперь рассчитаем скользящую корреляцию для DataFrame
с использованием метода 'kendall':
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [5, 4, 3, 2, 1]
})
res = df['a'].rolling(4).corr(df['b'], method='kendall')
print(res)
Результат выполнения кода:
0 NaN
1 NaN
2 NaN
3 -0.666667
4 -1.000000
dtype: float64
Пример
Вычислим скользящую корреляцию для нескольких пар столбцов
в DataFrame с помощью метода apply:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [2, 3, 5, 7, 11],
'c': [5, 4, 3, 2, 1]
})
res = df.rolling(3).corr()
print(res)
Результат выполнения кода:
a b c
0 a NaN NaN NaN
b NaN NaN NaN
c NaN NaN NaN
1 a NaN NaN NaN
b NaN NaN NaN
c NaN NaN NaN
2 a 1.000000 0.981981 -1.000000
b 0.981981 1.000000 -0.981981
c -1.000000 -0.981981 1.000000
3 a 1.000000 0.997054 -1.000000
b 0.997054 1.000000 -0.997054
c -1.000000 -0.997054 1.000000
4 a 1.000000 0.998538 -1.000000
b 0.998538 1.000000 -0.998538
c -1.000000 -0.998538 1.000000