Python实现R包brainwaver中的compute.FDR函数

Posted 青蛙快飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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范围内!
")

    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

 

以上是关于Python实现R包brainwaver中的compute.FDR函数的主要内容,如果未能解决你的问题,请参考以下文章

时间序列模型在R软件中的实现

数据分析R&Python-Rpy2包环境配置

自己写了一个JAR包,如何把它做成Eclipse中的一个插件

如何使用 R 中的 httr 包使用 Localytics 中的数据提取数据?

在 R 中使用 LongituRF 包实现纵向随机森林

R中的神经网络包错误