数极客首页

样本分布不正态?数据变换来救场!

样本量到底要有多大, 检验才靠谱?

希望你还记得这个问题的答案——总体分布说了算!

更具体一点说,总体分布越接近正态分布抽样分布(样本的算术平均值所服从的分布)就在样本量从 1 增长到正无穷的过程中就越快趋向于正态分布。换言之,对于一个给定的样本量 ,它所对应的抽样分布就越像一个正态分布。而抽样分布的正态性越好, 检验就越准确。

你也一定知道,总体分布是看不见摸不着的,我们手头上只有样本的分布。幸运的是,只要样本量不是小到只有三五个数据点,样本分布往往能对我们认识总体分布有很大的帮助。再加上对总体数据来源的背景知识的了解,我们通常能对总体分布有多接近正态分布作出不太坏的推断。

那么问题来了,假如我们的总体分布不怎么正态,样本量也不是很大,感觉用 检验好像有点儿够呛,这时该怎么办?

数据不正态能怎么办?

第一条出路,很简单,增加样本量!曾记否, 检验是在抽样分布上进行的检验——中心极限定理说了,只要样本量越来越大,甭管那总体分布原来长啥样儿,抽样分布迟早都会变成正态分布。到了那时, 检验不就想怎么用就怎么用了嘛!

如果我只能给你这么一条建议的话,估计你和「说人话的统计学」栏目的友谊小船就要这样翻掉了:

「样本量你说增加就能增加啊?讨经费、找病人、养动物、做实验、收数据、搞分析,哪样是容易的呢?宝宝心里的苦你晓得哇!?」

我懂我懂!

告诉你一个好消息你听了一定会高兴:我们还有另外两条出路。

第二条出路,在做 检验之前,我们可以先对数据做一下变换。如果我们能把总体分布的形状动动手术,让它和正态分布更接近一些,那么抽样分布就能更快地趋近正态分布。因此,在样本量保持不变的情况下,基于新的总体的抽样分布就会变得更正态,用 检验也就没问题了。

第三条出路呢,则是更彻底的釜底抽薪之计——我们为什么要在 检验这一棵树上吊死呢? 检验要求抽样分布是正态的,有没有别的检验能干 检验的活儿,但是不要求抽样分布的正态性?甚至说,有没有别的检验可以不用抽样分布?让我们来掷地有声地回答一句:有!

今天我们就先来一起研究一下这第二条出路,学学怎么把数据变换这一招玩儿转。至于第三条出路要怎么走通,我们暂时先按下不表,留待后面几集再为大家一一道来。

怎样的数据变换会有用?

什么是数据变换(data transformation)?听起来好像挺高深,实际上没什么复杂。

举个最简单不过的例子,比如说土豪的你春节时候去了趟美国,有一天你抱着考察资本主义市场经济的目的走进一家超市,发现了你最爱吃的开心果。可是你看了看标价,脑子有点儿晕——上面用的单位是美元/磅。于是你默默地掏出了手机,把价格换算成了软妹币/斤(发现其实卖得比国内还贵!)。这其实就是一次数据变换,数字不一样了,可说的还是一件事,只不过是换了个尺度而已

广义上说,如果我们有一个样本量为 的样本样本分布不正态?数据变换来救场!

虽然我们是对样本做变换,但我们同时也改变了总体的分布,因为总体的任何一个可能的取值 x 也都搬家到了样本分布不正态?数据变换来救场!

那么我们应该选择一个怎样的函数 呢?

首先不难想到,这个函数有一个最起码的要求:它得保持原来样本里头数据的大小次序关系。也就是说,如果原来样本里 样本分布不正态?数据变换来救场!

这个道理很明显,无论是 检验还是什么别的统计方法,说来说去无非就是研究数据大小与什么因素有关。要是数据的大小都被弄乱了,那后续的统计分析也就都乱套了。

换言之,函数得是单调的

在单调性以外,函数还需要有什么性质?所谓「不忘初心」,我们得记住我们做变化最开始的目的:改善总体分布的正态性。本着对症下药的思路,我们先来看看,如果总体分布不正态,问题往往出在哪里。

我们对正态分布现在很熟悉了,它的概率分布直观上来说它有两大特征,一是左右对称,二是中间高两边低。在真实世界中收集得到的数据,中间高两边低这点往往不难满足,因为绝大多数连续变量在非常小和非常大这两头的可能性都很小(这里也有中心极限定理的作用,想想看为什么?)。但是,左右对称这一点有时候会出问题,使得左边(靠近负无穷)或右边(靠近正无穷)多出一个长尾巴。与「正态」相对,这种概率分布左右不对称的情形被称为「偏态」(skewness)

