• R语言实现常用多重比较方法
千次阅读
2018-03-03 20:19:44

R语言实现常用多重比较方法

在单因素方差分析ANOVA中，如果该因素影响比较显著，那么需要进一步利用多重比较方法比较该因素不同水平的影响，确定不同水平下该因素的影响是否显著。常见的多重比较方法主要有两种，LSD法和Tukey HSD法。下面对R语言中，这两种多重比较方法的实现进行举例。
前期数据如下，影响因素为group，指标为value：
value  group      sample   time
A0522W11NC1 0.0002053745 normal A0522W11NC1 11week
A0522W11NC2 0.0031773712 normal A0522W11NC2 11week
A0522W11NC3 0.0060378288 normal A0522W11NC3 11week
A0522W11NC4 0.0017626931 normal A0522W11NC4 11week
A0522W11NC5 0.0018035261 normal A0522W11NC5 11week
A0522W11NC6 0.0036690067 normal A0522W11NC6 11week

> tmp <- aov(value ~ group, tarD)
最小显著差数检验法(LSD法)

> res <- LSD.test(tmp, 'group', p.adj = 'bonferroni')
> print(res$groups) trt means M 1 normal 2.576910e-03 a 2 drug3 7.552555e-04 b 3 drug2 7.269247e-05 b 4 high_fat 6.220610e-05 b 5 drug1 2.954733e-05 b Tukey氏固定差距检验法(Tukey HSD) > TukeyHSD(tmp) Tukey multiple comparisons of means 95% family-wise confidence level Fit: aov(formula = value ~ group, data = tarD)$group
diff           lwr          upr     p adj
drug2-drug1      4.314514e-05 -0.0015468705 0.0016331608 0.9999916
drug3-drug1      7.257082e-04 -0.0008643074 0.0023157239 0.6929965
high_fat-drug1   3.265877e-05 -0.0015149488 0.0015802664 0.9999969
normal-drug1     2.547362e-03  0.0009997549 0.0040949700 0.0002613
drug3-drug2      6.825631e-04 -0.0009487586 0.0023138847 0.7563196
high_fat-drug2  -1.048637e-05 -0.0016005020 0.0015795293 1.0000000
normal-drug2     2.504217e-03  0.0009142017 0.0040942330 0.0004945
high_fat-drug3  -6.930494e-04 -0.0022830651 0.0008969662 0.7277757
normal-drug3     1.821654e-03  0.0002316386 0.0034116699 0.0175538
normal-high_fat  2.514704e-03  0.0009670961 0.0040623113 0.0003161
> TukeyHSD(tmp)$group diff lwr upr p adj drug2-drug1 4.314514e-05 -0.0015468705 0.0016331608 0.9999915820 drug3-drug1 7.257082e-04 -0.0008643074 0.0023157239 0.6929965170 high_fat-drug1 3.265877e-05 -0.0015149488 0.0015802664 0.9999969171 normal-drug1 2.547362e-03 0.0009997549 0.0040949700 0.0002612744 drug3-drug2 6.825631e-04 -0.0009487586 0.0023138847 0.7563195891 high_fat-drug2 -1.048637e-05 -0.0016005020 0.0015795293 0.9999999705 normal-drug2 2.504217e-03 0.0009142017 0.0040942330 0.0004944674 high_fat-drug3 -6.930494e-04 -0.0022830651 0.0008969662 0.7277757202 normal-drug3 1.821654e-03 0.0002316386 0.0034116699 0.0175537862 normal-high_fat 2.514704e-03 0.0009670961 0.0040623113 0.0003161003 更多相关内容 • 多重比较校正的方法很多，如Bonferroni、False Discovery Rate(FDR)、Random-field Theory (RFT)等等，各种校正方法优劣，具体应用时要根据自己的统计分析的数据特点进行选择。本文，笔者对Bonferroni和False ... 作者：kervin 微信号：kervin_zhao 在科学研究的统计分析中，我们往往会遇到多重比较校正问题。多重比较校正的方法很多，如Bonferroni、False Discovery Rate(FDR)、Random-field Theory (RFT)等等，各种校正方法各有优劣，具体应用时要根据自己的统计分析的数据特点进行选择。本文，笔者对Bonferroni和False Discovery Rate(FDR)两种校正方法进行论述，特别是对于应用比较广的FDR校正方法，笔者用具体的例子详细阐述了其原理，并给出其Matlab程序。 为什么要进行多重比较校正 当在同一个数据集上进行多次统计检验时，就需要进行多重比较校正。举个简单的例子，A、B两组被试，我们从每个被试身上得出10个指标。如果我们要研究A、B两组被试的某一个指标是否存在显着差异，那么此时我们只做一次统计分析就行；假设这个指标的p值小于0.05，我们会认为这个指标在A、B两组之间存在显着差异，此时，我们犯错的概率(或者称为假阳性率)是5%。假设我们把这10个指标都进行了统计分析，即使每个独立的指标的p值都小于0.05，此时我们犯错的概率不再是5%，而是1－(0.95)^10=0.4013，也就是说此时我们犯错的概率达到40%多，这在统计学上是不可接受的。因此，需要进行多重比较校正。 Bonferroni 校正方法 Bonferroni校正方法非常简单，若单次显着性水平为0.05，那么Bonferroni 校正后的p值应该为0.05/n，其中n为统计比较的次数。Bonferroni 校正方法应该属于最严格的一种校正方法，当统计比较的次数比较多时，Bonferroni 校正后的p值会非常小，此时不推荐使用这种校正方法。当统计比较的次数较小时，如小于几十个时，可以尝试使用。 FDR 校正方法 这里，笔者主要对FDR校正方法的原理进行论述。FDR校正方法是Benjamini和Hochberg于1995年提出了一种多重比较校正的方法。其实，FDR具体的算法也有多种，如Storey法(由Storey等人提出)、Benjamini-Hochberg法(简称BH法)等。其中BH法目前应用最广，这里主要介绍这种方法的基本原理。 基于BH法的FDR校正过程： 第一步：将我们单独统计得到的一系列的p=[p1,p2,…,pn]从大到小进行重新排序，计为P=[P1,P2,…,Pn]； 第二步：按照以下公式计算每个P值所对应的校正前的FDR值，这里称之为Q值：Q = Pi* (n/r)，Pi表示P中元素值，n是P值个数，r依次为n，n-1,…,1。 第三步：对Q进行校正，得到FDR值。对于计算出来的Q=[Q1,Q2,…,Qn]，若某一个Qi值大于前一位Qi-1值，则把Qi的值赋值为Qi-1；反之则保留相应的Q值。最终得到Q值称之为校正后的FDR值。 第四步：按照重排序之前的顺序返回各个p值对应的校正后的FDR值。 例子：假设p=[0.01, 0.005, 0.03, 0.03, 0.02, 0.04, 0.05]，计算相应的校正后的FDR值。 笔者按照上述步骤，自行编制相应的Matlab程序，计算过程和结果如下： 按照上述第一步步骤，计算得到P=[0.0500, 0.0400, 0.0300, 0.0300, 0.0200, 0.0100, 0.0050]; 按照第二步中的方法，计算得到Q=[0.0500, 0.0467, 0.0420, 0.0525, 0.0467, 0.0350, 0.0350]； 按照第三步:得到校正后的FDR值为：FDR=[ 0.0500, 0.0467, 0.0420, 0.0420, 0.0420, 0.0350, 0.0350]； 最后，转换成原来的顺序：FDR=[0.0350, 0.0350, 0.0420, 0.0420, 0.0420, 0.0467, 0.0500]. 对于本例来说，如果总体的显着性水平设置为0.05，那么从得到的最后的FDR值来说，这几个p值都具有显着性差异。 总结 本文，笔者对为什么要进行多重比较校正做了简单介绍，并重点论述了FDR多重比较校正方法。关于本文中FDR校正对应的Matlab程序，如有朋友需要，请先转发本文到您的朋友圈，然后截图发给我(微信号：kervin_zhao)，我会把相应代码发给您(原创不易，请大家理解)。对于多重比较校正遇到的问题，也可以加笔者进行交流。如果各位朋友觉得本文对您有帮助，也烦请各位积极转发本文到您的朋友圈，并点击文末右下方的“在看”。 原创不易，请各位朋友积极转发，多多支持，您的每一次转发就会给我们的创作增加一份动力，谢谢！推荐阅读 如何计算EEG信号的香农熵Shannon entropy(附Matlab程序) 聊一聊置换检验Permutation test的原理 脑科学研究中常用的神经电信号记录电极介绍 大脑中的结构连接、功能连接和有效连接 基于图论的复杂脑网络分析中的常用指标 关注我们 展开全文 • 具有五个p值的多重比较示例 画图 测试方法 R具有内置的方法来调整一系列p值，以控制按族分类的错误率或控制错误发现率。 Holm，Hochberg，Hommel和Bonferroni的方法控制着家庭错误率。这些方法试图限制甚至一个... 原文链接：http://tecdat.cn/?p=9578 假设检验的基本原理是小概率原理，即我们认为小概率事件在一次试验中实际上不可能发生。 多重比较的问题 当同一研究问题下进行多次假设检验时，不再符合小概率原理所说的“一次试验”。如果在该研究问题下只要有检验是阳性的，就对该问题下阳性结论的话，对该问题的检验的犯一类错误的概率就会增大。如果同一问题下进行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),]


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

执行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隐藏。虚线表示一对一的线。

最受欢迎的见解

展开全文
• 简单介绍一下常用方法它们的含义，以及如何正确恰当选择使用这些方法。LSD：最小显著差异法，实际上是 t 检验的改进，检验统计量为T，在变异和自由度的计算上利用了整个样本信息，而不仅仅是比较两组的信息。它的...

以SPSS为例，十多种方法可选，上图为英文视图，下图为中文翻译视图，请对照学习。

简单介绍一下常用的方法它们的含义，以及如何正确恰当选择使用这些方法。

LSD：最小显著差异法，实际上是 t 检验的改进，检验统计量为T，在变异和自由度的计算上利用了整个样本信息，而不仅仅是比较两组的信息。它的敏感度最高，在比较时仍然存在放大α水准(一类错误)的问题，换言之就是总的二类错误非常小，要是LSD法都没有检验出有差别，恐怕真的没差别了。

检验原理与t检验相同，但比一般t检验的敏感性高，只要各组均值间存在一定程度的微小差异就有可能被检验出来。LSD法侧重于减小II类错误，但有增大I类错误的可能。

Bonferroni：由 LSD 法修正而来，通过调整每个检验的α水准来控制总的α水准，最终保证总的α水准为0.05，该方法敏感度介于 LSD 法和 Scheffe 法之间。Bonferroni用途最广，几乎可用于任何多重比较的情形，包括组间例数相等或不等、成对两两比较或综合多重比较等。

