pythonってすごいね

RNAseqを用いた遺伝子発現量解析、機械学習を用いた回帰、分類などの解析を中心に記事を書いていきたいです!

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)

参考

データ科学 多重検定 3

statsmodels v0.12.0rc0 (+21)