Python實現R包brainwaver中的compute.FDR函式
阿新 • • 發佈:2018-11-09
FDR(false discovery rate),是統計學中常見的一個名詞,翻譯為偽發現率,其意義為是 錯誤拒絕(拒絕真的(原)假設)的個數佔所有被拒絕的原假設個數的比例的期望值。
compute.FDR {brainwaver}使用圖論進行視覺化和引數化的多變數時間序列的基本小波分析
def computeFDR(parray, q=0.05): if min(parray) < 0 or max(parray) > 1: raise ValueError("請檢查P值是否在0~1範圍內!\n") probs = sorted(parray) l = len(probs) correct = sum([1/i for i in range(1, l + 1)]) fdr = [i/l*(q/correct) for i in range(1, l + 1)] sig = [0] * l for i in range(l): if probs[i] <= fdr[i]: sig[i] = 1 maxsig = max([i*j for i, j in zip(sig, range(1, l))]) return 0 if maxsig==0 else probs[maxsig]
參考資料
http://www.gipsa-lab.grenoble-inp.fr/~sophie.achard/brainwaver/compute.FDR.html