Python實現R包brainwaver中的compute.FDR函數


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM