Spec-Zone.ru › pandas 0.24

pandas.core.window.Expanding.corr

Expanding.corr(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 не указано, на выходе будет корреляция со значением self (например, все 1), за исключением входных значений DataFrame с pairwise, установленным в True.

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

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

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

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

Примеры

В приведенном ниже примере показано вычисление скользящего среднего с размером окна 4, соответствующее эквивалентному вызову функции с помощью 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.24.2/reference/api/pandas.core.window.Expanding.corr.html

Spec-Zone.ru

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