Python 3.x 协方差结果矩阵的解释

Python 3.x 协方差结果矩阵的解释,python-3.x,numpy,covariance-matrix,Python 3.x,Numpy,Covariance Matrix,我试图理解协方差矩阵的结果。我知道如果结果符号都大于0,则表示阵列在同一方向移动 x = np.array([[10,39,19,23,28], [43,13,32,21,20], [15,16,22,85,15]]) print(np.cov(x)) 如何解释这一结果 [[ 115.7 -120.55 -18.6 ] [-120.55 138.7 -76.35] [ -18.6 -76.35 933.3 ]] 编

我试图理解协方差矩阵的结果。我知道如果结果符号都大于0,则表示阵列在同一方向移动

x = np.array([[10,39,19,23,28],
              [43,13,32,21,20],
              [15,16,22,85,15]])

print(np.cov(x))
如何解释这一结果

[[ 115.7  -120.55  -18.6 ]
 [-120.55  138.7   -76.35]
 [ -18.6   -76.35  933.3 ]]
编辑:除了作者的答案之外,我还添加了一个简单的线图来帮助可视化数据的传播方差和移动协方差

协方差矩阵 A是一个nxn对称矩阵,其中n是您开始使用的矩阵的列数,并显示向量变量是如何协变量的,这意味着它们彼此之间的移动趋势

组件 在主对角线上可以找到向量的方差,在所有其他坐标上可以找到协方差,因为varX=covX,X

正负系数 在主对角线中,任何值都不能为负值,因为它们表示向量的方差。在任何其他位置,协方差可以作为两个始终为非负的sX和sY以及在[-1,1]之间变化的p的乘积获得:这是使值为正或为负的系数

covX,Y=pX,YsXsY

有三种可能性:

pX,Y==0:向量之间没有相关性。 pX,Y>0:正相关,这意味着当向量X增大时,Y的大小也随之增大。 pX,Y
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns

x = np.array([[10,39,19,23,28],
            [43,13,32,21,20],
            [15,16,22,85,15]])

plt.rcParams['figure.figsize'] = [10, 5]
plt.axis('scaled')
plt.subplot(1,2,1)
sns.heatmap(np.cov(x), 
        annot=True,
        cbar = False,
        fmt="0.2f",
        cmap="YlGnBu",
        xticklabels=range(len(x)),
        yticklabels=range(len(x)))
plt.title("Covariance matrix")
plt.subplot(1,2,2)
sns.heatmap(np.corrcoef(x), 
        annot=True,
        cbar = False,
        fmt="0.2f",
        cmap="YlGnBu",
        xticklabels=range(len(x)),
        yticklabels=range(len(x)))
plt.title("Correlation matrix")