pythonを使った多重比較検定補正
pythonのパッケージの一つである、statsmodelsを使うことで、多重比較検定補正を行う事ができます。
なぜ、多重比較検定補正が必要?
例えば、有意水準を5%とし、3回の検定を行った場合、どれか一つが有意になる確率は
1-全てが有意ではない確率=1-(0.95)3=1-0.86
となってしまい、最初に設定した5%水準を上回ってしまいます。
これを防ぐために、P値の補正を行います。特に、バイオ系だと統計検定を3回以上連続で行った場合に使われるのをよく見ます。
スクリプト
from statsmodels.stats import multitest
a=[0.01,0.05,0.03,0.001,0.05] #補正を行うp-value multitest.multipletests(a, #ターゲットとなるP値 alpha=0.05, #しきい値の設定 method='hs', #手法の設定 is_sorted=False, #P値を昇順にソートする returnsorted=False) #P値を昇順にソートする?
(array([ True, False, False, True, False]), array([0.03940399, 0.0975, 0.087327, 0.00499001, 0.0975]), 0.010206218313011495, 0.01) #alfa 値が棄却されたかどうか #補正した値 #Sidak法を使用したalfa 値の補正 #Bonferroni法を使用したalfa 値の補正
methodとして使える方法
- bonferroni : one-step correction
- sidak : one-step correction
- holm-sidak : step down method using Sidak adjustments
- holm : step-down method using Bonferroni adjustments
- simes-hochberg : step-up method (independent)
- hommel : closed method based on Simes tests (non-negative)
- fdr_bh : Benjamini/Hochberg (non-negative)
- fdr_by : Benjamini/Yekutieli (negative)
- fdr_tsbh : two stage fdr correction (non-negative)
- fdr_tsbky : two stage fdr correction (non-negative)