卡方检验p<0.05之后的bonferroni校正和holm–bonferroni校正
小明:我想比较三组之间的疗效有无差异
小编:卡方检验或者单因素啊
小明:get it,结果显示p<0.05,但是...
小编:但怎么知道具体哪两组有差异呢
小明:对滴!
研究中常涉及多组间的比较,当总体检验p<0.05时,小明的问题就出现了。总体检验p<0.05,只能说明组间不全相同,但却说不清究竟是哪两组有差异。如果是多组间连续变量的比较,完全无须担心,提供了很多种两两比较的方法,任君选取。但碰到多组之间分类变量的比较,总体检验p<0.05,我们就有些许惆怅了。可没有提供可供勾选的方法哦。不怕,自己动手,丰衣足食。
假设我们比较了三组间的疗效(见上图),卡方检验结果提示p<0.05,也就是说三组间的疗效不全相同。那是g1和g2不同,还是g2和g3不同,亦或是g1和g3不同呢?对g1和g2,g2和g3,g1和g3分别做卡方检验,将得到的p值(p1、p2、p3)和调整后的α比较即可。
为什么还需要调整α而不是直接和0.05比呢?因为涉及到事后的多重比较,如果仍采用惯用的0.05,一类错误的概率会增加,因此,我们需要调整α,以控制一类错误的发生。比较常见的方法是这样的,调整的α=0.05/比较的次数,也就是我们常说的bonferroni校正。在今天的例子中,一共比较了3次,调整后的α应该是0.05/3=0.0167,也就是说p1、p2、p3<0.0167才能说明有统计学差异。
这里提醒筒子们注意一点,有时候会出现这样的情况,总体检验p<0.05,事后两两比较组间都没有差异,这种矛盾有可能是因为bonferroni的校正太严格了。所以这里,也给大家推荐另外一种方法:holm–bonferroni校正。
holm–bonferroni校正的思路是这样的:将两两比较的p值从小到大排序,然后最小的p值和α/比较的次数比较,第二小的p值和α/(比较的次数-1)比较,以此类推。。。还是来一个简单粗暴的例子看看吧,假设四个p值从小到大为p1=0.005,p2=0.01,p3=0.03,p4=0.04,那么,p1就需要和0.0125一较高下,而p2、p3、p4则需要分别和0.0167、0.025、0.05进行比较。一旦出现某个p值大于相应的调整后的α,game over。
可以看到,p1<0.0125,p2<0.0167,p3>0.025,这时候,就可以下结论了,p1和p2对应的组间是有差异的,p3和p4对应的组间是没有差异的。即使p4<0.05,也不能认为p4对应的组间是有差异的,因为p3>0.025,p4就失去了比较的机会。所以,有没有机会和α一较高下,全看前面的p值给力不给力啊。此外,还有其他调整α或者调整p值的方法,感兴趣的筒子们可以搜来看看。