如何在 python 中执行二项式检验
二项式检验将样本比例与假设比例进行比较。
例如,假设我们有一个 6 面骰子。如果我们抛出 12 次,我们预计数字“3”出现的次数为 1/6,即 12 * (1/6) = 2 次。
如果数字“3”实际上出现了 4 次,这是否证明骰子偏向数字“3”?我们可以进行二项式检验来回答这个问题。
在 Python 中,您可以使用 scipy.stats 库中的binom_test() 函数执行二项式测试,该函数使用以下语法:
binom_test(x, n=无, p=0.5, Alternative=’两张脸’)
金子:
- x: “成功”的次数
- n:试验总数
- p:每次试验成功的概率
- 替代方案:替代假设。默认为“双面”,但您也可以指定“更高”或“更少”。
此函数返回检验的 p 值。我们可以使用以下语法加载该函数:
from scipy.stats import binom_test
以下示例说明了如何在 Python 中执行二项式检验。
示例 1:掷出 6 面骰子 24 次,恰好落在数字“3”上 6 次。执行二项式测试以确定骰子是否偏向数字“3”。
我们测试的原假设和备择假设如下:
H 0 : π ≤ 1/6 (骰子不偏向数字“3”)
H A : π > 1/6
*π是人口比例的符号。
我们将在Python中输入以下公式:
binom_test(x= 6 , n= 24 , p= 1/6 , alternative=' greater ') 0.1995295129479586
由于该 p 值 (0.1995) 不小于 0.05,因此我们无法拒绝原假设。我们没有足够的证据表明骰子偏向数字“3”。
示例 2:我们抛一枚硬币 30 次,正面朝上的次数恰好有 19 次。执行二项式测试以确定硬币是否偏向正面。
我们测试的原假设和备择假设如下:
H 0 : π ≤ 1/2 (硬币不偏向正面)
H A : π > 1/2
我们将在Python中输入以下公式:
binom_test(x= 19 , n= 30 , p= 1/2 , alternative=' greater ') 0.10024421103298661
由于该 p 值 (0.10024) 不小于 0.05,因此我们无法拒绝原假设。我们没有足够的证据表明硬币偏向于正面。
示例 3:一家商店生产小部件的效率为 80%。他们正在实施一个新系统,希望能够提高效率。他们从最近生产的产品中随机选择 50 个小部件,并注意到其中 47 个是有效的。执行二项式测试以确定新系统是否会带来更高的效率。
我们测试的原假设和备择假设如下:
H 0 : π ≤ 0.80(新系统不会导致效率提高)
H A : π > 0.80
我们将在Python中输入以下公式:
binom_test(x= 47 , n= 50 , p= 0.8 , alternative=' greater ') 0.005656361012155314
该 p 值 (0.00565) 小于 0.05,我们拒绝原假设。我们有足够的证据表明新系统提高了效率。