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