S-N-K：即 Student Newman Keuls 法，是应用最广泛的一种两两比较方法。它采用Student-Range 分布进行所有组均值间的配对比较。该方法保证在H0真正成立时总的α水准等于实际设定值，即控制了一类错误。

检验后将没有显著差异的组别放在一个子集，有显著差异的组别分在不同子集，控制了犯I类错误的概率。

TUKEY：即 Tukey

展开全文
• 多色荧光的激发检测光路是多重定量聚合酶链式反应(PCR)系统的核心组成部分。根据系统对荧光激发的均一性、荧光检测的时间和灵敏度需求，提出一种基于磁光开关和光电倍增管(PMT)的多色荧光激发检测光路。通过四色LED...
• 多重共线性是多元线性回归分析中的一个重要问题,消除共线性的危害一直是回归分析的一个重点。...通过实例分析,将其与常用方法进行比较,从结果可看出,Lasso回归在处理多重共线性问题上较其他方法更加有效。
• 多重比较和多重比较陷阱

千次阅读 2020-03-06 11:20:13
这就需要做进一步的分析，所使用的方法就是多重比较方法（例如最小显著差异方法），它是通过对总体均值之间的配对比较来进步检验到底哪些均值之间存在差异。 2.方差分析中多重比较的作用是什么？ 答：多重比较方法...
• 几种常用算法估计信号波达方向，MUSIC（多重信号分类法）,ESPRIT（基于旋转不变子空间算法）,压缩感知理论OMP（正交匹配追踪法）算法估计信号DOA，供初学者参考
• 多重比较法-LSD

万次阅读 2019-10-26 11:25:55
总第174篇/张俊红前面我们讲了方差分析，方差分析主要是用于多组均值比较的，方差分析的结果是多组均值之间是否显著性差异，但是这个显著性差异是整体的显著性差异，可是我们并...
• 解决多元线性回归中多重共线性问题的方法分析，谢小韦，印凡成，为了解决多元线性回归中自变量之间的多重共线性问题，常用三种方法: 岭回归、主成分回归和偏最小二乘回归。本文以考察职工平�
• t检验orF检验and多重比较

千次阅读 2020-03-18 12:15:40
t检验orF检验and多重比较t检验F检验方差分析多重比较概括 t检验 t检验，亦称student t检验（Student’s t test），主要用于样本含量较小（例如n < 30），总体标准差σ未知的正态分布。 t检验是用t分布理论来推论...
• 此时多重比较就派上用场了，在科研中也是比较常用方法。 具体的理论知识不再多讲，上代码之前先了解一下多重比较的类别。 LSD检验（最小显著差数检验法）：这也是我最常用方法，基本上就是T检验的简单变形，T...
• 说明：本文章中为作者R学习笔记，资料及操作...事后多重比较的t值的df是方差分析表中error的df（的报告t的报告F，F其实是t的平方，它的自由度还是error中的df 4.先验比较（操作中点击“对比(N)”）不需要事后检验
• 多重共线性的解决方法

万次阅读 2018-08-10 09:15:38
解决多重共线问题可以考虑一下几种方法： （一）删除不重要的自变量自变量之间存在共线性，说明自变量所提供的信息是重叠的，可以删除不重要的自变量减少重复信息。但从模型中删去自变量时应该注...
• 多重共线性问题的几种解决方法在多元线性回归模型经典假设中，其重要假定之一是回归模型的解释变量之间不存在线性关系，也就是说，解释变量X1，X2，……，Xk中的任何一个都不能是其他解释变量的线性组合。...
• 常用的统计分析方法

千次阅读 2020-12-27 12:53:30
分析方法 频率分析 主要用于查看数据基本分布特征，数据清晰，各种统计量、基本报告数据源等 数据探索 探索性分析主要是从统计的角度查看统计量来评估数据分布，主要用于异常值侦测、正态分布检验、数据分段、分位点...
• 4 多重共线性处理方法 4.1 手动移除出共线性的变量 4.2 逐步回归法 4.2.1向前法 4.2.2后退法 4.3 增加样本容量 4.4 岭回归 4.4.1最小二乘法求解多元线性回归 4.4.2 岭回归处理多重共线性 4.4.3 Lasso回归...
• 常用数据分析方法总结

千次阅读 2019-11-02 14:06:23
最近优化一个画像产品，用到一些数据分析方法，这里总结一下。 主要参考：https://www.jianshu.com/p/809fb2261b23，补充一些细节 一、描述统计 描述统计是通过图表或数学方法，对数据资料进行整理、分析，并对...
• R语言组间多重比较

万次阅读 多人点赞 2018-04-26 10:58:57
TableOne给我们提供了多组间整体的比较方法（Default ...）在做组间的比较几种常用方法，根据实验设计的不同合理选择不同方法才是正解！Show time！&gt; 先来看一个数据示例data &lt;- data.test其中 ...
• 多重共线性问题的几种解决方法

万次阅读 多人点赞 2018-01-28 16:45:51
如果违背这一假定，即线性回归模型中某一个解释变量与其他解释变量间存在线性关系，就称线性回归模型中存在多重共线性。多重共线性违背了解释变量间不相关的古典假设，将给普通最小二乘法带来严重后果。  所谓...
• DBSM常用的数据存取方法

千次阅读 2017-10-02 22:13:00
存取方法是快速存取数据库中数据的技术，一般常用的存取方法有三种：第一种是索引方法，主要时B+树索引方法；第二种是聚簇（clustering）方法；第三种是hash方法。下面分别就每种方法的特点作一下总结。 1、索引...
• 常用的降维方法

千次阅读 2018-09-17 15:19:10
降维其实是一个非常重要的特征工程之一，降维的方法也多达十余种，最常见使用的 随机森林 、 PCA主成分分析法 和 ICA 等等。 原文地址：...
• 1、通过 id 定位：find_element_by_id() 2、通过 name 定位：find_element_by_name() 3、通过 tag 定位：find_...-----------------给可爱的wulilili总结的精简版本，每个方法的实例后续更新~----------------
• 原标题：一种挽救你缺失数据的好方法——多重补插缺失数据——研究中的绊脚石在医学研究中，我们经常会碰到缺失数据。无论是因为实验设计的问题，或是检测手段精度，又或是医学实验中的不可抗力因素。一旦数据没有被...
• SPSS常用方法及操作

千次阅读 多人点赞 2021-09-24 22:03:42
SPSS常用方法检验正态性相关性分析线性回归分析卡方检验独立样本T检验配对样本T检验单因素方差分析及多重比较非参数检验（秩和检验）二元Logistic回归分析案例分析 检验正态性 1 直方图正态曲线 2 P-P图、Q-Q图 3 KS...
• 如果违背这一假定，即线性回归模型中某一个解释变量与其他解释变量间存在线性关系，就称线性回归模型中存在多重共线性。多重共线性违背了解释变量间不相关的古典假设，将给普通最小二乘法带来严重后果。 所谓多重...

...