首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实心标准差

实心标准差
EN

Stack Overflow用户
提问于 2012-12-02 05:06:10
回答 1查看 4.2K关注 0票数 4

我试图计算一些分布的标准差,并从两条路径中得到两个不同的结果。这对我来说没什么意义--有人能解释一下为什么会发生这种事吗?

代码语言:javascript
复制
scipy.stats.binom(189, 100/189).std()
6.8622115305451707

scipy.stats.tstd([1]*100 + [0]*89)
0.50047821327986164

为什么这两个数字不相等?

EN

回答 1

Stack Overflow用户

发布于 2012-12-02 05:16:17

最基本的原因是你取了两种完全不同的东西的标准差。我想你误解了scipy.stats.binom的工作。来自文献资料

binom的概率质量函数是: binom.pmf(k) = choose(n,k) * p**k * (1-p)**(n-k) 对于k {0,1,.,n} binom以n和p作为形状参数。

当您执行binom(189, 100/189)时,您正在创建一个可以接受0到189之间任何值的发行版。这个分布的方差比您使用的其他样本数据大得多,它仅限于0或1的值。

看起来你想要的是scipy.stats.binom(1, 100/189).std()。但是,仍然不能期望得到与样本数据完全相同的值,因为binom.std计算的是整个发行版的标准差,而另一个版本(scipy.stats.tstd([1]*100 + [0]*89))只计算样本的标准差。如果您增加了样本的大小(例如,做scipy.stats.tstd([1]*1000 + [0]*890)),那么样本标准差将接近您从binom.std获得的值。

您还可以使用scipy.stdnumpy.std而不是scipy.stats.tstd来获取人群(而不是样本)性病。scipy.stats.tstd没有允许您选择自由度的ddof选项,并且总是计算示例std

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13666576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档