用法:
dask.array.cov(m, y=None, rowvar=1, bias=0, ddof=None)
给定数据和权重,估计协方差矩阵。
此文档字符串是从 numpy.cov 复制的。
可能存在与 Dask 版本的一些不一致之处。
协方差表示两个变量一起变化的水平。如果我们检查 N 维样本 ,那么协方差矩阵元素 是 和 的协方差。元素 是 的方差。
有关算法的概述,请参阅注释。
- m:array_like
包含多个变量和观察值的一维或二维数组。
m
的每一行代表一个变量,每一列都是对所有这些变量的一次观察。另请参阅下面的rowvar
。- y:数组,可选
一组额外的变量和观察结果。
y
的形式与m
的形式相同。- rowvar:布尔型,可选
如果
rowvar
为 True(默认值),则每一行代表一个变量,列中包含观察值。否则,关系被转置:每列代表一个变量,而行包含观察值。- bias:布尔型,可选
默认归一化 (False) 为
(N - 1)
,其中N
是给定的观察数(无偏估计)。如果bias
为 True,则通过N
进行标准化。在 numpy 版本 >= 1.5 中,可以使用关键字ddof
覆盖这些值。- ddof:整数,可选
如果不是
None
,则bias
隐含的默认值将被覆盖。请注意,ddof=1
将返回无偏估计,即使同时指定了fweights
和aweights
,并且ddof=0
将返回简单平均值。有关详细信息,请参阅注释。默认值为None
。- fweights:数组,int,可选(Dask 不支持)
整数频率权重的一维数组;每个观察向量应重复的次数。
- aweights:数组,可选(在 Dask 中不支持)
观察向量权重的一维数组。对于考虑为“important” 的观察,这些相对权重通常较大,而对于考虑较少的“important” 的观察,这些相对权重较小。如果
ddof=0
,权重数组可用于将概率分配给观察向量。- dtype:数据类型,可选(Dask 中不支持)
结果的数据类型。默认情况下,返回数据类型将至少具有
numpy.float64
精度。
- out:ndarray
变量的协方差矩阵。
参数:
返回:
注意:
假设观测值在观测数组
m
的列中,为简洁起见,设f = fweights
和a = aweights
。计算加权协方差的步骤如下:>>> m = np.arange(10, dtype=np.float64) >>> f = np.arange(10) * 2 >>> a = np.arange(10) ** 2. >>> ddof = 1 >>> w = f * a >>> v1 = np.sum(w) >>> v2 = np.sum(w * a) >>> m -= np.sum(m * w, axis=None, keepdims=True) / v1 >>> cov = np.dot(m * w, m.T) * v1 / (v1**2 - ddof * v2)
请注意,当
a == 1
时,归一化因子v1 / (v1**2 - ddof * v2)
应该会变为1 / (np.sum(f) - ddof)
。例子:
考虑两个变量 和 ,它们完全相关,但方向相反:
>>> x = np.array([[0, 2], [1, 1], [2, 0]]).T >>> x array([[0, 1, 2], [2, 1, 0]])
注意 如何增加而 减少。协方差矩阵清楚地表明了这一点:
>>> np.cov(x) array([[ 1., -1.], [-1., 1.]])
请注意,显示 和 之间相关性的元素 是负数。
此外,请注意
x
和y
是如何组合的:>>> x = [-2.1, -1, 4.3] >>> y = [3, 1.1, 0.12] >>> X = np.stack((x, y), axis=0) >>> np.cov(X) array([[11.71 , -4.286 ], # may vary [-4.286 , 2.144133]]) >>> np.cov(x, y) array([[11.71 , -4.286 ], # may vary [-4.286 , 2.144133]]) >>> np.cov(x) array(11.71)
相关用法
- Python dask.array.coarsen用法及代码示例
- Python dask.array.concatenate用法及代码示例
- Python dask.array.core.unify_chunks用法及代码示例
- Python dask.array.count_nonzero用法及代码示例
- Python dask.array.corrcoef用法及代码示例
- Python dask.array.core.normalize_chunks用法及代码示例
- Python dask.array.cos用法及代码示例
- Python dask.array.conj用法及代码示例
- Python dask.array.core.blockwise用法及代码示例
- Python dask.array.compress用法及代码示例
- Python dask.array.copysign用法及代码示例
- Python dask.array.cosh用法及代码示例
- Python dask.array.cbrt用法及代码示例
- Python dask.array.clip用法及代码示例
- Python dask.array.cumsum用法及代码示例
- Python dask.array.ceil用法及代码示例
- Python dask.array.choose用法及代码示例
- Python dask.array.cumprod用法及代码示例
- Python dask.array.stats.ttest_ind用法及代码示例
- Python dask.array.ma.masked_values用法及代码示例
- Python dask.array.divmod用法及代码示例
- Python dask.array.negative用法及代码示例
- Python dask.array.overlap.map_overlap用法及代码示例
- Python dask.array.stats.ttest_rel用法及代码示例
- Python dask.array.ma.average用法及代码示例
注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.array.cov。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。