iT邦幫忙

1

淺談機器學習的效能衡量指標 (4) -- 檢定力分析(Power Analysis)

  • 分享至 

  • xImage
  •  

前言

上一次談到『假設檢定』(Hypothesis Testing),它可以檢定一項實驗是否有顯著性的效果,但是,我們要蒐集多少樣本才能驗證實驗的可靠度呢? 這時就要借助『檢定力分析』(Power Analysis)來幫我們解決這個問題。

假設檢定與檢定力分析

回顧一下假設檢定之混淆矩陣(Confusion Matrix),詳細的說明請參閱這一篇

https://ithelp.ithome.com.tw/upload/images/20191113/20001976n8iId27Svj.png
圖. 假設檢定之混淆矩陣(Confusion Matrix)

假設檢定是在避免『型一誤差』(Type I Error),即效果不顯著時(H0為真),我們卻誤認為實驗有效(H1為真),相對的,『型二誤差』(Type II Error)是當效果顯著時(H0為假),卻誤認為實驗無效(H1為假),檢定力分析希望避免此一錯誤,亦即當效果顯著時,我們有多少機率可以偵測到此一效果,因此,兩者是互補的分析方法。

『型二誤差』以β表示,檢定力(Power) 等於 1 - β。 例如Power = 0.2,就表示只有20%的機率,可以偵測到效果是顯著的,因此建議檢定力通常設為 0.8 或更高。

樣本數計算

檢定力與樣本大小(n)、效應值(effect size)高度相關,三者在給定的臨界值(α)下,形成一等式的關係。
效應值(effect size)是指干預組和控制組之間差異量,其絕對值越大表示效應越強,也就是差異越明顯。因此,科學家 Cohen 定義下表說明效應值(Cohen's d)的效果:

# 效應值(d) 意義
1. 0 - 0.2 可忽視的
2. 0.2 - 0.5
3. 0.5 - 0.8
4. 0.80 +

效應值(d) = 0.2,表示希望干預組比控制組差異達20%,若效應值設的很小,表示我們希望能偵測到很小的差異,所以,需要的樣本數就要很大。

所以,進一步設定檢定力與效應值的水準,就可以知道我們要蒐集多少樣本才夠,計算很簡單,statsmodels 套件直接支援如下:

from statsmodels.stats.power import tt_ind_solve_power
# effect_size: 效應值
# nobs1: 樣本數,設為 None,表示要求算樣本數
# alpha:臨界值(α)
# power: 檢定力
# ratio: 干預組與控制組的樣本數比例,若不等於1,nobs1 算出來的是較少的樣本數,nobs2 = nobs1 * ratio
# alternative: 單尾或雙尾檢定,單尾再分右尾(larger)及左尾(smaller)
tt_ind_solve_power(effect_size=0.2, nobs1 = None, alpha=0.05, power=0.8, ratio=1, alternative='two-sided')

函數傳回的結果是每組需要蒐集的樣本數,若ratio不等於1,則另一組樣本數(nobs2) = nobs1 * ratio。

結論

談到這裡,對於機器學習要蒐集多少樣本,準確率/精確率/召回率才具有公信力,構建了一個初步的概念,同時也是這一系列的文章告一段落了(江郎才盡)。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言