而我们的变换函数的任务,就是要想办法把总体(或样本)分布一侧多出来的尾巴缩回去。

如何对右偏数据进行变换

现在,我们需要分情况讨论一下。在实际生活中,最常见的情形是靠近正无穷的一侧有一个长尾巴(如图1左),习惯上称为「右偏」(right-skewed)「正偏态」(positive skewness)。许多人会有点儿困惑,觉得图上分布的那个峰明明是向左边负数一侧偏的,怎么叫「右偏」「正偏态」呢?要记住,当我们描述偏态的方向时,说的是分布的尾巴,而不是峰。这本身没有什么大道理可讲,就是一种约定俗成而已。

样本分布不正态?数据变换来救场!

图1 一个右偏(正偏态)的总体分布

右偏的分布之所以常见,是因为有许多变量的取值有一个明确的下界(通常是 0 )而没有上界。最典型的例子就是人均收入。首先,收入不可能是负的。其次,对于经济状况正常的社会,处于贫困状态的人相对较少,多数人都在小康水平上下浮动,这就保证了总体分布基本呈现中间高、两边低的形态。然而,总会有极少数像比尔盖茨、巴菲特那样的巨富,待在分布右侧很远的地方——而且更虐心的是,收入这事儿可是没有上限的。同样的讨论适用于许多其他情形,在生物医学中,很多变量的分布都有类似的性质,尤其是那些健康人群正常值比较小(因而峰值比较靠近下限)的生理指标。

判断样本分布正态性的两个方法——频率直方图q-q 图。快速重温一下,假设我们有一个来自图 1 左边的总体分布的样本,如果对此样本画出频率直方图和 q-q 图(图 1 中、右),可以看到频率直方图大体和总体分布相似,样本分布右侧有个尾巴,而 q-q 图中各数据点并不完全在一条直线上,这些都说明样本分布不太正态。

好了,像这样一个分布,我们应该用怎样的函数来作变换?记得我们说过,函数的最基本条件需要是单调的。为了使数据点的大小次序不会颠倒过来,我们进一步把考虑范围缩小到单调增函数。为了要把分布右侧的尾巴缩短一点,我们需要这样一个函数,它在 y 比较小的时候增长得比较快,而在 y 比较大的时候增长得慢一些。这样一来,在原来分布右边相距较远的任意两个点之间的距离就会相对变小,从而分布的偏态就能得到改善了。

回想一下中学数学,有什么常见的单调增长函数是越涨越慢的呢?不难想到,对数函数?、平方根 、甚至三次方根 等函数都具备这样的性质(图 2)。满足这样性质的函数其实有无数个,这几个由于形式简单,因此比较常用。对数变换另外还有一个优良的性质,使其成为了比较受欢迎的选择,这个性质我们会在本文末尾提到。

样本分布不正态?数据变换来救场!

图2 常见的用于右偏分布的变换函数

从图 2 中也能看到,这些变换函数对 y 较大时的压缩程度不同,变换后 f(y) 的取值范围也不同。到底哪一个效果更好(也可能效果都不好),取决于具体的问题和数据。通常的做法是尝试若干种变换函数,然后对变换后的新样本重新检验正态性(如频率直方图、q-q 图或夏皮罗-威尔克检验等方法),选择正态性最好的样本用于后续分析。

下面我们就分别用对数函数样本分布不正态?数据变换来救场!

样本分布不正态?数据变换来救场!

图3 使用对数函数对图1中的右偏样本作变换

样本分布不正态?数据变换来救场!

图 4 使用平方根函数对图1中的右偏样本作变换

如果把图 3、图 4 和前面的图 1 做比较,容易看到,这两个变换都对总体和样本的正态性起到了改善作用。不论从总体分布和频率直方图的对称性,还是从 q-q 图中数据点与直线的偏离程度来说,变换后的分布都变得更正态了。如果我们看得更仔细一点,在这个例子中对数函数的效果稍微更好一些,因为变换后总体和样本分布几乎完全是对称的,而平方根变换后分布还是有一点右偏。

要记住的是,这只是一个个别例子,我们并不能就此认为对数变换和平方根变换总能起到良好的效果。有时候,数据变换非但不能改善正态性,甚至还会引进原本没有的偏态(图 5)。因此,当我们对数据作变换时,千万不能想当然,觉得做了变换就一定能把分布给变正态了。做变换后,重新检查正态性是必不可少的步骤。

样本分布不正态?数据变换来救场!

图5 一个对数变换的不成功例子

第一列:原数据的总体分布、样本频率直方图和 q-q 图(这个分布来自上一集《只有15 个标本,也能指望 检验吗?》中的倒数第二例)。

第二列:将样本进行对数变换后,新样本的频率直方图和 q-q 图(总体分布略)。可见样本从原来的右偏变成了左偏。

