如何确定假设检验的样本量(sample size)?

时间:2024-02-19 14:46:48

《如何计算假设检验的功效(power)和效应量(effect size)?》一文中,我们讲述了如何根据显著性水平α,效应量和样本容量n,计算功效,以及如何根据显著性水平α,功效和样本容量n,计算效应量。但这两个应用都属于事后检验,也就是说,就算假设检验之后计算出的功效或效应量不理想,我们也没有办法改变。因此,我们最好事先就把我们想要达到的功效和效应量确定好,然后根据显著性水平α,功效和效应量,计算样本容量n。这种事前检验的应用用得比较多。

 

此外,我们都知道,如果假设检验选取的样本量很小,那么检验结果的可信度就不高,因为每次抽取的样本波动会很大。但是也不是说样本量越大越好,因为如果样本量很大的话,会增加检验的成本。比如说做A/B测试,一个公司的流量是有限的,此外,如果用很多用户来做实验,试错成本会很大。因此,在假设检验之前确定好一个“最小”的样本量非常重要。

 

样本量(sample size):每次抽取的样本中所含的观测值的数量。

 

z检验(单样本,样本和总体均值)中计算样本量的公式如下:

(单尾)

(双尾)

注:μa为第二类错误中所采用的总体均值的值。

 

双样本(两总体均值)的假设检验中,计算样本量的公式如下:(下图摘自:https://www.datasciencecentral.com/profiles/blogs/determining-sample-size-in-one-picture

 

应用:根据显著性水平α,功效和效应量,计算样本容量n。

(可用G*Power或Statsmodels计算)

如何使用G*Power:https://zhuanlan.zhihu.com/p/62560195

线上计算:https://www.stat.ubc.ca/~rollin/stats/ssize/n2.html

单样本t检验:statsmodels.stats.power.tt_solve_power(effect_size=Nonenobs=Nonealpha=Nonepower=Nonealternative=\'two-sided\')

独立样本t检验:statsmodels.stats.power.tt_ind_solve_power(effect_size=Nonenobs1=Nonealpha=Nonepower=Noneratio=1.0alternative=\'two-sided\')

卡方拟合优度检验:statsmodels.stats.power.GofChisquarePower.solve_power(effect_size=Nonenobs=Nonealpha=Nonepower=Nonen_bins=2)

F方差齐性检验:statsmodels.stats.power.FTestPower.solve_power(effect_size=Nonedf_num=Nonedf_denom=Nonenobs=Nonealpha=Nonepower=Nonencc=1)

方差分析:statsmodels.stats.power.FTestAnovaPower.solve_power(effect_size=Nonenobs=Nonealpha=Nonepower=Nonek_groups=2)

 

可以看到,用Statsmodels库计算功效,效应量和样本量的函数都是同一个,只要把需要计算的那个值仍然设为None,把其他想要达到的数值填上即可。

 

参考:

https://www.afenxi.com/23249.html