そのため、Pythonで調整されたp値(別名p値、q値、FDR)を取得する方法を探すために時間を費やしてきましたが、実際には何も見つかりませんでした。 R
関数がありますp.adjust
、しかしPythonコーディング、可能な場合はコーディングに固執したいと思います。Pythonに似たものはありますか?
これがどういうわけか悪い質問の場合、事前に申し訳ありません!最初に回答を検索しましたが、見つかりませんでした(Matlabバージョンを除く)...どんな助けでもありがたいです!
Statsmodelsで利用できます。
いくつかの説明、例、モンテカルロ http://jpktd.blogspot.com/2013/04/multiple-testing-p-value-corrections-in.html
モジュールを試すことができますrpy2
これにより、R関数をインポートできます(b.t.w.、基本的な検索では PythonでRのp.adjustを実装する方法 )。
もう1つの可能性は、数学を見て自分でやり直すことです。これはまだ比較的簡単だからです。
どうやらscipy
には継続的な実装があります: http://statsmodels.sourceforge.net/ipdirective/_modules/scikits/statsmodels/sandbox/stats/multicomp.html 。多分それはすでに使用可能です。
biostathandbook によると、BHの計算は簡単です。
def fdr(p_vals):
from scipy.stats import rankdata
ranked_p_values = rankdata(p_vals)
fdr = p_vals * len(p_vals) / ranked_p_values
fdr[fdr > 1] = 1
return fdr