web-dev-qa-db-ja.com

Pythonで調整されたp値を計算する

そのため、Pythonで調整されたp値(別名p値、q値、FDR)を取得する方法を探すために時間を費やしてきましたが、実際には何も見つかりませんでした。 R関数がありますp.adjust、しかしPythonコーディング、可能な場合はコーディングに固執したいと思います。Pythonに似たものはありますか?

これがどういうわけか悪い質問の場合、事前に申し訳ありません!最初に回答を検索しましたが、見つかりませんでした(Matlabバージョンを除く)...どんな助けでもありがたいです!

22
erikfas
20
Josef

モジュールを試すことができますrpy2これにより、R関数をインポートできます(b.t.w.、基本的な検索では PythonでRのp.adjustを実装する方法 )。

もう1つの可能性は、数学を見て自分でやり直すことです。これはまだ比較的簡単だからです。

どうやらscipyには継続的な実装があります: http://statsmodels.sourceforge.net/ipdirective/_modules/scikits/statsmodels/sandbox/stats/multicomp.html 。多分それはすでに使用可能です。

4
JulienD

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
2
The Unfun Cat