0

在 10 个值的随机数据集上使用np.cov命令时,我得到一个10x10数组作为答案。我认为我的数据格式不正确,但我不确定。

np.random.seed(1)
rho = 0.2
sigma = 1
cov = (sigma**2)*[[1,rho],[rho,1]]
mean1 = (0,0)
x1 = np.random.multivariate_normal(mean1, cov, (10))
mean1 = np.mean(x1)
cov1 = np.cov(x1)
print(cov1)
4

1 回答 1

0

这是正确的行为——<a href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.cov.html" rel="nofollow noreferrer">np.cov返回一个协方差矩阵。

特别是,它将输入的每一行作为一个变量,其中的列代表这些变量的不同值。要扭转这种行为,请通过rowvar=False.

特别是,如果您有两个变量表示为矩阵的两列,则可以使用np.cov(data, rowvar=False)(或np.cov(data.T)) 获得 2 × 2 协方差矩阵,其中 和 的元素cov[0,1]cov[1,0]是两个变量之间的协方差。

这也在这里讨论。

于 2019-10-01T22:00:36.630 回答