【学习笔记】组间差异比较及相关问题总结

前 言

最近在对数据进行统计分析时发现自己其实对于统计学并没有一个很系统的了解,尤其是各种假设检验组间差异比较的方法过于繁多,实在是让人眼花缭乱,于是便打算把自己的疑惑及思考都总结记录下来,以便彻底搞清楚这些逻辑关系。

 

目 录

Q1:做组间差异比较的步骤是什么?方法都有哪些?

Q2:有些资料上提到,当两组服从正态分布的数据进行比较时,小样本(<30)使用t检验,大样本(>30)使用z检验,为什么SPSS等一些软件中只有t检验?

Q3:为什么 Wilcoxon rank-sum test 又称为 Mann Whitney U test?它们有什么不同?

Q4:为什么方差分析的结果有差异后,还需要进行“事后多重比较”?

Q5:是否有可能发生“在方差分析时没有差异,而事后两两比较时出现差异”,或者“在方差分析时有差异,而事后两两比较时却没有差异”这两种情况?

Q6:为什么事后多重比较不可以直接用t检验进行两两比较,而要用这些专门的事后多重比较方法?

Q7:什么是“多重比较矫正”?(一个小故事讲清“多重比较矫正”)

重新回答Q6:为什么事后多重比较不可以直接用t检验进行两两比较,而要用这些专门的事后多重比较方法?

Q8:所以只要是事后多重比较中有多次的两两比较,都必须要做“多重比较矫正”?

Q9:如果进行多次方差分析(也就是进行多次“三三比较”、“NN比较”),也需要进行“多重比较矫正”吗?具体应该怎么做?

Q10:方差分析中的事后多重比较方法大多都会进行“多重比较矫正”,这和文献中常见的“FDR矫正”之间有什么区别?多重比较矫正方法都有哪些?

Q11:如果要对一些分类变量(如“性别”、“有无吸烟”等)进行差异性检验,该选什么方法?

综合参考资料


 

Q1:做组间差异比较的步骤是什么?方法都有哪些?

当要进行组间差异比较时,首先要对数据有一个清楚的认识,包括是否服从正态分布、方差是否齐性等等,还要知道数据到底是配对的还是不配对的,根据数据的不同,选择的比较方法也不尽相同,但大体上也就只有“参数检验”和“非参数检验”两种。无论是SPSS还是R语言等统计学工具,在实际操作的时候还是需要一步步选择的,具体步骤和方法如下面思维导图所示。

总体主要包括正态性检验方法(更详细的可查看上一篇博客:正态检验 (Normality Test)——常见方法汇总与简述)、方差齐性检验方法两组样本的参数检验方法、非参数检验方法多组方差分析的参数与非参数检验方法及对应的事后多重比较方法。由于每一类的方法都实在太多,以下仅总结出大部分常见的方法,可点击查看大图。

 


Q2:有些资料上提到,当两组服从正态分布的数据进行比较时,小样本(<30)使用t检验,大样本(>30)使用z检验,为什么SPSS等一些软件中只有t检验?

总体服从正态分布的数据在小样本时呈现为t分布,而服从t分布的数据在样本量较大时会渐进于正态分布,也就是无论样本量大小都可以使用t检验。但z检验需要数据严格服从正态分布,但数据量小时服从的是t分布而不是正态分布,因此z检验通常只能用在大样本的情况。显然t检验的使用条件更为宽松,并且完全可以替代z检验,因此可直接使用t检验。

相关参考:统计检验与多重矫正

 


Q3:为什么 Wilcoxon rank-sum test 又称为 Mann Whitney U test?它们有什么不同?

Rank-sum test 秩和检验方法最早是由Wilcoxon提出的,运用的场景是两组样本数量相等,后来Mann和Whitney将其应用到两样本容量不等的情况,因此又称为Mann Whitney U test。在文献中两种写法都有,脑科学研究中更多描述为“Mann Whitney U test”。

 


Q4:为什么方差分析的结果有差异后,还需要进行“事后多重比较”?

因为方差分析的结果只说明多组之间存在差异,但并不能明确计算出是哪两组之间存在差异,因此还需要进行两两进行比较以找出多组中哪两组之间存在差异。

 


Q5:是否有可能发生“在方差分析时没有差异,而事后两两比较时出现差异”,或者“在方差分析时有差异,而事后两两比较时却没有差异”这两种情况?

有可能,并且这两种情况的存在是合理的。

(1)方差分析结果显著只是说明组间可能存在显著差异,但某两组之间到底有无显著差异还是要看事后检验,事后两两比较允许无差异情况的存在

(2)方差分析中,整体上的差异检验和事后多重比较的检验方法是不同的,而不同检验方法的检验效力是不一样的,有的可能对差异比较敏感,而有的却比较保守,因此就有可能造成该情况;

(3)事后多重比较中,可选用的比较方法比较多,适合数据的检验方法一般都不止一种,可尝试使用其他的方法进行检验,或许会得到不同的结果,再根据实际情况来对结果进行分析(可参考该领域的文献,具体问题具体分析);

相关参考:方差分析F检验显著,但时候两两比较都不显著的问题

 


Q6:为什么事后多重比较不可以直接用t检验进行两两比较,而要用这些专门的事后多重比较方法?

这涉及到“多重比较矫正”的问题。于是又会引申出一个新的问题,就是“什么是多重比较矫正?”因此在解释完这个问题后,再回过头来重新回答这个问题。

 


Q7:什么是“多重比较矫正”?

在进行一次两两比较时,单个检验的显著性水平(即Ⅰ型错误率)一般设置为α=0.05,但随着检验次数的增加,也就是进行多次两两比较的时候,Ⅰ型错误会随之增加。简单点说就是,即使是小概率事件,但“夜路走多了也会遇到鬼”(借用知乎上看到的一句很有意思的话)。因此必须要对显著性水平α或计算出来的p值进行“矫正”,以防止Ⅰ型错误增加

首先通过下表解释一下什么是Ⅰ型错误:

可能上面这个表很容易让人看得头晕,但简单点说,Ⅰ型错误率就是“原假设是真的,但却计算出原假设是假的,拒绝了原假设”的概率,也就是统计中经常用到的显著性水平α,一般都设置为α=0.05,使得犯Ⅰ型错误错的概率仅为0.05。为了更好地理解“多重检验会增加Ⅰ型错误概率”,并且为什么需要对α进行“矫正”的问题,下面尝试通过讲一个故事来进行解释。

假设一天只出门一次,且出门碰到鬼的概率为α=0.05,那么出门没碰到鬼的概率为1-α = 1-0.05 = 0.95。如果连续出门10天,每一天都单独来看的话,那么单独每天碰到鬼与没碰到鬼的概率为:

 

 

如果运气特别好,连续10天出门都没碰到鬼,这概率会是多少?通过计算,这个概率为:0.95^(10) ≈ 0.6,也就是连续10天都不会碰到鬼的可能性实际上只有60%,这显然比单独一天不碰到鬼的可能性95%要少多了,可见运气真的好。因此只要出门天数多,还想要天天都不碰到鬼,这可能性是会随着出门天数的增加而减少的,所以如果不想碰到鬼,最好的办法就是少出门。

那么,连续10天出门都没碰到鬼的概率为0.6,这还意味着什么?这时可以反过来想一下它的互补事件“连续10天至少有一天碰到鬼”的概率。互补事件的计算方法为:1-0.95^(10) ≈ 1-0.6 = 0.4,也就是说这10天中不管是第几天碰见鬼,也不管碰见了几次鬼,总之只要连续10天都出门,就会有40%的可能至少会碰到一次鬼!这比单独一天碰到鬼的概率0.05要大太多了!那么按照这个规律,如果连续出门20天,30天,甚至100天,“至少有一次碰到鬼”的概率将会是多少?根据上面的计算方法,计算公式为:1-(1-α)^n,作图如下:

 

 

可见,无论是概率多么小的事件,只要重复的次数越多,碰上的可能性就越大,并且当重复的次数足够多时,也就是出门的次数足够多时,就总会至少有一次会碰到鬼(接近于100%)。所以还是那句话,如果不想碰到鬼,还是少出门吧。

但减少出门次数通常来讲都是一件非常困难的事情,毕竟每天还要出门上班啊,周末还要出门溜达呀,有没有办法使得连续出门10天,也不会碰到鬼?或者说,即使连续出门10天,也仅接受0.05的概率碰到鬼,而不是0.4的概率碰到鬼,那该怎么办?

简单!找个算命法师,算个命,作个法,让单独每天碰到鬼的概率都降低一点不就得了

法师:“你命中五行缺鬼,注定每天都有5%的可能碰到鬼,既然你要连续出门10天,那就让我略施小法,干脆把每天碰到鬼的概率改成 0.05/10=0.005 吧。” 于是单独每天碰到鬼和没碰到鬼的概率就变成:

 

 

此时,再次按照上面的计算方法,可算出连续10天都没碰到鬼的概率为:0.995(^10) ≈ 0.95,那么它的互补事件“连续10天至少有一天碰到鬼”的概率即为:1-0.995(^10) ≈ 1-0.95 = 0.05。虽然 “连续10天至少有一天碰到鬼”的概率0.05  “单独每天碰到鬼”的概率0.005 相比还是增加了10倍,但最终目的达到了,那就是“即使连续出门10天,也仅接受0.05的概率碰到鬼,而不是0.4的概率碰到鬼”。

到此,这个故事其实已经讲完了。对应回“多重比较矫正”这个问题,其实“出门碰到鬼的概率”就是“显著性水平/Ⅰ型错误概率α”,“连续出门天数”就是“两两比较次数”,因此当两两比较次数增多时,Ⅰ型错误的概率会随之增加,如果想要避免这样的高错误率,就需要“法师作法”来把“出门碰到鬼的概率”降低,实际上法师用到的法术,就是多重比较矫正”中的各种方法,每种方法都有各自不同的侧重点,以有效降低Ⅰ型错误的概率。而上述故事中法师用到的法术仅仅是其中一种,就是简单粗暴的Bonferroni 矫正方法,直接把α除以出门的次数(两两比较的次数)来达到目的。

如果用一句话概括,多重比较矫正方法实际上就是设置更严格的阈值来定义统计学的显著性

最后回到原来的问题:

重新回答Q6:为什么事后多重比较不可以直接用t检验进行两两比较,而要用这些专门的事后多重比较方法?

因为事后多重比较时会涉及多次的两两比较,那么Ⅰ型错误就会随着比较次数的增多而增加。而单纯的t检验是不会对显著性水平α值进行修改(矫正)的,永远都是设定为α=0.05,这就会导致无法降低Ⅰ型错误的概率,因此不能直接用t检验进行多次的两两比较,而应该用专门的事后多重比较方法来进行分析,因为这些专门的事后多重比较方法都会通过不同的方法对结果进行矫正,以减少Ⅰ型错误

 


Q8:所以只要是事后多重比较中有多次的两两比较,都必须要做“多重比较矫正”?

不是的。从最开始的思维导图中可以看到,在“事后多重比较”中,“证实性研究”和“探索性研究”使用的事后多重比较方法是不一样的。其中:

证实性研究:在实验设计阶段,根据研究目的或专业知识事先设计好需要比较的组别。如在实验设计时已设计好有一组对照组,n组实验组,最后拿到数据后,只关心实验组和对照组之间的两两比较,而实验组与实验组之间的比较是不在实验设计范围内的,无需比较。即在得到数据前,就已经设计好需要比较的组有哪些,只关心某几个组之间的均数是否有差异,这称之为“事前比较”(priori test)

探索性研究:在实验设计阶段由于不明确那些组之间的比较是需要关注的,没办法事先设计好需要比较的组别,因此在拿到数据后,所有组的两两比较都需要进行,以进一步确定到底是那两组之间是存在差异的。如在实验设计时,并不知道正常状态、疲劳状态和睡眠状态之间的脑电信号有无差异,所以在采集到数据后,需要两两之间都进行比较才能得到结果,需要考虑所有的比较,这称之为“事后比较”(post hoc test)。(注意在实际操作中会存在这样的情况:在数据收集完成后,为减少工作量,研究者会挑出来一些看似差异比较大的组进行比较,而那些看起来似乎没有差别的组便不再比较,因此在实际操作中并没有做完所有的两两比较,而是只完成了其中几组看起来差异大的两两比较。但要注意的是,即使看似仅进行了其中几组两两比较,但这些“看起来差异大”的组别已经是在所有两两比较中,“通过经验”而不是“检验方法”所筛选出来的结果,所以实际上也还是考虑了所有的两两比较,依然属于“事后比较”。

一般情况下,证实性研究中的事后多重比较属于“计划内的比较”,一般不需要对多重比较进行矫正,如LSD-t test。而探索性研究的事后多重比较需要把所有组都进行一次两两比较,必须要进行多重比较矫正,因此这两种研究使用的事后多重比较方法是不一样的。

相关参考:

多重检验,p值矫正

多重检验及其生物学应用

高通量数据的多重检验问题

如何开展方差分析与多重比较-SPSS

 


Q9:如果进行多次方差分析(也就是进行多次“三三比较”、“NN比较”),也需要进行“多重比较矫正”吗?具体应该怎么做?

如一共有三组“正常状态”,“疲劳状态”,“睡眠状态”的脑电信号,需要研究三组之间,不同脑区(一共N个脑区)的脑电信号是否存在差异。那么在分析时,会先选定脑区1,然后对“正常”,“疲劳”和“睡眠”的信号进行方差分析;然后选定脑区2,对三组进行方差分析;以此类推,一共需要做N次方差分析。实际上“多重比较矫正”中的“多重比较”并不局限于“两两比较”,而是指任何比较,因此在上述分析中,一共进行了N次方差分析同样需要进行“多重比较矫正”。只有在对N次方差分析的结果进行多重比较矫正后,仍有显著差异的脑区,才能进入下一步“事后多重比较”。在事后多重比较中,又会涉及到多次的两两比较,此时还需要再进行一次“多重比较矫正”。也就是上述的例子一共需要进行两次“多重比较矫正”。

 


Q10:方差分析中的事后多重比较方法大多都会进行“多重比较矫正”,这和文献中常见的“FDR矫正”之间有什么区别?多重比较矫正方法都有哪些?

多重比较矫正主要可划分为两大块,分别为 False Discovery Rates (FDR) correction Family-Wise Error (FWE) correction,这两种矫正方法之间的区别需要再次用到这个表:

 

 

 

其中Family-wise error rate (FWER)的定义为“至少出现一次Ⅰ型错误的概率”,即

FWER=P\left \{ C\geq 1 \right \} = 1-(1- \alpha )^n

False discovery rate (FDR) 的定义为“Ⅰ型错误在总拒绝数量中的比率”,即

FDR=E(C/(C+D))|(C+D> 0)P\left \{ C+D> 0 \right \}

该表达式包含了总拒绝数(C+D)=0的情况,但如果拒绝数量不为0,可以直接简单地认为

FDR=C/(C+D)

因此FWE矫正方法实际上是通过控制FWER来实现的,为了保证多重比较结果的可靠性,该方法直接通过对显著性水平α进行矫正(控制),假设矫正后的α为α',那么FWE矫正方法就是要保证:

FWER=P\left \{ C\geq 1 \right \} = 1-(1- {\alpha}' )^n\leq \alpha

FDR矫正方法则是通过控制错误发现率FDR来实现的,为了保证多重比较结果的可靠性,该方法通过对结果的p值进行矫正(控制),以保证:

FDR=C/(C+D)\leq \alpha

这两种矫正的具体方法有很多,如以下思维导图所示(仅列出常见的部分方法,可点击查看大图):

 

可见,方差分析事后多重比较中使用的矫正方法大部分都为FWE矫正,当然也可以选用FDR矫正方法来对事后多重比较的结果进行矫正。

需要注意的是,不同领域选用的矫正方法不尽相同,应根据实际研究的问题并参考相关文献来进行选择

相关参考:

FWER和FDR(False Discovery Rate) - 简书 (jianshu.com)

如何通俗地理解Family-wise error rate(FWER)和False discovery rate(FDR)_sch的学习笔记-CSDN博客

yanlab.psych.ac.cn/Course/V3.1CN/9_StatisticalAnalysis.mp4

 


Q11:如果要对一些分类变量(如“性别”、“有无吸烟”等)进行差异性检验,该选什么方法?

首先要注意的是离散数据并不服从正态分布,因此应该选用非参数检验方法来进行比较。常用的方法是卡方检验(Chi-square test),它主要对两个及两个以上的样本率( 构成比)进行比较,或对两个或两个以上的分类变量进行关联性分析。其根本思想就是在于比较理论频数和实际频数的吻合程度或拟合优度问题,如该分类变量不同组之间是否有差异,数据分布是否均匀。(由于只有分类变量才使用卡方检验,因此没有综合到第一个“组间差异检验”的思维导图中。)

相关参考:

【一图就懂】t检验 VS 卡方检验-中国全科医学 (chinagp.net)

统计学——卡方检验和卡方分布_snowdroptulip的博客-CSDN博客_卡方检验

全流程总结卡方检验,帮你理清分析思路 (baidu.com)

 


综合参考资料

组间差异检验,终于有人讲清楚了! - 简书 (jianshu.com)

样本均数间的多重比较,你想知道的都在这里! - 专栏课程 - 医咖会 (mediecogroup.com)

方差分析两两比较 - 百度文库 (baidu.com)

如何理解事后多重比较的方法? - 知乎 (zhihu.com)

Handbook_of_biostatistic_R/Handbook of Biostatistics and R.md at master · ShixiangWang/Handbook_of_biostatistic_R · GitHub

GraphPad中国官网 - Prism 8 统计指南 - 统计学原理 (graphpad-prism.cn)    (PraphPad的统计学原理非常值得一读,有很多问题都能在里面找到答案。)

GraphPad Prism 9 Statistics Guide - Welcome to Prism 9 Statistics Guide   (更推荐PraphPad的英文版网页,相比于直接翻译过来的中文版,一些描述性词语或许更准确一些。)

 


 

以上所有内容都是个人通过查阅相关资料并根据自己的理解来总结的笔记,或许还有很多地方没有完善或者理解不到位,欢迎各位批评指出!