我想将泊松连续误差条放在我用matplotlib制作的直方图上,但我似乎无法找到一个numpy函数,它会给出95%的置信区间,假设泊松数据。理想情况下,解决方案不依赖于scipy,但任何东西都可以工作。这样的功能是否存在?我已经发现了很多关于bootstrapping的内容,但在我看来这似乎有点过分。具有numpy的泊松置信区间
7
A
回答
7
使用scipy.stats.poisson
和interval
方法:
>>> scipy.stats.poisson.interval(0.95, [10, 20, 30])
(array([ 4., 12., 20.]), array([ 17., 29., 41.]))
即使它不仅使有限的意义上,以计算用于非整数值的泊松分布,由OP要求确切置信区间可以被计算这是可以做到如下:
>>> data = np.array([10, 20, 30])
>>> scipy.stats.poisson.interval(0.95, data)
(array([ 4., 12., 20.]), array([ 17., 29., 41.]))
>>> np.array(scipy.stats.chi2.interval(.95, 2 * data))/2 - 1
array([[ 3.7953887 , 11.21651959, 19.24087402],
[ 16.08480345, 28.67085357, 40.64883744]])
它也可以使用ppf
方法:
>>> data = np.array([10, 20, 30])
>>> scipy.stats.poisson.ppf([0.025, 0.975], data[:, None])
array([[ 4., 17.],
[ 12., 29.],
[ 20., 41.]])
但由于分布是离散的返回值将是整数,置信区间不会跨越正好95%:
>>> scipy.stats.poisson.ppf([0.025, 0.975], 10)
array([ 4., 17.])
>>> scipy.stats.poisson.cdf([4, 17], 10)
array([ 0.02925269, 0.98572239])
6
我最后写基于我自己的函数some properties I found on Wikipedia。
def poisson_interval(k, alpha=0.05):
"""
uses chisquared info to get the poisson interval. Uses scipy.stats
(imports in function).
"""
from scipy.stats import chi2
a = alpha
low, high = (chi2.ppf(a/2, 2*k)/2, chi2.ppf(1-a/2, 2*k + 2)/2)
if k == 0:
low = 0.0
return low, high
这将返回连续的(而不是离散的)边界,这在我的字段中更为标准。
1
此问题出现在天文学很多(我的领域!),这纸是去到这些置信区间参考:Gehrels 1980
它有很多数学在它的任意置信区间与泊松统计量,但对于双侧95%置信区间(对应于2西格玛高斯置信区间,或本文中上下文中的S = 2),当N个事件发生时,上下置信区间的一些简单分析公式被测量的是
upper = N + 2. * np.sqrt(N + 1) + 4./3.
lower = N * (1. - 1./(9. * N) - 2./(3. * np.sqrt(N))) ** 3.
我在哪里把它们放在Python格式中为你alr伊迪。所有你需要的是numpy或你最喜欢的平方根模块。请记住,这些会给你事件的上限和下限 - 而不是+/-值。你只需从这两个中减去N就可以得到这些。
有关这些公式的准确性,请查阅您需要的置信区间,但这些公式对于大多数实际应用而言应该足够精确。
+0
感谢您的编辑@firelynx。这种方式更具可读性。由于我做的科学比软件工程更多,我经常忘记遵循PEP8。 – 2017-04-07 13:19:11
相关问题
- 1. 的Python NumPy的泊松分布
- 2. XGBoost - 具有不同曝光/偏移量的泊松分布
- 3. Python/Numpy/Scipy:用不同的lambda绘制泊松随机值
- 4. 泊松回归线
- 5. 计算的置信区间
- 6. 有效地绘制置信区间
- 7. 光滑置信区间
- 8. vcovHC和置信区间
- 9. Stargazer置信区间错误?
- 10. ns3泊松流量模型
- 11. 生成泊松变量++
- 12. 随机泊松噪声
- 13. 泊松噪声去除,MATLAB
- 14. 指数/泊松分布
- 15. 泊松计算(erlang C)
- 16. 预测泊松回归
- 17. 上泊坞窗/马拉松
- 18. 如何估算lme4中具有较大计数值的多层泊松模型?
- 19. 嵌套函数中的置信区间
- 20. 的Python - StatsModels,OLS置信区间
- 21. Highcharts中的错误栏(置信区间)
- 22. 威布尔分布的置信区间
- 23. 岭回归的置信区间
- 24. 回归误差的置信区间,R,
- 25. 非透明的置信区间
- 26. R中的二元泊松回归?
- 27. SPSS中的零膨胀泊松回归
- 28. 带QuantLib的泊松随机变量
- 29. VB的泊松延迟公式/函数?
- 30. 如何计算Scala中的泊松数
你知道一种获得确切返回值的方法吗? – Shep 2013-02-12 21:27:36
@Shep刚刚添加了基于卡方的方法的一个版本,但是使用'interval'来回答我的问题。 – Jaime 2013-02-12 21:46:48