在《如何計算假設檢驗的功效(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,把其餘想要達到的數值填上便可。
參考: