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