我有以下数据框:

   A  B
0  1  5
1  2  6
2  3  7
3  4  8

我想计算协方差
a = df.iloc[:,0].values

b = df.iloc[:,1].values

将 numpy 用于 cov 为:
numpy.cov(a,b)

我得到:
array([[ 1.66666667,  1.66666667],
   [ 1.66666667,  1.66666667]])

对角线元素不应该是1吗?如何将对角线元素设为 1?

最佳答案

不,他们不应该。我认为您可能将其与相关性混淆了。
相关性和协方差是不同的。

您在对角线上看到的只是变量的方差!
公式的维基截图 -

python - 协方差矩阵的对角元素不是 1 pandas/numpy-LMLPHP

Wiki Link

关于python - 协方差矩阵的对角元素不是 1 pandas/numpy,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47427238/

10-13 06:09