FDR校正的程序实现及严格程度对比

matlab mafdr,FDR校正的程序实现及严格程度对比 FDR校正的程序实现及严格程度对比前言做统计分析就离不开P value<0.05,而写过科研文章的人也都知道没有经过FDR校正的P值就像一盘散沙,不用风吹,走两步自个儿就散了。那么FDR校正这个让人又爱又恨的东西是什么呢?又是如何实现呢?原理是这样:设总共有m个候选基因,每个基因对应的p值从小到大排列分别是 p(1),p(2),...,p(m),则若想控制fdr不能超过q(如0.05),则... 阅读详情
AI摘要

本文详细介绍了FDR校正的原理及其在MATLAB和R语言中的实现方法。通过使用不同的FDR校正方法,可以帮助研究人员更准确地评估统计结果的显著性,从而提高研究的有效性和可靠性。

 

FDR校正的程序实现及严格程度对比

 

前言

 

        做统计分析就离不开P value<0.05,而写过科研文章的人也都知道没有经过FDR校正的P值就像一盘散沙,不用风吹,走两步自个儿就散了。 那么FDR校正这个让人又爱又恨的东西是什么呢?又是如何实现呢?

        原理是这样:设总共有m个候选基因,每个基因对应的p值从小到大排列分别是 p(1),p(2),...,p(m),则若想控制fdr不能超过q(如0.05),则只需找到最大的正整数i,使得 p(i)<= (i*q)/m.然后,挑选对应p(1),p(2),...,p(i)的基因做为差异表达基因,这样就能从统计学上保证fdr不超过q。计算方法参考:http://stat.ethz.ch/R-manual/R-devel/library/stats/html/p.adjust.html

        没听明白?再说简单点就是对统计分析结果产生的P值做一次筛选,对原始P值<0.05这个显著性的真实性用FDR校正后的新P值做判定。

         下面对FDR校正的程序实现基于MATLAB和R分别进行介绍。

 

(一) MATLAB实现

 

mafdr函数

 

1. FDR = mafdr(PValues);                                                        

%最简单的实现方式,基于Storey procedure ( introduced by Storey, 2002),适用于P值数量>1000的情况,否则原则上会崩溃。我用MATLAB测试过,会出现warning,但不会报错。严格程度较低,如果你的 ttest P值不是特别显著(0.01-0.05),可以用这个试试,或许可以过FDR校正.

 

2.FDR=mafdr(P,'BHFDR', true);                                              

%基于linear step-up (LSU) procedure (introduced by Benjamini and Hochberg, 1995)。最常见的FDR校正方式,严格程度较高,但比
Bonferroni校正低,适用于 ttest P值显著(<0.01)。

注:

BHFDR的计算过程

1. 将一系列的p值按照从大到小排序,然后利用下述公式计算每个p值所对应的FDR值:

公式:FDR = p * (n/i), p是pvalue,n是p值个数,最大的P值的i值为n,第二大则是n-1,依次至最小为1。

2. 将计算出来的FDR值作为新p值,如果某一个p值所对应的FDR值大于前一位p值(更大的p值)所对应的FDR值,则放弃公式计算出来的FDR值,选用与它前一位相同的值,因此会产生连续相同FDR值的现象;反之则保留计算的FDR值。

3. 返回p值对应的FDR值。

 

3.FDR=mafdr(P,'Lambda', [0.01:0.01:0.95]);                          

 %指定调整参数λ,用于估计零假设为真的先验概率,Lambda Value可以是:(1)0-1内任意一值  (2)4个以上序列,或以示例的矩阵形式:[first:incr:last],mafdr函数自动选择最优参数。严格程度比1略低,我用第一个不能过校正但是用这个居然可以过,为FDR苦恼得同志们可以被解救了。

 

4.FDR= mafdr(P, 'Method', MethodValue, [0.01:0.01:0.95]);   

%对选择最优参数lambda的方法进行选择,'bootstrap' (default),'polynomial'。第3种方法的延伸。

 

(二) R语言实现

 

p<-c(p1,p2,...,pn)                                                                    %括号内载入P值序列,","间隔

p.adjust(p,method="method value",length(p))                    %通过修改method value变换FDR方法,包括"holm","horchberg","hommel","bonferroni","BH","BY","fdr"。从严格程度上"bonferroni"最可怕,"BH","fdr"与MATLAB的1,2相同,其余在之间。

 

FDR校正的程序实现先说到这里,如果你有其他的方法请在下方留言评论或发邮件与我交流,我的邮箱是liuyuchen0020@163.com

 

 

FDR校正 B-H算法通过动态调整显著性阈值,控制多重假设检验中的假发现率(FDR),即所有被拒绝的零假设中假阳性的期望比例。FDR(False Discovery Rate)矫正是多重假设检验中控制假阳性发现比例的统计方法,其核心原理是通过动态调整显著性阈值,平衡假阳性与统计功效。FDR定义为在所有被拒绝的零假设(即判定为“显著”的结果)中,假阳性(错误拒绝真零假设)所占比例的期望值。此处 ( i=1,2,3 ) 仅表示排序位置,与检验的执行顺序(A→B→C或其他)无关。所以,P(i)的角标 ( i ) 阅读详情

相关推荐

FDR错误发现率-P值校正学习[转载]

转自:https://baike.baidu.com/item/FDR/16312044?fr=aladdinhttps://blog.youkuaiyun.com/taojiea1014/article/details/79681249 http://www.360doc.com/content/18/0914/21/19913717_786724085.shtml https://www.soh...

weixin_34066347的博客 4104

FDR(矫正后的P值)问题

最近在分析数据的时候,遇到一个问题。 因为在文献中大家好像都在用FDR作为指标来判断。 但是我的结果中FDR普遍为0.99且一样,而P值则小于0.05,这就让我比较迷茫? 为什么会出现这种情况?是我在处理的哪个环节出错了吗? 在这种情况下,是否应该根据FDR来判断,FDR处理的意义是什么? 于是以下,就这个问题进行探究。 我处理后的部分数据: gene logFC A...

weixin_40640700的博客 3万+

别再被P值坑了!一文搞懂FDR校正与BH方法的底层逻辑

本文深入解析了FDR校正与BH方法的底层逻辑,帮助读者避免P值误用。通过生动的类比和实战案例(如RNA-seq分析),详细介绍了如何在高通量数据中控制错误发现率,并对比了Bonferroni、BH等方法的适用场景与优劣。特别适合生物信息学和统计研究者提升多重检验校正的实践能力。

weixin_26801149的博客 392

FDR

