要做 t 检验,这两口毒奶可喝不得!| 协和八
作者有话讲 我们这个「说人话的统计学」系列,自从开讲 t 检验以来,从 t 检验的原理一路讲到了分析结果的报告与可视化,到现在这一部分也差不多该告一段落了,你现在是不是该对 t 检验胸有成竹了呢?作为最基础的统计检验,t 检验说难不难,说易也不易,我们今天就再来讲一讲在做 t 检验前后容易犯的错误。
在我们之前的文章里,已经和大家提到过一些对 t 检验的误用误读,比如说该用成对数据的 t 检验却用了独立数据的 t 检验啦,把 t 检验用在不能满足抽样分布的正态假设的数据上啦,把统计学意义上的显著性等同于实际意义上的显著性啦,光说显著性不说效应大小啦,林林总总不一而足,相信你一定已经耳熟能详,不会再掉进这些坑里了。
但我们今天要着重说的不是这些,而是两种不那么显而易见的错误——尽管稍稍有些隐蔽,它们在学术文献(即便是顶级期刊)中出现的机会却相当不少!
想要自己的 t 检验无懈可击?快来和我们一起看看这两口毒奶长什么样吧!
话说暑假到了,蓝精灵们都放假玩耍去了,校园里格外冷清,食堂里格格巫的包子窗口生意也十分惨淡。为了帮补家用,格格巫来到楼上大嘴教授的实验室,当上了临时技术员。作为蘑菇研究泰斗的大嘴教授,自然是有点嫌弃格格巫的黄油手,不过听说格格巫在智斗蓝精灵(准确地说应该是被蓝精灵智斗)的过程中,增长了不少统计学知识,决定给他一个机会。
大嘴教授给格格巫分配了一个小课题,让他研究白蘑菇汤和褐蘑菇汤对降低血压的作用有没有什么区别。没过几天,格格巫就兴冲冲地跑到大嘴教授的办公室,得意洋洋地宣布:「白蘑菇汤比褐蘑菇汤的降压效果更好!」
大嘴教授一听,心想这小子果然有两把刷子啊,真是没看错人!心情一好,他平时的架子也无影无踪:「哎呀真是辛苦了,坐坐坐,喝杯茶然后把数据给我讲讲?」
格格巫掏出实验记录本,送到大嘴教授跟前:
「您看啊,白蘑菇汤对血压的平均降低作用是 10 毫米汞柱,平均值的标准误差为 4 毫米汞柱。因为我们是要研究蘑菇汤能否降低血压,所以我们的原假设就是「蘑菇汤对血压的降低作用为0 」。因此,我把白蘑菇汤的数据做以 0 为标准值的单样本 t 检验,得到了小于 0.01 的 p 值,说明结果具有统计学意义上的高度显著性,也就是说白蘑菇汤能够显著降低血压。」
「而褐蘑菇汤对血压的平均降低作用是 4 毫米汞柱,平均值的标准误差也是 4 毫米汞柱,同样进行单样本 t 检验,p 值为 0.28,远大于 0.05,也就是说从统计学意义上讲褐蘑菇汤不能显著降低血压。」
「所以,白蘑菇汤有显著性,而褐蘑菇汤没有,自然白蘑菇汤比褐蘑菇汤的降压效果更好!」
听了格格巫的一席话,有没有感觉很有道理?如果你的回答是肯定的,那么再读一遍找找茬?
其实呢,一直到最后一句之前,格格巫说的话都是没有错的,唯独是最后这一句话猛地闷了一口毒奶。
这口毒奶到底是什么呢?让我们先暂时忘掉格格巫说了啥,想想如果我们自己来分析这个数据会怎样做。
无论做什么统计分析,我们要记住的一个重要原则是,统计测试的选用必须要从我们想要了解的实际问题出发。大嘴教授感兴趣的是两种蘑菇汤的降压作用有没有区别,而我们手头上有这两种蘑菇汤各自的降压作用的数据。一般来说,这两组数据都是独立的(因为如果在同一组受试者上先后使用两种汤药,就可能无法在同一个起跑线上测量两者的作用),因此,最合适的检验就是独立样本的 t 检验(如果你不太确定的话,不妨戳此处回顾 就是要实用!t 检验的七十二变 )。
如果我们来做这样一个检验,我们就会得到相当大的 p 值(大概在 0.5 左右)。换言之,白蘑菇汤和褐蘑菇汤的降压作用并没有显著区别。当然,我们之前也讲过,光看 p 值是不够的。对于这个例子来说,从两组平均值上看,降压作用有一定的区别,这种区别既可能仅仅是由抽样随机性导致的,也有可能暗示着真实存在的区别。然而,就现有的数据来说,我们无法推翻白蘑菇汤与褐蘑菇汤降压作用没有区别的原假设。
显然,这个结论和格格巫的说法是矛盾的。问题出在哪里?我们回过头来看看:
格格巫之所以作出白蘑菇汤比褐蘑菇汤更有作用的结论,是基于两个单样本 t 检验的显著性的差别——白蘑菇汤有显著性,而褐蘑菇汤没有。但是格格巫并没有直接对他们本来需要了解的问题——两者有没有差别——进行有针对性的检验。他的结论并非出自检验本身,而只是字面意义上的「差别」而已。
所以,我们希望强调的是,两组数据各自进行某个检验,其显著性的差别并不代表这两组数据的差别具有显著性。要试图研究某个问题(比如说两组数据均值有没有差别),就必须找到能直接回答这个问题的相应检验方法,而不能通过比较这两组数据其他某个检验结果显著性的差别来下结论。
同样的道理,在蘑菇汤这个例子里,如果有两组数据各自做单样本 t 检验都有显著性,也不能代表它们之间就没有差别。假设格格巫又研究了第三种汤药灰蘑菇汤,它对血压的平均降低作用是 3 毫米汞柱,平均值的标准误差是 0.8 毫米汞柱。因此,灰蘑菇汤本身有统计学上显著(但实际上很微小)的降血压作用(单样本 t 检验 p 值小于 0.001)。但如果我们用独立样本的 t 检验比较都有显著性的白蘑菇汤和灰蘑菇汤的区别,依然会得到显著的结果。
值得一提的是,这口毒奶并不只在 t 检验中出现,将来讲到线性回归等话题时,我们还会再次给大家提个醒儿。
所谓吃一堑长一智,格格巫又涨了新姿势。大嘴教授又发问了:「小格呀,你再跟我说说你用在 t 检验里的数据都是怎么收集的?」
格格巫打起精神,回答道:「我白蘑菇汤组和褐蘑菇汤组分别用了 10 只小鼠,每只小鼠我分别将处理后的血压降低值重复测量了 3 遍,所以两组各自有 10×3=30 个数据点。然后,我就可以用这些数据点做单样本 t 检验或者独立样本 t 检验了。」
我们再次把画面停住,你能发现这里又有什么问题吗?
相信你一定记得,所有统计学检验和模型都对数据本身的性质和产生的物理过程有一定的假设和要求,只有当这些假设满足(或近似满足)时,统计检验才能给我们正确、可靠的结论。
我们之前讨论过 t 检验的其中一个重要假设,即抽样分布的正态性(可回顾 不是正态分布,t检验还能用吗?;只有15个标本,也能指望t检验吗?)。t 检验还有一个很关键的假设,就是要求各组内的数据点之间是互相独立的。
这是什么意思呢?在概率论里,独立性有严格的定义,这里我们不必纠结具体的理论。简单来说,就是不同的数据点的产生过程没有关联。换个角度来讲,如果一堆数据点是独立的,那么知道其中某一个的数值不能使我们更好地猜测另外那些数据点的数值。
那么我们回想一下,格格巫的数据点是否具有这样的性质?恐怕不然。因为在一组 30 个数据中,来自同一只小鼠的 3 个数据点是有联系的。如果我们知道了某只小鼠的一个数据点,那么相比起其他小鼠的数据,我们能够对这一只小鼠的另外两个数据点作出更有针对性的猜测。也就是说,格格巫这样的数据并不独立。
为什么不独立的数据做 t 检验会有问题?我们之前讲过,t 检验的显著性取决于效应大小以及样本量。同样的效应大小,样本量越大,就越有统计学意义上的显著性( p 值越低)。但当样本中的数据不独立时,由于数据点之间的关联,实际上「有效」的样本量就会比表面上的数据点个数少。具体少多少取决于来自同一个单元的数据点的相互关联程度。
想象一种极端情况,如果在格格巫的例子里,每只小鼠的 3 次重复测量值都完全相同(即它们完全不独立),实际上样本量就只有 10 了。
通常来说,同一个单元的多个数据点仍然会有一些波动,所以「有效」的样本量将会在 10 和 30 之间。
然而,当 t 检验在根据 t 统计量和自由度计算 p 值时,仍然会把 30 当成样本量,因此算出来的 t 值就会偏大,而 p 值则会偏小(戳此处回顾 想玩转t检验?你得从这一篇看起 )。那么,我们就会倾向于把本来达不到显著水平的结果认为是显著的,也就是犯更多的第一类错误( type 1 error )了(第一类错误和第二类错误的定义可回顾 做统计,多少数据才算够?(上))。
需要指出的是,在这个例子里,数据之间不独立的原因是因为有些数据点来源于同一个个体(小鼠)。但是,这并不是产生不独立性的唯一原因。
在科研实践中,只要某两个数据点之间存在某种已知的、与它们和其他数据点之间不同的联系,它们就是不独立的,比如来自同一个家庭的几个受试者、来自同一所学校同一个班级的几个学生、在同一个医院接受治疗的几个病人、来自同一只动物的几个细胞等等。
一般来说,只要数据的结构是有「嵌套」( nested )关系的,都会具有相互不独立的特征。
比方说,我们希望分析江苏省居民的可支配收入,同时我们还记录了所有江苏省居民住在哪个小区、哪个城市, 这样就形成了一个具有嵌套关系的样本,因为每个小区都包含了若干个居民数据点(居民被「嵌套」在小区里),而每个城市又包含了若干小区(小区被「嵌套」在城市里)。
显然,在居民这一层,各个数据点并不是独立的,因为两个都住在南京市某个小区的居民的收入情况会受到一些共同因素的影响(例如这个小区的房价、所处地段、是否为某单位的大院),而两个住在南京市不同的两个小区的居民的收入之间的关联一般来说就少一些。
如果我们往上走一层来到小区这一级,江苏省全省各小区居民的平均收入同样不是独立的,因为这些小区分属不同的城市,两个在同一个城市的小区收入状况一般来说就会相近一些,因为它们都会受到所在城市的各种社会经济发展情况的影响。而一个南京的小区和一个连云港的小区之间的相似性则会小一些(但依然不会完全独立,因为它们都属于同一个省份和国家)。
认识了这第二口毒奶,我们怎么样可以不喝?
对于有嵌套关系的数据,通常有两种解决方法。
第一,我们可以选定嵌套关系中的某一层,以该层为单位将不同的数据点取平均,这样一来,这一层的每个单元就只有一个数据点,在有些条件下它们之间可以认为是相互独立的。
在上面这个例子里,格格巫可以先把每只小鼠的 3 个血压降低值取平均,然后再对两组(每组 10 个数据点)数据做 t 检验。这样做的优点是让我们回到基本的 t 检验等方法,容易掌握和解读,但缺点则是损失了原始数据中的一部分信息(每只小鼠重复测量的波动性的差别),因而会在一定程度上降低统计效能。
而更好、也更复杂的解决方法,是使用多层模型( multilevel models,又称分层模型 hierarchical models )。这是一类专门为具有嵌套关系的数据发展出来的统计学方法,能够把数据收集过程中的不同层次、不同单元考虑进来,而不需要提前取平均,避免了前一种方法损失效能的问题。这一类模型尤其在生物医学研究中有极为广泛的应用价值,但需要相对复杂一些的方法和技巧。
我们「说人话的统计学」专栏将会在介绍完方差分析( ANOVA )和线性回归( linear regression )之后再为大家一一道来。
精选每日一题
更多精选题可回顾历史推送文末
题目来源:临床执业医师资格考试往届真题
本期主播:冬日暖阳
参考文献
1. Gelman, A., & Stern, H. (2006). The difference between “significant” and “not significant” is not itself statistically significant. The American Statistician,60(4), 328-331.
2. Aarts, E., Verhage, M., Veenvliet, J. V., Dolan, C. V., & van der Sluis, S. (2014). A solution to dependency: using multilevel analysis to accommodate nested data. Nature neuroscience, 17(4), 491-496.
回复「统计学」可查看「说人话的统计学」系列合辑,
或点击下方标题可阅读本系列全部文章
>>> 干货 <<<
>>> 自检 <<<
>>> 番外篇 <<<
作者:张之昊
编辑:黑草乌叶