Python 实现了方差方程,但它们不';我不会有同样的结果

Python 实现了方差方程,但它们不';我不会有同样的结果,python,statistics,Python,Statistics,我有一个公式:$Var(X+Y)=Var(X)+2Cov(X+Y)+Var(Y)$。 我已经用python实现了这些,但是结果不一样。 谁能解释一下我的代码有什么问题吗 X = [random.randint(1,20) for i in range(10)] Y = [random.randint(1,20) for i in range(10)] X_PLUS_Y = [X[i]+Y[i] for i in range(len(X))] print(statistics.variance(X

我有一个公式:$Var(X+Y)=Var(X)+2Cov(X+Y)+Var(Y)$。 我已经用python实现了这些,但是结果不一样。 谁能解释一下我的代码有什么问题吗

X = [random.randint(1,20) for i in range(10)]
Y = [random.randint(1,20) for i in range(10)]
X_PLUS_Y = [X[i]+Y[i] for i in range(len(X))]
print(statistics.variance(X_PLUS_Y)) # 108.23333333333333
print(statistics.variance(X)+2*Covariance(X,Y)+statistics.variance(Y))#105.07777777777777```

很可能是计算协方差的方法有问题。如果我们使用numpy:

import numpy as np
import statistics
np.random.seed(123)

X = np.random.randint(1,20,10)
Y = np.random.randint(1,20,10)
X_PLUS_Y = X+Y

The variance of X + Y:

np.var(X_PLUS_Y,ddof=1)
147.4333333333333

statistics.variance(X_PLUS_Y.tolist())
147.43333333333334
协方差应如下所示:

np.cov(X,Y,ddof=1)
 
array([[47.56666667, 27.24444444],
       [27.24444444, 45.37777778]])
非对角值是我们需要的,但是你已经可以看到这个矩阵的和是方差,因此你有var(X)+2*cov(X,Y)+var(Y):


什么是
X
协方差
?很抱歉弄错了,这是我的第一个问题。协方差是一个计算两个列表协方差的函数。如果你自己写ti,你能在问题中包含代码吗?还有,
statistics
模块从何而来?您在计算中使用了哪些方差?可能是使用了样本方差而不是总体方差,这实际上会产生这种错误。
X.var(ddof=1) + 2*np.cov(X,Y,ddof=1)[0,1] + Y.var(ddof=1)
147.4333333333333