Spec-Zone.ru › pandas 0.25

pandas.core.groupby.DataFrameGroupBy.cov

DataFrameGroupBy.cov

Вычисление парной ковариации столбцов, исключая значения NA/null.

Вычисление парной ковариации между рядами DataFrame. Возвращаемая таблица — это матрица ковариаций столбцов DataFrame.

Как NA, так и null-значения автоматически исключаются из расчёта. (См. примечание ниже о смещении от пропущенных значений.) Можно установить порог для минимального числа наблюдений для каждого созданного значения. Сравнения с наблюдениями ниже этого порога будут возвращаться как NaN.

Этот метод обычно используется для анализа временных рядов, чтобы понять взаимосвязь между различными показателями во времени.

Параметры:
min_periods : int, optional

Минимальное количество наблюдений, требуемых для каждой пары столбцов для получения корректного результата.

Возвращает:
DataFrame

Матрица ковариаций рядов DataFrame.

См. также

Series.cov
Вычисление ковариации с другим рядом.
core.window.EWM.cov
Экспоненциально взвешенная выборочная ковариация.
core.window.Expanding.cov
Расширяющаяся выборочная ковариация.
core.window.Rolling.cov
Ковариация по скользящему окну.

Примечания

Возвращает матрицу ковариации временных рядов DataFrame. Ковариация нормализована на N-1.

Для DataFrame с рядами, содержащими пропущенные данные (предполагая, что данные случайно пропущены), возвращаемая матрица ковариаций будет несмещённым приближением дисперсии и ковариации между рядами-членами.

Однако для многих приложений это приближение может быть неприемлемым, потому что матрица ковариаций, полученная при таком приближении, не гарантирует положительной полуопределённости. Это может привести к тому, что оценочные корреляции будут иметь абсолютные значения, превышающие единицу, и/или к тому, что матрица ковариаций не будет обратимой. См. Оценивание матриц ковариации для получения дополнительной информации.

Примеры

>>> df = pd.DataFrame([(1, 2), (0, 3), (2, 0), (1, 1)],
...                   columns=['dogs', 'cats'])
>>> df.cov()
          dogs      cats
dogs  0.666667 -1.000000
cats -1.000000  1.666667
>>> np.random.seed(42)
>>> df = pd.DataFrame(np.random.randn(1000, 5),
...                   columns=['a', 'b', 'c', 'd', 'e'])
>>> df.cov()
          a         b         c         d         e
a  0.998438 -0.020161  0.059277 -0.008943  0.014144
b -0.020161  1.059352 -0.008543 -0.024738  0.009826
c  0.059277 -0.008543  1.010670 -0.001486 -0.000271
d -0.008943 -0.024738 -0.001486  0.921297 -0.013692
e  0.014144  0.009826 -0.000271 -0.013692  0.977795

Минимальное количество периодов

Этот метод также поддерживает необязательный min_periods ключевой параметр, который определяет минимальное количество наблюдений без NA для каждой пары столбцов, необходимое для получения корректного результата:

>>> np.random.seed(42)
>>> df = pd.DataFrame(np.random.randn(20, 3),
...                   columns=['a', 'b', 'c'])
>>> df.loc[df.index[:5], 'a'] = np.nan
>>> df.loc[df.index[5:10], 'b'] = np.nan
>>> df.cov(min_periods=12)
          a         b         c
a  0.316741       NaN -0.150812
b       NaN  1.248003  0.191417
c -0.150812  0.191417  0.895202

© 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.groupby.DataFrameGroupBy.cov.html

Spec-Zone.ru

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