另外,你也许注意到,前面讨论的几个变换函数都要求原数据大于 0。如果数据里有负数或 0 怎么办?我们只需将所有数据加上一个正的常数,使得数据全部为正即可。

如何对左偏数据进行变换

前面我们讨论了对右偏数据的变换方法,那么左偏的数据又该如何?在现实生活中,左偏的分布比右偏稍微少见一些。最经典的例子当属人或动物的寿命(图 6)。在环境条件良好的情况下,动物在较低年龄就死亡的概率很低,但是当年龄达到该物种本身生物学特性所容许的某个最高水平前后,死亡率就会大幅升高,然后再迅速降低(因为已经没有什么个体能活那么长了),因而造成分布的左偏。

样本分布不正态?数据变换来救场!

图6 人或动物的寿命的分布通常是左偏的

本图为 2010-12 年英国女性在各年龄每 100,000 人中的死亡人数的期望的分布。

图片来源:http://understandinguncertainty.org/why-life-expectancy-misleading-summary-survival

不难想到,左偏和右偏的数据互为镜像关系,因此一种转换的办法是,先把数据取个负号(为了使数据重新变回正数,往往还要再加个常数),然后就按右偏数据的办法处理。另一种解决方案则是使用增长率越来越快的一类单调增函数,如样本分布不正态?数据变换来救场!

至此为止,我们提到了许多可用于数据变换的函数,它们各有所长,我们得根据实际问题的特点按需取用。选择最合理的变换形式,不是一件容易的事。大约 50 多年前,两位统计学家兼好基友 Box 和 Cox(不要问我为什么他俩的名字是押韵的)专门为深度懒人癌患者提出了一套变换方法,称为 Box-Cox 变换,可以根据一定的标准自动找出最佳的变换函数。

数据变换的局限性

在今天这一集里,我们讨论了利用数据变换来改善正态性的方法。虽然我们是针对 检验对于正态性的要求而引出的这个话题,但是这一方法可以用在许多需要总体或样本分布满足正态性的场合,比如我们以后将会讲到的方差分析、线性回归等。正如所有科学方法一样,它并不是全能的。要用好这个工具,我们还需要对其局限性有所了解。

第一,数据变换并不能解决所有非正态性的问题。从上面的一些例子里,我们已经能看到,对于特定的某组数据,一个变换方法并不一定能把数据变为服从正态分布。有些时候,即便我们穷尽所有不同形式的函数,一个分布也不可能被转化为正态分布——比如说离散型的分布。还有一些其他的分布(比如有不止一个峰的分布),可以通过一些奇形怪状的变换函数弄成正态的,但这会不可避免地对数据带来太多的扭曲,进一步的分析也就很成问题了。

第二,对数据进行变换后,重新进行原来计划的统计检验,其意义会发生变化。比如说,我们想要比较两组数据的均值是否有差别,但是发现样本分布并不正态,于是对数据做了一个平方根变换。当我们对变换后的数据使用 检验时,我们检验的不再是两组数据均值的差别,而是在检验样本中数据平方根的均值之间的差别。虽然对所有数据开平方根后取均值仍然是对数据大体趋势的一个概括,但是仍然与变换前数据的算术平均值有着不同的意义,也失去了算术平均数的优点。对于其他更复杂的变换,我们到底是在检验什么就更加模糊了。

值得一提的是,这里有一个例外就是对数变换!我们来看看为什么。对数变换以后,新的数据的算术平均数是:

样本分布不正态?数据变换来救场!

上面的推演运用了对数运算的基本性质。在最后一步对数符号里的,被称为几何平均数(geometric mean)。和我们熟悉的算术平均数一样,它也是表示样本数据集中趋势的一个统计量。换言之,如果对进行对数变换后的数据平均值使用 检验,实际上是在对样本的几何平均数做统计推断。正是因为对数变换有相对明确的意义,它也成为了数据变换函数里比较流行的一种。

了解了数据变换的这些局限性,你一定想知道,当我们研究的问题不适于使用数据变换时,是否有其他的替代方案呢?且听下回分解。

注:文中图片未作特别说明者均为作者自绘。

来源:微信公众号 协和八(ID:pumc08) ?编辑:灯盏细辛 本文由协和八授权发布

作者:张之昊,2005年进入清华-协和临床医学八年制专业,后转入清华生物系获理学学士学位。2010年起在耶鲁大学跨院系神经科学项目攻读哲学博士学位,利用功能核磁共振技术与计算建模研究人类经济决策的脑科学基础。同时,还作为耶鲁大学StatLab统计咨询师为耶鲁师生提供数据分析、实验设计及统计学软件的咨询服务。

发表评论

评论已关闭。

相关文章