比率检验是通过样本推测某种事件的总体占比水平。要求事件仅有互斥的两种情况,即,概率分别为p与1-p。
比率检验分单样本和双样本两种情况,以下我们分别介绍。
1. 单样本比率检验
形如这样的问题:“小学生近视比例日益提高,抽取500个小学生进行视力测试,310个小学生近视,是否可认为小学生的近视比例超过了六成?”
进行单样本比率检验可用两种方法二项检验和z检验
二项检验(Bernoulli检验):对应n<30或np或n(1-p)小于5的情况。函数为statsmodels.stats.proportion.binom_test(count, nobs, value=0.5, alternative='two-sided');
z检验:对二项检验条件以外的情况。函数为statsmodels.stats.proportion.proportions_ztest(count, nobs, value=0.5, alternative='two-sided')。
参数说明:count——事件数,nobs——样本容量,value——比率, alternative——检验方向,默认双侧,还可以为larger和smaller。
上例nobs=500,p=60%,np=300,n(1-p)=200,满足z检验方法的使用条件。根据题意,可以如下代码求解:
from statsmodels.stats import proportion
proportion.proportions_ztest(310,500,0.6,alternative='larger')
结果为p=0.0.1784>0.05,还不能接受H1:“小学生的近视比例超过了六成”的假设。尽管在比例上已经是62%,超过6成,但这只是部分代表的比例,而不是总体水平下的比例。
2. 双样本比率检验
可使用上述检验的双样本函数test_proportions_2indep(count1, nobs1, count2, nobs2, value=None, alternative='two-sided'),也可以使用Fisher精确检验(n<40或有理论值<1或p值接近0.05)或卡方检验(其它情况)。详见卡方检验文章。