中文English
ISSN 1001-5256 (Print)
ISSN 2097-3497 (Online)
CN 22-1108/R

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

方差分析后的两两比较方法太多了,该怎么选择?

阅读次数:5369
  • 分享到:

用微信扫码二维码

分享至好友和朋友圈

发布日期:2018-11-16
来源:“小白学统计”公众号

两两比较方法的选择,大概是统计学界争议最多的一个话题了,直至今天,也没有一个完全统一的说法。所以,本文虽然说是两两比较方法的选择,但更多的是在基于以往文献的基础上,再结合作者本人的经验和理解,给读者一些提示。 
    

两两比较的方法太多了,正因为太多了,所以往往大家都不知道给怎么选择。比如SAS提供了12种两两比较方法让人选择,SPSS更是毫不吝啬地给出了18种方法让你选择。我想任何一个非统计专业的人都有同一个感觉:你在耍我们吗?毫无提示地给出10多种方法,让一个毫无统计背景的人自己选择。就像是医生给你10多种药,一脸怜悯地对你说:回家自己看着吃啊,你觉得哪个好就吃哪个。 
    
关键是,明知道我们没有这个判别力,为什么要给我们这么多的两两比较方法,还得让我们自己选择?正是统计学家太多了,每个人都能根据自己的理念提出一种方法,而这些方法看起来似乎都没错,那怎么办?只好都放在软件中,你自己跟着感觉走吧。

下面就来说几种比较常见的两两比较方法的选择,希望给大家稍微理清一点思路。先声明一下,以下结论是参考了不少国外课本和文献,加上自己的一点经验,而且只给出结论性的内容,不给出公式和证明,喜欢追根究底的朋友可以自己看专业书籍。 
    
为什么要用两两比较方法呢?大多数两两比较方法的目的都是为了控制假阳性,因为两两比较次数多了,容易产生假阳性的结果。 
    
首先说医学统计课本中最喜欢介绍的3种方法:LSD、SNK和Bonferroni法。我大概翻了一下国内的医学统计学教程,几乎都是这3种方法,但似乎都没有说什么情况下用。     

LSD法其实就相当于t检验,只不过它需要在方差分析一定要有统计学差异的情况下才用。所以LSD法并没有控制假阳性错误。一般情况下,如果你在设计初期就有很明确的目的,可以考虑这种方法,因为每一对比较都是有特定意义的,不用非得控制假阳性错误。     

SNK法是先按多组均值大小排序,然后按一个有点类似于t检验的公式分别比较(不过误差计算不同)。比如a、b、c三组均值分别是a最小,c最大,b居中。那么比较时,很显然a和c差别最大,所以在最后的界值上做一些调整。例如,原来可能t检验的界值是2.83,只要t值大于2.83就算有差异,现在把界值调大,比如调到3.40,a和c的比较计算的t值,只有大于3.4才算有差异。这种调整的界值叫做q界值。这种方法对假阳性错误的控制依然不到位。所以如果你想控制假阳性,不要选这种方法。   

 Bonferroni法大概是最流行的一种方法,因为简单。它的思想是调整检验水准,根据比较的次数重新设定检验水准,然后根据P值做出结论。比如常规的检验水准是0.05,只要P小于0.05就认为有统计学差异。但是如果用Bonferroni法调整,则需要0.05除以比较次数,如比较6次,这时调整后的检验水准是0.05/6=0.0083,也就是说,P值小于0.0083才算有差异。这种方法其实更像是一种检验水准调整方法,简单易用,不仅可以用于均值的两两比较,也可用于率的两两比较。比如你要做三组的卡方检验,想进一步两两比较,就可以考虑用这种方式,即分别做两组的卡方,但是一共比较3次,所以P值小于0.0167才算有差异。这种方法的缺点是,当比较次数多时,结果过于保守,比如比较10次,那就需要P值小于0.005才算有差异,有时很难达到。 
    
再说点其它国内课本上不大介绍但是国外介绍比较多的几种方法。 
    
下面这两种方法一般用于各组之间例数相等的情形。 
  
Tukey法,有时也叫Tukey HSD法(Honestly Significant Difference test)。这种方法大概是统计学家最认可一致的方法了,绝大多数统计学家都相信,Tukey法的检验效率可能是最高的。Tukey法也是基于q检验,大概意思是先确定一个最大差异的临界值,然后分别对其中两组比较,看看哪两组差值大于这个界值,就算有差异。Tukey法是大多数统计学家首先推荐的两两比较方法,不过这种方法只适用于组间例数相等的情况。对于组间例数不等的时候,可用修正的Tukey法,也叫作Tukey-Kramer法。     

与Tukey法效率差不多的大概是REGWQ法(不要奇怪这个名字,每个字母代表一个人名,Ryan,Einot,Gabriel ,Welsch;Q表示方法)。REGWQ法与Tukey法都对假阳性错误控制的比较好。这种方法一般也只用于各组例数相等的情况。 
    
下面这几种方法一般可用于各组例数不等的情形。
    
如果各组例数虽然不同,但差的并不大,可以考虑用Gabriel 检验,这种情况下一般效率较高,但如果组间的例数差别较大,一般不要采用这种方法,否则容易结果不稳定。     

当各组例数差别较大时,Hochberg's GT2法效率较高,这种方法的思路与Tukey法有点类似,只不过采用的界值不同。这种方法的效率不如Tukey法,尤其在组间例数相等时,它的效率一直不如Tukey法,但与Gabriel的效率基本相当。但在组间例数相差悬殊的时候,可以考虑这种方法。但是如果各组方差相差较大,这种方法很不可靠。 
    
Scheffe法在国外用的也比较多,该法效率也非常高。大概是仅次于Tukey法。有时候你可能会遇到这种情况:方差分析有统计学意义,而两两比较却发现任何两组都没有差异。这时候用Scheffe法通常不会出现这种尴尬的场面。 
    
其它情形下的一些方法。

Dunnett检验是一种比较特殊的检验,它不是用于两两比较,而是某些固定的比较。通常情况下是,如果有一个对照组,多个试验组,多个试验组之间不做比较,但是每个试验组分别与对照组作比较,这时候就选择用Dunnett法。这种比较方式通常都是在研究设计阶段就设定好的。 
    
如果各组之间方差差别较大,通常可考虑用Games-Hotwell检验,这种方法在方差不等时可以提供更有高的效率,而且允许各组例数不等。但如果每组例数较小,这种方法容易不稳定。     

最后的个人小结(仅代表个人观点):     

如果各组例数相等,建议首选Tukey法;如果例数不等,建议首选Scheffe法(如果比较组数不多,如3组,Bonferroni法也可以作为首选);如果要分别比较每个试验组与对照组,建议采用Dunnett法;如果各组方差相差较大,建议采用Games-Hotwell法。     

事实上,每一种两两比较方法都有自己的道理,真正在发表文章时,除非方法本身有特定的要求(比如Tukey法只能用于组间例数相等的情形),其实你采用哪种方法可能都不能说错。有时需要结合自己的研究计划和研究目的,比如从药监局的角度,肯定更侧重控制假阳性率,从其它不同角度可能有不一样的目的,这些都可以作为选择的参考。
  • 分享到:

用微信扫码二维码

分享至好友和朋友圈

阅读次数:5369
  • 1 病毒性肝炎
    • 1.1 乙型肝炎
    • 1.2 丙型肝炎
    • 1.3 甲型肝炎
    • 1.4 戊型肝炎
    • 1.5 其他肝炎
  • 2 肝硬化及并发症
  • 3 酒精性肝病
  • 4 非酒精性脂肪性肝病
  • 5 肝衰竭/肝性脑病/人工肝
  • 6 肝肿瘤
  • 7 自身免疫性肝病
  • 8 药物性肝病
  • 9 肝移植
  • 10 其他肝病
    • 10.1 遗传及代谢性肝病
    • 10.2 胆汁淤积性肝病
    • 10.3 肝脏血管病
  • 11 一般肝病/肝脏检查
  • 12 胆道疾病
  • 13 胰腺疾病
  • 14 全身疾病与肝病/内镜
  • 15 肝胆胰疾病相关评分系统汇总