FDR(false discovery rate),是统计学中常见的一个名词,翻译为伪发现率,其意义为是 错误拒绝(拒绝真的(原)假设)的个数占所有被拒绝的原假设个数的比例的期望值。 即错误拒绝真/拒绝总数 FDR(false discovery rate),是统计学中常见的一个名词,翻译为伪发现率,其意义为是 错误拒绝(拒绝真的(原)假设)的个数占所有被拒绝的原假设个数的比例的期望值。 统计学中的假设检验的基本思路是: 设立零假设(null hypothesis)H0,以及与零假设 相对应的非零假设(al

Nolan777的博客 9607

多重假设检验校正:FDR、q值与BH方法详解

在A/B测试、基因差异表达分析等场景中,同时进行大量统计检验会导致假阳性膨胀。多重假设检验校正通过控制错误发现率(FDR)或家族错误率(FWER)来保证结果可靠性。FDR控制假阳性比例期望,常用Benjamini-Hochberg方法计算q值;FWER控制至少一次假阳性概率,Bonferroni方法最为严格。理解p值与q值的区别、BH与Bonferroni的适用条件,能帮助你在高通量数据分析中正确筛选显著结果,平衡发现能力与严谨性。

weixin_34226706的博客 315

从假设检验到多重检验:FWER与FDR的实战解析与应用场景

本文深入解析了多重假设检验中的FWER(族错误率)与FDR(错误发现率)两大核心概念。通过医疗影像AI等实战案例,对比了Bonferroni与BH校正方法的原理与应用,并提供了清晰的Python代码示例。文章重点阐述了如何根据研究目标(确证性或探索性)与错误成本,在严格控制假阳性与提升发现能力之间做出权衡,为大数据分析与统计推断提供了关键决策指南。

weixin_29172963的博客 128

matlab mafdr,Matlab FDR校正的使用

分析脑电在涉及到多次比较的时候,往往要进行多重比较校正,常用的是有FWE校正和FDR,还有NBS校正,以下的是关于FDR校正的实现,资料来自网上FDR = mafdr(PValues);%最简单的实现方式,基于Storey procedure ( introduced by Storey, 2002),适用于P值数量>1000的情况,否则原则上会崩溃。我用MATLAB测试过,会出现warni...

weixin_39624360的博客 5863

你的富集分析结果可靠吗?从Fisher精确检验到FDR校正,一次讲清GO/KEGG富集背后的统计学

本文深入解析GO/KEGG富集分析背后的统计原理,从Fisher精确检验到FDR校正,帮助研究者评估富集结果的可靠性。文章详细介绍了超几何分布检验、多重假设检验校正方法及背景基因集选择策略,并提供了结果解读和验证的实用建议,助力生物信息学分析更加严谨可靠。

weixin_28732953的博客 389

多重假设检验:FDR 校正、q 值、Benjamini-Hochberg 与 Bonferroni 方法是什么?

本文从零假设、p 值和一类错误讲起,解释多重假设检验为什么会带来假阳性累积问题,并介绍 FWER 与 FDR 的区别。文章进一步用示例说明 Bonferroni 和 Benjamini-Hochberg 方法的计算逻辑,帮助读者理解 FDR 校正、BH q 值及其在实际分析中的使用。

Pu847044653的博客 2613

Bonferroni校正实战:如何在Python中用statsmodels处理多重比较问题

本文通过一个蛋白质组学数据分析的实战案例,详细讲解了如何在Python中使用statsmodels库进行多重比较校正。文章重点介绍了Bonferroni校正的原理与实现,并对比了Holm-Bonferroni和Benjamini-Hochberg等方法的差异,帮助数据分析师在处理大规模假设检验时有效控制假阳性,确保结论的统计可靠性。

weixin_29201859的博客 234

你的GO/KEGG富集结果靠谱吗?从P值校正、背景基因集选择到结果解读的避坑指南

本文深入探讨了GO/KEGG富集分析中的关键问题,包括P值校正、背景基因集选择及结果解读的常见陷阱。通过详细解析统计原理和实验设计细节,帮助研究者避免分析偏差,确保富集分析结果的可靠性。特别强调了多重检验校正和背景基因集选择对结果的重要影响,并提供了实用的工具推荐和案例分析。

weixin_30735745的博客 594

从Bonferroni到FDR:多重检验校正方法的实战选择与优化策略

本文深入探讨了多重检验校正方法,从严格的Bonferroni校正到灵活的FDR校正,分析了其原理、实现及适用场景。通过基因组数据分析实例,展示了如何在不同研究阶段选择合适的校正策略,平衡假阳性控制与发现效率,并提供优化技巧如预过滤和分层FDR控制。

o1p2q3r的博客 158

R语言实战:如何用p.adjust函数搞定Wilcoxon检验的P值校正(附完整代码)

本文详细介绍了如何在R语言中使用p.adjust函数对Wilcoxon秩和检验的P值进行多重校正,包括Bonferroni、BH和Holm等方法的应用。通过实战代码演示和结果可视化,帮助研究人员有效解决多重比较问题,特别适用于生物信息学和医学统计领域的数据分析。

weixin_29081101的博客 241

多重假设检验校正:从理论到实践的全面解析

本文全面解析了多重假设检验校正的理论与实践,重点阐述了FWER与FDR两大核心控制目标。针对高通量数据分析中假阳性率飙升的问题,详细对比了Bonferroni、Holm及主流的BH(FDR)校正方法,并提供了基于研究目标与数据特性的实战选择指南,帮助科研人员确保数据分析结果的可靠性。

mqtt6iot的博客 421

什么是FDR校正,核磁共振成像中FDR校正方法有哪些?如何进行FDR校正?

多重比较是统计学中的术语。当我们进行多次统计检验后,假阳性的次数就会增多,所以要对假阳性进行校正。

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 7527

NX二次开发(python)-坯料尺寸(一)

一般在产品制造过程中,往往要判断一个模型在出模方向上的最小包容盒尺寸,在NX中可以用坯料尺寸命令实现,当然也有相应的代码实现,这或许可以帮助我们实现一些产品的坯料尺寸批量输出,节省人力。

dasfanfan的博客 816

从医院误诊到基因分析:用生活案例讲透多重检验校正原理

本文通过医院误诊和基因分析等生活案例,深入浅出地讲解了多重检验校正的核心原理。文章详细介绍了Bonferroni校正和FDR校正两种方法,分析其优缺点及适用场景,帮助读者在医学检测、基因分析等领域有效控制假阳性率,提升统计结论的可靠性。

mmm90的博客 581

FPGA以太网通信实战(一):实现MDIO接口驱动,掌控PHY芯片的钥匙

本文介绍了以太网通信技术及其核心组件。首先概述了以太网的发展历程,从标准以太网(10Mbps)到万兆以太网(10Gbps)的技术演进。重点分析了以太网接口的两大核心部件:MAC控制器负责数据链路层协议处理,PHY芯片负责物理信号转换和连接管理。文章详细解读了MDIO接口规范,包括帧格式和读写时序,并以YT8531 PHY芯片为例,介绍了其寄存器配置方法。最后设计了一个FPGA实现方案,通过MDIO接口完成PHY芯片的软复位和状态监测功能,并利用LED指示灯实时显示网络连接速率。

weixin_64402689的博客 1658

生物信息学实战:如何用R语言中的p.adjust函数搞定多重检验校正(附代码示例)

本文深入探讨了R语言中p.adjust函数在生物信息学多重检验校正中的应用,特别针对高通量测序数据分析。通过比较Bonferroni、Holm、FDR等校正方法,结合实战代码示例,帮助研究人员有效控制假阳性率,提升差异表达分析的可靠性。文章还涵盖了大规模数据处理技巧和结果可视化方法,是生物信息学研究的实用指南。

convnet3designer的博客 172

Ai数字人直播系统源码部署

虚拟形象定制,直播内容智能生成,多语言支持,智能互动,声音克隆,24 小时不间断直播,多平台直播,智能数据分析,实时情感识别,视频合成,Ai数字人直播系统源码出售,Ai数字人直播系统源码部署实现 AI 数字人 24 小时不间断直播功能是一个较为复杂的任务,涉及到多个方面,如直播流的推送、内容的持续生成、系统的稳定性保障等。以下为你提供一个简化的实现思路和示例代码,借助 Python 结合 FFmpeg 工具来模拟 24 小时不间断直播。

weixin_ggwwsscc的博客 1251

基于opencv-ANN的水果识别模型训练

本文通过opencv-ann-mlp训练模型,实现对五种水果进行分类识别。本文详细介绍该项目的各个过程,包括数据准备、预处理、样本读取、训练数据集制作、训练标签制作、模型参数设置、模型训练,模型测试验证等,总结该过程需要注意的事项。

qq_15985873的博客 3970

你的富集分析结果可靠吗?从Fisher精确检验到多重检验校正的避坑指南

本文深入探讨富集分析结果的可靠性问题,从Fisher精确检验到多重检验校正,提供全面的避坑指南。重点解析GO、KEGG和COG注释的统计原理,揭示常见误解与陷阱,并介绍如何通过多重检验校正和生物学解释提升分析质量。适合生物信息学研究人员优化高通量数据分析流程。

weixin_33698823的博客 425

【新版系统架构】系统架构设计师教程全篇知识点提炼

信息系统的5个基本功能:输入、存储、处理、输出和控制信息系统的发展:诺兰模型:初始阶段、传播阶段、控制阶段、集成阶段、数据管理阶段、成熟阶段信息系统的分类:传统的信息系统分为:业务(数据)处理系统、管理信息系统(MIS)、决策支持系统(DSS)、专家系统(ES)、办公自动化系统(OAS)等5类信息系统的生命周期:1、产生阶段2、开发阶段(总体规划、系统分析、系统设计、系统实施、系统验收阶段)3、运行阶段4、消亡阶段信息系统建设原则:1、高层管理人员介入原则。

分享技术干货和灵感、推荐新书和好玩的项目、分享Java面试题 1万+
上一篇: 追踪文献好助手!stork文献鸟使用介绍
下一篇: SurfStat Toolbox 使用说明
Dr. Yuchen Liu
博客等级 码龄10年 135粉丝 21原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值