用两种方法计算的方差在Python中返回不同的结果

2024-06-26 13:28:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用两种不同的方法计算离散值分布的方差,以证明它们返回相同的结果:

1. σ**2 = <j**2> - <j>**2
2. σ**2 = <(Δj)**2> = Σ(Δj)**2 *P(j)

这是我的密码:

j = [14,15,16,22,24,25]
Nj = [1,1,3,2,2,5]
N = sum(Nj)

Pj = [Nj[i]/N for i in range(len(j))]

j_mean = sum(Pj[i]*j[i] for i in range(len(j)))
j_sqmean = sum(Pj[i]*j[i]**2 for i in range(len(j)))

var1 = j_mean**2 - j_sqmean
var2 = sum((j[i]-j_mean)*Nj[i] for i in range(len(j)))

print(var1,var2)

出于某种原因,var1 != var2是结果,我无法找出我的代码哪里出错了。你知道吗


Tags: 方法in证明密码forlenrangemean