Spec-Zone.ru › pandas 2

pandas.core.window.rolling.Rolling.corr

Rolling.corr(other=None, pairwise=None, ddof=1, numeric_only=False)[source]

Вычисление скользящей корреляции.

Параметры:
other:Series или DataFrame, необязательно

Если не указано, по умолчанию приравнивается к self и генерирует парные результаты.

pairwise:bool, по умолчанию None

Если False, то используются только соответствующие столбцы между self и other, и вывод будет DataFrame. Если True, то будут рассчитаны все парные комбинации, и вывод будет DataFrame с MultiIndex в случае входных DataFrame. В случае отсутствующих элементов, будут использованы только полные парные наблюдения.

ddof:int, по умолчанию 1

Delta Degrees of Freedom. Делитель, используемый в расчётах, равен N - ddof, где N представляет количество элементов.

numeric_only:bool, по умолчанию False

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

Введено в версии 1.5.0.

Возвращаемое значение:
Series или DataFrame

Тип возвращаемого значения такой же, как у исходного объекта, с типом данных np.float64.

См. также

cov

Аналогичный метод для вычисления ковариации.

numpy.corrcoef

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

pandas.Series.rolling

Вызов скользящего окна со значениями Series.

pandas.DataFrame.rolling

Вызов скользящего окна с DataFrames.

pandas.Series.corr

Агрегирование корреляции для Series.

pandas.DataFrame.corr

Агрегирование корреляции для DataFrame.

Примечания

Эта функция использует определение корреляции Пирсона (https://en.wikipedia.org/wiki/Pearson_correlation_coefficient).

Когда other не указан, вывод будет самокорреляцией (например, все 1), за исключением входных DataFrame с pairwise, установленным в True.

Функция вернёт NaN для корреляций последовательностей с одинаковыми значениями; это результат ошибки деления 0/0.

Когда pairwise установлен в False, используются только соответствующие столбцы между self и other.

Когда pairwise установлен в True, вывод будет DataFrame с MultiIndex, исходный индекс на первом уровне, и столбцы DataFrame other на втором уровне.

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

Примеры

Нижеприведённый пример демонстрирует вычисление скользящего окна размером четыре, соответствующее эквивалентному вызову функции с использованием numpy.corrcoef().

>>> v1 = [3, 3, 3, 5, 8]
>>> v2 = [3, 4, 4, 4, 8]
>>> np.corrcoef(v1[:-1], v2[:-1])
array([[1.        , 0.33333333],
       [0.33333333, 1.        ]])
>>> np.corrcoef(v1[1:], v2[1:])
array([[1.       , 0.9169493],
       [0.9169493, 1.       ]])
>>> s1 = pd.Series(v1)
>>> s2 = pd.Series(v2)
>>> s1.rolling(4).corr(s2)
0         NaN
1         NaN
2         NaN
3    0.333333
4    0.916949
dtype: float64

Нижеприведённый пример демонстрирует аналогичное вычисление скользящего окна для DataFrame с использованием опции pairwise.

>>> matrix = np.array([[51., 35.],
...                    [49., 30.],
...                    [47., 32.],
...                    [46., 31.],
...                    [50., 36.]])
>>> np.corrcoef(matrix[:-1, 0], matrix[:-1, 1])
array([[1.       , 0.6263001],
       [0.6263001, 1.       ]])
>>> np.corrcoef(matrix[1:, 0], matrix[1:, 1])
array([[1.        , 0.55536811],
       [0.55536811, 1.        ]])
>>> df = pd.DataFrame(matrix, columns=['X', 'Y'])
>>> df
      X     Y
0  51.0  35.0
1  49.0  30.0
2  47.0  32.0
3  46.0  31.0
4  50.0  36.0
>>> df.rolling(4).corr(pairwise=True)
            X         Y
0 X       NaN       NaN
  Y       NaN       NaN
1 X       NaN       NaN
  Y       NaN       NaN
2 X       NaN       NaN
  Y       NaN       NaN
3 X  1.000000  0.626300
  Y  0.626300  1.000000
4 X  1.000000  0.555368
  Y  0.555368  1.000000

© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.core.window.rolling.Rolling.corr.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API