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 : intnumpy.ndarrayPYTHON:int或numpy.ndarray

成功次数(0<= k <= n

n : intnumpy.ndarrayPYTHON:int或numpy.ndarray

试验次数 (n >0)。如果两者都有 kn 是数组,它们必须具有相同的形状。

confidence_level : float ,可选Python:Float,可选

区间的期望概率内容。默认值为0.68269,对应于1维高斯分布中的1西格玛。置信度必须在范围内 [0, 1] 。

interval{'wilson'、'jeffreys'、'flat'、'wald'},可选

用于置信区间的公式。有关详细信息,请参见注释。这个 'wilson''jeffreys' 区间通常给出相似的结果,而“平坦”则有些不同,特别是对于 n . 'wilson' 应该比 'flat''jeffreys' . 一般不建议使用“wald”间隔。它是为了比较目的而提供的。默认为 'wilson' .

返回:
conf_interval : ndarray恩达雷

conf_interval[0]conf_interval[1] 分别对应于中每个元素的下限和上限 kn .

笔记

在不知道成功概率的情况下,可以根据试验次数(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]])