P<0.05就够了?还要校正!校正!3个方法献上

时间:2021-11-08 14:23:51

P<0.05就够了?还要校正!校正!3个方法献上

P<0.05就够了?还要校正!校正!3个方法献上 (2017-01-03 17:55:12)

  分类: 数理统计
(转  医生科研助手 解螺旋 微信公众号)
 
当有多组数据要比较时,不管是ANOVA,还是非参的Kruskal-Wallis检验等等,都只能看出整体的几组之间有没有差异。要是有,那么差异在哪里呢?还要做个两两比较才知道。OK,两两比较又要怎么做?有的小伙伴自然而然地会想到,每两组之间做一个T检验不就好了。To naive!这是个吃力不讨好的活,用这样的方式打开T检验会增加I型错误的风险。
 
I型错误,又称拒真错误,因为光看到P<0.05我就以为两组有差别,但这个P值是有bug的,这两组实际上没差别。你问这P值怎么了?!这就遇到了多重检验问题(multiple comparison problem)。
 
1. 什么是多重检验问题?
我们选择P值以0.05为界,来鉴定两组是否有差异,但那是两组!两组!当组数比较多时,这里就有了一个坑,叫族错误率(Family-wise Error Rate, FWER,又称Experiment-wise significant level),即一族(多重)检验做下来,犯I型错误的概率。每个检验中犯I型错误的概率用α表示,也就是显著性水平,就是我们紧盯着的0.05——每个检验里,我们只允许自己有5%的机会犯I型错误。
 
但要是做了k次检验,整个实验出现I型错误的概率就会积累:一个检验犯错误的概率是α,不犯错误的概率就是1-α;于是2个检验都不犯错误的概率就是(1-α)×(1-α),k个检验都不犯错误的概率就是(1-α)^k,最后k个检验会犯错误的概率就是1-(1-α)^k。即:
P<0.05就够了?还要校正!校正!3个方法献上
比如我们的实验有4个组,那么两两比较就要做的次数就是:C(4, 2)=4×3/2×1=6次。把k=6代入公式FWER=1-(1-0.05)^6≈0.26,也就是说,这一溜检验下来,如果每个检验都给5%的机会去犯I型错误,那最后整个实验犯I型错误的概率就积累到了26%!
 
所以为了控制好最后整个实验犯I型错误的概率,就要对每个两两比较的P值做校正,我们不能再纵容自己有5%的概率犯I型错误,这个容忍度要更小。
 
2. 多重检验怎么校正?
事后检验(post-hoc test)就是得知各组间有差异之后,用来寻找具体差异在哪的一系列方法,其中就有一些校正P值的方法。常用的有Bonferroni法和Dunn- Sidák法。
 
2.1 Bonferroni法
这是最常用也是简单粗暴的方法。做了k个比较,那就直接用0.05/k来生成一个新的P值(记作P’)。4组数据做6次两两检验,用则P’=0.05/6≈0.0083。就是说,如果A组和B组比较的P值为0.032>P’,应该认为这两组之间没有统计学差异;B组和C组比较的P值为0.006
 
2.2 Dunn-Sidák法
比Bonferroni精致一些。做了k个两两比较,那么:
P<0.05就够了?还要校正!校正!3个方法献上
咦,是不是和FWER那个有点像?其实就是从它倒推过来的啊~.~4组数据做6次比较,那么P’值应该设在1-(1-0.05)^1/6≈0.0087。
 
所以如果你非要选择T检验(正态、方差齐)或Mann-Whitney U检验(非参)等来做两两比较,那么还要选用以上两种方法之一去校正P值,来判断组间是否有差异。
 
2.3 Fisher最小显著差异法(Fisher LSD)
不过,也并不是所有的事后检验法都要对多重比较做校正,比如Fisher最小显著差异法(Fisher least significant difference test,Fisher LSD)。它可以说是T检验的延伸,不同的是,T检验时用到的标准差只考虑正在比较的两个组,而Fisher LSD要考虑所有样本的标准差,所以它才敢这么任性,比直接用T检验稍微准确一些。但由于不作校正,它又比较宽松。
 
在SPSS里面,“分析→比较均值→单因素方差分析→事后比较”的对话框里就有LSD,它下面赫然便是Bonferroni和Sidak。
P<0.05就够了?还要校正!校正!3个方法献上
如果在这里选择Bonferroni或Sidak,下边的显著性水平填0.05是没问题的,可以用它来做判断。因为此处是用相应的方法校正过的,不信你用T检验比较一下其中2组数据,再跟Bonferroni或Sidak计算结果中相应的2组对比一下就知道了。
 
3. 三种方法如何选择?
显然,前两种方法都相对较保守,因为要求的P值太小太严格,当我判断一个检验结果没有差异的时候,实际上它可能是有差异的,这就是II型错误,又称受伪错误。但像LSD这样任性的,的确比较敏感,更容易发现差异,可是又容易犯I型错误。到底要闹哪样?
 
其实如何选择是没有金标准,看具体实验中,犯哪种错误后果比较严重。当然也得看杂志和审稿人的要求,听说有小伙伴不做校正会被打回来要求做个Bonferroni,这时如果校正过后导致数据解读方向扭转,怕是文章得重写。有一种观点认为,当比较次数在10次(即5组数据)以内时,用Bonferroni比较好比较次数较多时,对I型错误也可以稍稍宽容。

