为什么用pymc.Uniform(" stds",0,100)计算的均匀分布的标准偏差每次都不同?
我认为标准差是用这个公式'(100-0)/2√3'来计算的,所以我认为只有一个值有一个均匀分布。
什么是pymc.Uniform干嘛? 如果您了解有关pymc.Uniform的信息,请使用" std",请教我。 谢谢!
答案 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"的值。谢谢你的回答!