全文链接:http://tecdat.cn/?p=21825

假设检验的基本原理是小概率原理,即我们认为小概率事件在一次试验中实际上不可能发生。

相关视频

多重比较的问题

当同一研究问题下进行多次假设检验时,不再符合小概率原理所说的“一次试验”。如果在该研究问题下只要有检验是阳性的,就对该问题下阳性结论的话,对该问题的检验的犯一类错误的概率就会增大。如果同一问题下进行n次检验,每次的检验水准为α(每次假阳性概率为α),则n次检验至少出现一次假阳性的概率会比α大。假设每次检验独立的条件下该概率可增加至


常见的多重比较情景包括:

  • 多组间比较

  • 多个主要指标

  • 临床试验中期中分析

  • 亚组分析

控制多重比较谬误(Familywise error rate):Bonferroni矫正

Bonferroni法得到的矫正P值=P×n
Bonferroni法非常简单,它的缺点在于非常保守(大概是各种方法中最保守的了),尤其当n很大时,经过Bonferroni法矫正后总的一类错误可能会远远小于既定α。

控制错误发现率:Benjamini & Hochberg法

简称BH法。首先将各P值从小到大排序,生成顺序数排第k的矫正P值=P×n/k
另外要保证矫正后的各检验的P值大小顺序不发生变化。

怎么做检验

R内置了一些方法来调整一系列p值,以控制多重比较谬误(Familywise error rate)或控制错误发现率。

Holm、Hochberg、Hommel和Bonferroni方法控制了多重比较谬误(Familywise error rate)。这些方法试图限制错误发现的概率(I型错误,在没有实际效果时错误地拒绝无效假设),因此都是相对较保守的。

方法BH(Benjamini-Hochberg,与R中的FDR相同)和BY(Benjamini & Yekutieli)控制错误发现率,这些方法试图控制错误发现的期望比例。

请注意,这些方法只需要调整p值和要比较的p值的数量。这与Tukey或Dunnett等方法不同,Tukey和Dunnett也需要基础数据的变异性。Tukey和Dunnett被认为是多重比较谬误(Familywise error rate)方法。

要了解这些不同调整的保守程度,请参阅本文下面的两个图。

关于使用哪种p值调整度量没有明确的建议。一般来说,你应该选择一种你的研究领域熟悉的方法。此外,可能有一些逻辑允许你选择如何平衡犯I型错误和犯II型错误的概率。例如,在一项初步研究中,你可能希望保留尽可能多的显著值,来避免在未来的研究中排除潜在的显著因素。另一方面,在危及生命并且治疗费用昂贵的医学研究中,得出一种治疗方法优于另一种治疗方法的结论之前,你应该有很高的把握。

具有25个p值的多重比较示例

### --------------------------------------------------------------
### 多重比较示例
### --------------------------------------------------------------Data = read.table(Input,header=TRUE)

按p值排序数据

Data = Data[order(Data$Raw.p),]

检查数据是否按预期的方式排序


点击标题查阅往期内容

R语言回归中的Hosmer-Lemeshow拟合优度检验

左右滑动查看更多

01

02

03

04

执行p值调整并添加到数据框

Data$Bonferroni =p.adjust(Data$Raw.p,method = "bonferroni")Data$BH =p.adjust(Data$Raw.p,method = "BH")Data$Holm =p.adjust(Data$ Raw.p,method = "holm")Data$Hochberg =p.adjust(Data$ Raw.p,method = "hochberg")Data$Hommel =p.adjust(Data$ Raw.p,method = "hommel")Data$BY =p.adjust(Data$ Raw.p,method = "BY")Data

绘制图表