P<0.05就够了?还要校正!校正!3个方法献上的更多相关文章

  1. 驱动开发学习笔记&period; 0&period;05 linux 2&period;6 platform device register 平台设备注册 2&sol;2 共2篇

    驱动开发读书笔记. 0.05 linux 2.6 platform device register 平台设备注册 2/2 共2篇 下面这段摘自 linux源码里面的文档 : 内核版本2.6.22Doc ...

  2. nyoj 125-盗梦空间 &lpar;数学ans &plus;&equals; temp &ast; 60 &ast; pow&lpar;0&period;05&comma; cnt&rpar;&rpar;

    125-盗梦空间 内存限制:64MB 时间限制:3000ms 特判: No 通过数:8 提交数:10 难度:2 题目描述: <盗梦空间>是一部精彩的影片,在这部电影里,Cobb等人可以进入 ...

  3. 【Android】7&period;0 Intent向下一个活动传递数据、返回数据给上一个活动

    1.0 可以利用Intent吧数据传递给上一个活动,新建一个叫“hellotest01”的项目. 新建活动FirstActivity,勾选“Generate Layout File”和“Launche ...

  4. Vue2&period;0 引用 exif&period;js 实现调用摄像头进行拍照功能以及图片上传功能

    vue组件代码 <template> <div> <div style="padding:20px;"> <div class=&quot ...

  5. SpringBoot2&period;0 基础案例&lpar;14&rpar;:基于Yml配置方式,实现文件上传逻辑

    本文源码 GitHub地址:知了一笑 https://github.com/cicadasmile/spring-boot-base 一.文件上传 文件上传是项目开发中一个很常用的功能,常见的如头像上 ...

  6. 【8&period;0&period;0&lowbar;r4】AMS分析(十六)(ActivityManagerService&period;java上)

    代码位于frameworks/base/services/core/java/com/android/server/am/,一共有七十个文件. Java源码位于package com.android. ...

  7. 在ios8上 &lbrack;TableView setSeparatorInset&colon;UIEdgeInsetsMake&lpar;0&comma;0&comma;0&comma;0&rpar;&rsqb;&semi;不起作用 经过测试加入下面方法 在ios7 8上都可以正常工作

    -(void)viewDidLayoutSubviews { if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)] ...

  8. Oracle Database 11&period;2&period;0&period;4&period;0 已在 中标麒麟Linux x86-64 NeoKylin Linux Advanced Server 6 上通过认证

    啥都不说了,上截图:

  9. 【JMeter4&period;0学习(二)】之搭建openLDAP在windows8&period;1上的安装配置以及JMeter对LDAP服务器的性能测试脚本开发

    目录: 概述 安装测试环境 安装过程 配置启动 配置搭建OpenLDAP 给数据库添加数据 测试查询刚刚插入的数据 客户端介绍 JMeter建立一个扩展LDAP服务器的性能测试脚本开发 附:LDAP学 ...

随机推荐

  1. 【WP开发】JSON数据的读与写

    在不使用其他库的情况下,WP-RT应用中也可以处理JSON数据.主要的几个类都放到Windows.Data.Json命名空间中: IJsonValue接口作为用于封装JSON数据的规范,其中只读属性V ...

  2. c语言中gets ,getschar 和fgets 的用法及三者之间的差别,还有scanf

    ①gets [1]函数:gets(字符指针) [2]头文件:stdio.h(c中),c++不需包含此头文件 [3]原型:char*gets(char*buffer); [4]功能:从stdin流中读取 ...

  3. Mac 下安装tomcat

    一. 下载tomcat 首先要到tomcat官网去下载安装包,官网下载地址如下:http://tomcat.apache.org/download-70.cgi , 注意请下载飞windows版本.和 ...

  4. Java Hour 21 Weather

    有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. 本文作者Java 现经验约为21 Hour,请各位不吝赐教. 继续心情不佳,那 ...

  5. ANDROID&lowbar;MARS学习笔记&lowbar;S01&lowbar;006ImageView

    一.ImageView介绍 设置scalType Must be one of the following constant values. Constant Value Description ma ...

  6. When to Redis &quest; when to MongoDB&quest;

    120down voteaccepted I would say, it depends on kind of dev team you are and your application needs. ...

  7. Shell面试题

    1.用Shell编程,判断一文件是不是块或字符设备文件,如果是将其拷贝到 /dev 目录下. #!/bin/bash#1.sh#判断一文件是不是字符或块设备文件,如果是将其拷贝到 /dev 目录下#f ...

  8. High performance web site

    http://www.cnblogs.com/Blog-Yang/archive/2013/08/16/3261284.html http://www.kuqin.com/webpagedesign/ ...

  9. windows 电脑配置信息检测

    内存条 DDR4 DDR4相比DDR3最大的区别有: 1)处理器:每次内存升级换代时,必须支持的就是处理器.Haswell-E平台的内存同IVB-E/SNB-E一样为四通道设计,DDR4内存频率原生支 ...

  10. pygame系列&lowbar;弹力球

    这是pygame写的弹力球 运行效果: ======================================================== 代码部分: ================= ...