binom_conf_interval#
- astropy.stats.binom_conf_interval(k: int | NDArray, n: int | NDArray, confidence_level: float = 0.68269, interval: Literal['wilson', 'jeffreys', 'flat', 'wald'] = 'wilson') NDArray[源代码]#
二项比例置信区间给定k次成功,n次试验。
- 参数:
- k :
int或numpy.ndarrayPYTHON:int或numpy.ndarray 成功次数(0<=
k<=n)- n :
int或numpy.ndarrayPYTHON:int或numpy.ndarray 试验次数 (
n>0)。如果两者都有k和n是数组,它们必须具有相同的形状。- confidence_level :
float,可选Python:Float,可选 区间的期望概率内容。默认值为0.68269,对应于1维高斯分布中的1西格玛。置信度必须在范围内 [0, 1] 。
- interval{'wilson'、'jeffreys'、'flat'、'wald'},可选
用于置信区间的公式。有关详细信息,请参见注释。这个
'wilson'和'jeffreys'区间通常给出相似的结果,而“平坦”则有些不同,特别是对于n.'wilson'应该比'flat'或'jeffreys'. 一般不建议使用“wald”间隔。它是为了比较目的而提供的。默认为'wilson'.
- k :
- 返回:
- conf_interval :
ndarray恩达雷 conf_interval[0]和conf_interval[1]分别对应于中每个元素的下限和上限k,n.
- conf_interval :
笔记
在不知道成功概率的情况下,可以根据试验次数(N)和观察到的成功次数(K)来估计。例如,这是在为估计检测效率而设计的蒙特卡罗实验中完成的。将成功的样本比例(k/n)作为真实概率的合理最佳估计是很简单的 \(\epsilon\) 。但是,在上推导出准确的置信区间 \(\epsilon\) 不是无关紧要的。此间隔有几个公式(请参见 [1]) 。这里实施了四个间隔:
1威尔逊间隔。 这段时间,归因于威尔逊 [2], 是由
\[ci_{\rm Wilson}=\frac{k+\kappa^2/2}{n+\kappa^2} \pm\frac{\kappa n^{1/2}}{n+\kappa^2} ((\hat{\epsilon}(1-\hat{\epsilon})+\kappa^2/(4N))^{1/2}\]哪里 \(\hat{{\epsilon}} = k / n\) 和 \(\kappa\) 参数的期望置信区间所对应的标准差的个数。 正常 分布(例如,置信区间为68.269%时为1.0%)。对于100的置信区间(1- \(\alpha\) )%,
\[\kappa=\Phi^{-1}(1-\alpha/2)=\sqrt{2}{\rm erf}^{-1}(1-\alpha)。\]2杰弗里斯间隔。 将贝叶斯定理应用于具有非形成性Jeffreys先验的二项分布,导出了该区间 [3], [4]. 无信息的Jeffreys先验是Beta分布,Beta(1/2,1/2),具有密度函数
\[f(\epsilon)=\pi^{-1}\epsilon^{-1/2}(1-\epsilon)^{-1/2}。\]这一先验的理由是,它在二项式比例的重新参数化下是不变的。后验密度函数也服从Beta分布:β(k+1/2,n-k+1/2)。然后选择间隔,以使其 equal-tailed :每条尾巴(间隔外)包含 \(\alpha\) 后验概率的1/2,而区间本身包含1- \(\alpha\) 。此间隔必须用数字计算。此外,当k=0时,下限设置为0,而当k=n时,上限设置为1,因此在这些情况下,只有一个包含 \(\alpha\) /2,并且间隔本身包含1- \(\alpha\) /2而不是名义上的1- \(\alpha\) 。
3.平级教席。 这类似于Jeffreys间隔,但在0到1的范围内对二项式比例使用平坦(统一)的先验,而不是重新参数化不变的Jeffreys先验。后验密度函数为Beta分布:β(k+1,n-k+1)。关于区间性质的相同注释(等尾等)也适用于此选项。
4沃尔德间隔。 此间隔由
\[CI_{\rm wald}=\hat{\epsilon}\pm \kappa\sqrt{\frac{\hat{\epsilon}(1-\hat{\epsilon})}{n}}\]在某些极限情况下,Wald间隔给出了可以接受的结果。特别是当n很大时,真实的比例 \(\epsilon\) 不是“太接近”于0或1。但是,因为后者在尝试估计时是不可验证的 \(\epsilon\) ,这不是很有帮助。不推荐使用它,但由于它在日常实用统计中的流行程度,这里提供它是为了进行比较。
此函数需要
scipy适用于所有时间间隔类型。工具书类
[1]Brown,Lawrence D.;Cai,T.Tony;DasGupta,Anirban(2001年)。”二项比例的区间估计”。统计科学16(2):101-133。doi:10.1214/ss/1009213286
[2]威尔逊E.B.(1927年)或然推理、演替定律和统计推断”。美国统计协会杂志22:209-212。
[3]哈罗德·杰弗里斯(1946年)。”估计问题中先验概率的不变形式。程序。R、 Soc。隆德。。A 24 186(1007):453-461。doi:10.1098/rspa.1946.0056
[4]杰弗瑞,哈罗德(1998)。概率论。牛津大学出版社,第3版。ISBN 978-0198503682
实例
整数输入返回形状为(2,)的数组:
>>> binom_conf_interval(4, 5, interval='wilson') array([0.57921724, 0.92078259])
支持任意维数的数组。即使对于较小的k,n,Wilson和Jeffreys区间也给出了类似的结果:
>>> binom_conf_interval([1, 2], 5, interval='wilson') array([[0.07921741, 0.21597328], [0.42078276, 0.61736012]])
>>> binom_conf_interval([1, 2,], 5, interval='jeffreys') array([[0.0842525 , 0.21789949], [0.42218001, 0.61753691]])
>>> binom_conf_interval([1, 2], 5, interval='flat') array([[0.12139799, 0.24309021], [0.45401727, 0.61535699]])
相反,对于较小的k,n,Wald间隔给出较差的结果。对于k=0或k=n,间隔的长度始终为零。
>>> binom_conf_interval([1, 2], 5, interval='wald') array([[0.02111437, 0.18091075], [0.37888563, 0.61908925]])
对于接近1的置信区间,0<k<n的Wald区间可以给出向外延伸的区间 [0, 1] :
>>> binom_conf_interval([1, 2], 5, interval='wald', confidence_level=0.99) array([[-0.26077835, -0.16433593], [ 0.66077835, 0.96433593]])