Spec-Zone.ru › pandas 1

pandas.core.window.rolling.Rolling.corr

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

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

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

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

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

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

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

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

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

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

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

**kwargs

Для совместимости с NumPy и не повлияет на результат.

Устарело начиная с версии 1.5.0.

Возвращает
Series или DataFrame

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

См. также

cov

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

numpy.corrcoef

Расчет корреляции Пирсона NumPy.

pandas.Series.rolling

Вызов rolling для данных Series.

pandas.DataFrame.rolling

Вызов rolling для DataFrame.

pandas.Series.corr

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

pandas.DataFrame.corr

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

Примечания

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

Когда other не указано, вывод будет корреляцией self (например, все 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]
>>> # numpy returns a 2X2 array, the correlation coefficient
>>> # is the number at entry [0][1]
>>> print(f"{np.corrcoef(v1[:-1], v2[:-1])[0][1]:.6f}")
0.333333
>>> print(f"{np.corrcoef(v1[1:], v2[1:])[0][1]:.6f}")
0.916949
>>> 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.]])
>>> print(np.corrcoef(matrix[:-1,0], matrix[:-1,1]).round(7))
[[1.         0.6263001]
 [0.6263001  1.       ]]
>>> print(np.corrcoef(matrix[1:,0], matrix[1:,1]).round(7))
[[1.         0.5553681]
 [0.5553681  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/1.5.0/reference/api/pandas.core.window.rolling.Rolling.corr.html

Spec-Zone.ru

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