在《如何计算假设检验的功效(power)和效应量(effect size)?》一文中,咱们讲述了如何根据显著性水平α,效应量和样本容量n,计算功效,以及如何根据显著性水平α,功效和样本容量n,计算效应量。但这两个应用都属于过后检验,也就是说,就算假设检验以后计算出的功效或效应量不理想,咱们也没有办法改变。所以,咱们最好事先就把咱们想要达到的功效和效应量肯定好,而后根据显著性水平α,功效和效应量,计算样本容量n。这种事前检验的应用用得比较多。html
此外,咱们都知道,若是假设检验选取的样本量很小,那么检验结果的可信度就不高,由于每次抽取的样本波动会很大。可是也不是说样本量越大越好,由于若是样本量很大的话,会增长检验的成本。好比说作A/B测试,一个公司的流量是有限的,此外,若是用不少用户来作实验,试错成本会很大。所以,在假设检验以前肯定好一个“最小”的样本量很是重要。ide
样本量(sample size):每次抽取的样本中所含的观测值的数量。函数
z检验(单样本,样本和整体均值)中计算样本量的公式以下:测试
(单尾)spa
(双尾)code
注:μa为第二类错误中所采用的整体均值的值。htm
双样本(两整体均值)的假设检验中,计算样本量的公式以下:(下图摘自:https://www.datasciencecentral.com/profiles/blogs/determining-sample-size-in-one-picture)blog
应用:根据显著性水平α,功效和效应量,计算样本容量n。ci
(可用G*Power或Statsmodels计算)get
如何使用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=None, nobs=None, alpha=None, power=None, alternative='two-sided')
独立样本t检验:statsmodels.stats.power.
tt_ind_solve_power
(effect_size=None, nobs1=None, alpha=None, power=None, ratio=1.0, alternative='two-sided')
卡方拟合优度检验:statsmodels.stats.power.GofChisquarePower.
solve_power
(effect_size=None, nobs=None, alpha=None, power=None, n_bins=2)
F方差齐性检验:statsmodels.stats.power.FTestPower.
solve_power
(effect_size=None, df_num=None, df_denom=None, nobs=None, alpha=None, power=None, ncc=1)
方差分析:statsmodels.stats.power.FTestAnovaPower.
solve_power
(effect_size=None, nobs=None, alpha=None, power=None, k_groups=2)
能够看到,用Statsmodels库计算功效,效应量和样本量的函数都是同一个,只要把须要计算的那个值仍然设为None,把其余想要达到的数值填上便可。
参考: