当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python dask.dataframe.groupby.DataFrameGroupBy.cov用法及代码示例


用法:

DataFrameGroupBy.cov(ddof=1, split_every=None, split_out=1, std=False)

计算列的成对协方差,不包括 NA/null 值。

此文档字符串是从 pandas.core.frame.DataFrame.cov 复制而来的。

可能存在与 Dask 版本的一些不一致之处。

Groupby 协方差由以下方式完成

  1. 计算所有列的总和、计数和乘积的中间值:a b c -> a*a、a*b、b*b、b*c、c*c。

  2. 然后聚合这些值并计算最终的协方差值:cov(X, Y) = X*Y - Xbar * Ybar

std 为真时计算相关性

计算数据帧系列之间的成对协方差。返回的数据帧是DataFrame的列的covariance matrix

NA 和 null 值都会自动从计算中排除。 (请参阅下面关于缺失值偏差的注释。)可以为创建的每个值的最小观察次数设置阈值。与低于此阈值的观察结果的比较将返回为 NaN

这种方法一般用于时间序列数据的分析,以了解不同测度在时间上的关系。

参数

min_periodsint,可选(在 Dask 中不支持)

每对列所需的最小观察次数以获得有效结果。

ddof整数,默认 1

Delta 自由度。计算中使用的除数是 N - ddof ,其中 N 表示元素的数量。

返回

DataFrame

DataFrame 系列的协方差矩阵。

注意

返回 DataFrame 时间序列的协方差矩阵。协方差由N-ddof 归一化。

对于具有缺失数据的 Series 的 DataFrame(假设数据为 missing at random ),返回的协方差矩阵将是成员 Series 之间的方差和协方差的无偏估计。

但是,对于许多应用程序,此估计可能不可接受,因为估计协方差矩阵不能保证为正semi-definite。这可能导致估计具有大于一的绝对值的相关性,和/或不可逆的协方差矩阵。有关详细信息,请参阅Estimation of covariance matrices

例子

>>> 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

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.dataframe.groupby.DataFrameGroupBy.cov。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。