pandas.core.window.Expanding.corr
-
Expanding.corr(self, other=None, pairwise=None, **kwargs)[source] -
Вычисление скользящей корреляции.
Параметры: -
other : Series, DataFrame, or ndarray, optional -
Если не указано, по умолчанию используется self.
-
pairwise : bool, default None -
Вычисляются парные комбинации столбцов в DataFrame. Если
otherне указано, по умолчанию используетсяTrue, в противном случае по умолчанию используетсяFalse. Неактуально дляSeries. - **kwargs
-
Не используется.
Возвращаемое значение: - Series или DataFrame
-
Тип возвращаемого объекта определяется вызывающим объектом вычисления скользящего среднего.
См. также
-
Series.expanding - Вызываемый объект с данными Series.
-
DataFrame.expanding - Вызываемый объект с данными DataFrame.
-
Series.corr - Эквивалентный метод для Series.
-
DataFrame.corr - Эквивалентный метод для DataFrame.
-
expanding.cov - Похожий метод для вычисления ковариации.
-
numpy.corrcoef - Вычисление корреляции Пирсона в NumPy.
Примечания
В этой функции используется определение корреляции Пирсона (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 на втором уровне.В случае пропущенных элементов будут использоваться только полные парные наблюдения.
Примеры
Нижеприведенный пример показывает вычисление скользящего среднего с размером окна четыре, соответствующего эквивалентному вызову функции с использованием
numpy.corrcoef().>>> v1 = [3, 3, 3, 5, 8] >>> v2 = [3, 4, 4, 4, 8] >>> fmt = "{0:.6f}" # limit the printed precision to 6 digits >>> # numpy returns a 2X2 array, the correlation coefficient >>> # is the number at entry [0][1] >>> print(fmt.format(np.corrcoef(v1[:-1], v2[:-1])[0][1])) 0.333333 >>> print(fmt.format(np.corrcoef(v1[1:], v2[1:])[0][1])) 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 с опцией пар.
>>> 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–2012, 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/0.25.0/reference/api/pandas.core.window.Expanding.corr.html