【发布时间】:2019-04-08 09:48:38
【问题描述】:
我最近开始使用 python 的统计模块。
我注意到默认情况下,variance() 方法返回“无偏”方差或样本方差:
import statistics as st
from random import randint
def myVariance(data):
# finds the variance of a given set of numbers
xbar = st.mean(data)
return sum([(x - xbar)**2 for x in data])/len(data)
def myUnbiasedVariance(data):
# finds the 'unbiased' variance of a given set of numbers (divides by N-1)
xbar = st.mean(data)
return sum([(x - xbar)**2 for x in data])/(len(data)-1)
population = [randint(0, 1000) for i in range(0,100)]
print myVariance(population)
print myUnbiasedVariance(population)
print st.variance(population)
输出:
81295.8011
82116.9708081
82116.9708081
这对我来说似乎很奇怪。我想很多时候人们都在处理样本,所以他们想要样本方差,但我希望默认函数能够计算总体方差。有谁知道这是为什么?
【问题讨论】:
-
最不意外的原则,我猜
标签: python statistics variance