为什么用pymc.Uniform(" stds",0,100)计算的均匀分布的标准偏差每次都不同?

时间:2018-05-31 05:51:36

标签: python pymc uniform-distribution

为什么用pymc.Uniform(" stds",0,100)计算的均匀分布的标准偏差每次都不同?

我认为标准差是用这个公式'(100-0)/2√3'来计算的,所以我认为只有一个值有一个均匀分布。

什么是pymc.Uniform干嘛? 如果您了解有关pymc.Uniform的信息,请使用" std",请教我。 谢谢!

3 个答案:

答案 0 :(得分:0)

如果数据没有变化,标准偏差应每次都输出相同的值。

(标准差的基本分类)https://www.mathsisfun.com/data/standard-deviation-formulas.html

我对pymc函数了解不多,但如果可以的话,我强烈推荐使用numpy的标准偏差函数。

https://docs.scipy.org/doc/numpy/reference/generated/numpy.std.html

使用起来非常简单直观。我自己在几个项目中使用它,并没有注意到标准偏差的变化。抱歉,我无法帮助你使用pymc,但我希望这会有所帮助。

答案 1 :(得分:0)

如果您在区间[0,100]

中模拟均匀分布的N个观测值,您就知道您的标准偏差值会收敛到相同的值

但是,频率论观点的标准偏差是对模拟观测而不是概率分布的计算。这就是为什么您可以观察来自同一分布的样本数据集中的stds之间的差异的原因。

随机变量遵循均匀分布的标准差是

(b-a)^2 / 12

但样本数据集的标准偏差的估计是使用这样的公式完成的(看看wiki page

1/(n-1) * sum( (x_i - avg(X))^2 for i in 1...N )

因此,尝试增加您模拟的点数,您应该看到stds reduce之间的区别

答案 2 :(得分:0)

抱歉,我犯了一个大错。我认为pymc.Uniform(" stds",0,100)做的事情就像计算均匀分布的标准差。但它只是统一分配,只是得到一个名为" stds"的值。谢谢你的回答!