plot(X, Y,xlab="原始的p值",ylab="矫正后的P值"lty=1,lwd=2

调整后的p值与原始的p值的图为一系列的25个p值。虚线表示一对一的线。

5个p值的多重比较示例

### --------------------------------------------------------------
### 多重比较示例,假设示例
### --------------------------------------------------------------
Data = read.table(Input,header=TRUE)

执行p值调整并添加到数据帧

Data$Bonferroni =p.adjust(Data$Raw.p,method = "bonferroni")Data$BH =signif(p.adjust(Data$Raw.p,method = "BH"),4)Data$Holm =p.adjust(Data$ Raw.p,method = "holm")Data$Hochberg =p.adjust(Data$ Raw.p,method = "hochberg")Data$Hommel =p.adjust(Data$ Raw.p,method = "hommel")Data$BY =signif(p.adjust(Data$ Raw.p,method = "BY"),4)Data

绘制(图表)

plot(X, Y,type="l",

调整后的p值与原始p值在0到0.1之间的一系列5个p值的绘图。请注意,Holm和Hochberg的值与Hommel相同,因此被Hommel隐藏。虚线表示一对一的线。


本文摘选R语言多重比较示例:Bonferroni校正法和Benjamini & Hochberg法,点击“阅读原文”获取全文完整资料。

本文中的多重比较数据分享到会员群,扫描下面二维码即可加群!

点击标题查阅往期内容

股票收益分布一致性检验KS检验KOLMOGOROV-SMIRNOV、置换检验PERMUTATION TEST可视化

绘制KOLMOGOROV-SMIRNOV KS检验图ECDF经验累积分布函数曲线

Stata广义矩量法GMM面板向量自回归 VAR模型选择、估计、Granger因果检验分析投资、收入和消费数据

Python面板时间序列数据预测:格兰杰因果关系检验Granger causality test药品销售实例与可视化

R语言检验独立性:卡方检验(Chi-square test)和费舍尔Fisher精确检验分析案例报告

R语言结构方程SEM中的power analysis 效能检验分析

R语言中的Wilcoxon符号秩检验与配对学生t检验

R语言配对检验分析案例

R语言时间序列平稳性几种单位根检验(ADF,KPSS,PP)及比较分析

R语言多重比较方法

R语言Fisher检验探究地区间公寓价格的关系

R语言检验独立性:卡方检验(Chi-square test)

R语言参数检验 :需要多少样本?如何选择样本数量

R语言使用蒙特卡洛模拟进行正态性检验及可视化

r语言中如何进行两组独立样本秩和检验

R语言回归中的Hosmer-Lemeshow拟合优度检验

R语言Poisson回归的拟合优度检验

R语言Wald检验 vs 似然比检验

R语言基于协方差的结构方程拟合的卡方检验

R语言t检验和非正态性的鲁棒性

多重比较示例:Bonferroni校正法和Benjamini Hochberg法相关推荐

  1. R语言多重比较示例:Bonferroni校正法和Benjamini Hochberg法

    原文链接:http://tecdat.cn/?p=21825 假设检验的基本原理是小概率原理,即我们认为小概率事件在一次试验中实际上不可能发生. 多重比较的问题 当同一研究问题下进行多次假设检验时,不 ...

  2. 多重假设检验与Bonferroni校正、FDR校正

    总结起来就三句话: (1)当同一个数据集有n次(n>=2)假设检验时,要做多重假设检验校正 (2)对于Bonferroni校正,是将p-value的cutoff除以n做校正,这样差异基因筛选的p ...

  3. 相机校正、张氏标定法、极大似然估计/极大似然参数估计、牛顿法、高斯牛顿法、LM算法、sin/cos/tan/cot

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) CNN:RCNN.SPPNet.Fast RCNN.Faste ...

  4. 骆驼命名法,帕斯卡命名法和匈牙利命名法(转)

    一.匈牙利命名法:广泛应用于象Microsoft Windows这样的环境中.       Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Micros ...

  5. 双向循环链表的头插法和尾插法

    我们平常学链表的时候会学单向不循环链表,单向循环链表,双向不循环链表,双向循环链表及内核链表,各种格式的链表.今天我因为忘记双向循环链表的头插法和尾插法的顺序了,特意写一篇文章来巩固一下.首先我根据顺 ...

  6. 使用等价类划分法和边界值分析法设计出学生成绩的测试用例

    等价类划分法和边界值分析法的结合使用 1.等价类划分法简介 1.1基本思想 1.2划分基础 1.3等价划分类的规则 1.4测试用例的设计步骤与实例 1.5三角形问题的等价类划分法设计测试用例. 1.6 ...

  7. java 骆驼命名_编程常见的三种命名法:骆驼命名法,帕斯卡命名法和匈牙利命名法...

    一.匈牙利命名法:广泛应用于象Microsoft Windows这样的环境中. Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序 ...

  8. C语言的双向链表头插法和尾插法,指定节点删除

    文章目录 前言 头插法 尾插法 删除节点 测试代码如下 前言 双向链表和单链表的唯一区别就是多个一个指针域而已,该指针域可以访问链表的上一个节点. 关于构造双向链表的过程我们常见的有两种方法,和单链表 ...

  9. 计算机软件技术 上海电力学院,上海电力学院 计算机软件技术 实验三 用头插法和尾插法创建线性表...

    上海电力学院计算机软件技术实验三用头插法和尾插法创建线性表 #include #define MAXLEN 9 struct table {int key; int othererm; } ; typ ...

最新文章

  1. com组件和一般dll的区别
  2. 解压与压缩ramdisk.img文件
  3. c语言 l l next,nexttowardl
  4. 全局变量及其含义php,php Server:php超全局变量Server的含义与用法示例
  5. UltraISO 制作ESXi 的 USB 安装盘
  6. oracle 左连接 权限,Oracle 左连接、右连接、全外连接、(+)号作用
  7. 拒绝平庸——浅谈WEB登录页面设计
  8. 博文视点大讲堂25期——2天玩转单反相机
  9. 【渝粤教育】国家开放大学2018年春季 0408-21T管理学基础 参考试题
  10. 匹配追踪分解 时频 matlab,基于匹配追踪(MP)算法的信号自适应分解研究及其应用...
  11. Sublime Text 3 全程详细图文使用教程
  12. Dev5.4.0由于与64位的版本不兼容的问题解决方案
  13. android分享微信获取资源失败怎么办,android 调用系统分享微信失败:获取资源失败...
  14. 三位如花女人的多彩理财生活
  15. c语言中sbit什么意思,c语言中bit和sbit的区别.doc
  16. slice在php里面什么意思,js中slice()使用方法
  17. Vue,js前端实现语音实时转换文字,前端实现浏览器语音实时转换为文字,vue阿里云语音转文字
  18. Android Socket IQ聊天软件 之 聊天气泡编码步骤讲解
  19. 计算机毕业设计PHP+安卓移动LYQ电子商城APP(源码+程序+lw+远程调试)
  20. CC00016.kylin——|HadoopOLAP_Kylin.V16|——|Kylin.v16|Cube优化|检查Cuboid数量|

热门文章

  1. 33、HTML高频前端面试题
  2. Vscode好用的快捷键:批量文字修改快捷键选中相同内容快捷键
  3. 1090-A+B for Input-Output Practice (II)
  4. 理解Linux中的进程状态
  5. tf15: 中文语音识别
  6. [概率DP]相逢是温厚
  7. 实验10 人机交互的质量与测评
  8. 16.15-S7-1200-开关量PWM的方式控制-固态继电器调节水温
  9. 如何提高团队管理能力3
  10. 用Arduino板为另一块Arduino烧写(更新)BootLoader