gpt4 book ai didi

python - ddof = 1 的 numpy 标准偏差估计器偏差

转载 作者:行者123 更新时间:2023-11-28 16:47:44 24 4
gpt4 key购买 nike

我正在用 numpy 生成一堆 N 个正常 rvs(平均 0 sd 1),然后用 ddof = 1 取样本的标准差,这大概应该给我一个无偏估计量。流程大致如下:

def genData(samples = 20, mean = 333.8, sd = 3.38):
bl = scipy.stats.norm.rvs(loc = mean, scale = sd, size = samples)
return [np.mean(bl), np.std(bl, ddof = 1)]

means = {}
sds = {}

n = 50000

for size in range(5,21):
x = [genData(size, mean = 0, sd = 1) for x in range(n)]
means[size] = map(lambda d: d[0], x)
sds[size] = map(lambda d: d[1], x)

但是,我观察到以下 KDE:

ddof = 1 KDEs at ddof = 1自由度 = 2 KDEs at ddof = 2由于样本量小,请原谅粗糙的曲线。

ddof = 1 存在明显偏差,ddof = 2 消除了偏差。我在这里做错了什么?

最佳答案

无偏方差估计量的平方根不一定是方差平方根的无偏估计量。在数学术语中,sum[(s-u)²]/(N-1) 是方差 V 的无偏估计量,即使 sqrt{sum[(x-u)²]/(N-1)} 不是 sqrt 的无偏估计量(五).

这实际上在 scipy 的文档中:link (请参阅“注释”部分)。

关于python - ddof = 1 的 numpy 标准偏差估计器偏差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12109908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com