协方差公式:
上面的公式计算协方差的一般公式
对于样本矩阵,有N个分量, 则
样本矩阵X的协方差矩阵为
下面按照例子进行代码计算,代码如下:
import numpy as np
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.]])
再根据前文的公式进行计算,首先计算即为X1的方差。带入公式(1)得2/3。(代码结果为1)
再根据前文的公式进行计算,首先计算即为X1的方差。带入公式(1)得-2/3。(代码结果为-1)
发现,代码运算和公式运算的结果不一样。
为什么会出现这样的结果呢?
numpy中cov是一种无偏估计。即
其中是X中第i个数,是X中第i个数,分别为的均值。n为样本数量。
公式(1)中的cov的公式为
无偏估计的由来可以参考《概率论与数理统计教程》(茆诗松版)