数据到手了,第一件事先干啥?| 说人话的统计学

来源:互联网 发布:iphone音效增强软件 编辑:程序博客网 时间:2024/04/20 12:56

2015-11-19 张之昊    协和八

让我们的脑海里浮现这么一幅画面:

经过一番(bu)(kan)(hui)(shou)的努力——

也许是焚膏继晷与小白鼠的斗智斗勇,

也许是分子实验室里寂寞的离心和电泳,

也许是对病人的软磨硬泡,

也许是病例故纸堆里的上下求索——

反正莫问出处吧,现在你的数据已经收集完毕,乖乖地呆在电脑硬盘的一个Excel文件里了,那么,

请问你接下来要做什么呢?

也许你正觉得自己像个踌躇满志的统帅,手下那可是一众精兵强将,比如说什么t检验将军啦、线性回归元帅啦,营帐里还坐着互相有点不太待见、但都身怀绝技的费希尔和贝叶斯两位军师(戳这里回顾上一集《贝叶斯vs频率派:武功到底哪家强?》),个个磨刀霍霍,就只等着你大手一挥,一拥而上把你的Science文章手到擒来?

这时请容我在你耳边幽幽地说一句:

且慢且慢。

孙子有云:“知己知彼,百战不殆。”在大战三百回合之前,千万别忘了先打量打量你的数据到底长什么样子。可不要小看这似乎没啥技术含量的一步,要是缺了它,十次里有九次咱们可是要阴沟翻船的。今天我们就来聊一聊为什么需要它,以及具体有哪些需要关注的地方。

在正式地对数据进行严格的统计学检验之前,获取和检查数据基本信息的步骤,统称为“探索性数据分析”(exploratory data analysis),也有人把它叫做“预处理”(pre-processing)。

这里的“探索性”,意思是说,此时的分析并不是为了验证某个特定的假说或者拟合具体的模型,而是要对数据的总体情况有一个基本的了解。

为什么说探索性数据分析是必不可少的呢?

它主要可以实现下面几个目标:

一、发现数据中可能存在的错误和遗漏。大家都知道,数据的收集和整理是一件繁杂的工作,有时这个过程可能耗时很长,又或者是团队合作的结果。在这样的情况下,出现各种各样的错误、纰漏在所难免。我们除了在数据收集过程中要采取预防措施、尽量减少错误以外,还需要通过探索性数据分析进行最后的把关

二、掌握数据的基本情况,获得进一步分析的灵感。通过探索性数据分析,我们可以初步了解数据的面貌,比如取值范围、中值、分散程度等。这些信息还可以提示我们数据中也许存在的关联,让我们发现也许之前未曾考虑过的有趣的现象,指引我们形成具体的科学假设

三、检查我们想要执行的统计检验的假设是否成立。许多统计检验对数据本身有一定的要求(尤其是它们的分布形态),只有当我们的数据满足这些假设时,统计检验的结果才有意义。探索性数据分析可以帮助我们做出初步的判断,排除不适用的统计检验

不同的数据类型

上面说了探索性数据分析的重要性,我知道你也许还有些云里雾里。别着急,我们马上就会讲到探索性数据分析的具体方法,到那时我们就能更清楚地了解其作用了。

不过,我们需要先讲一讲数据可以分为哪些类型,因为不同类型的数据需要用到不同的探索性分析方法

最简单、但又最重要的数据类型有两种,离散型数据(discrete data)和连续型数据(continuous data)。

离散型数据本质上是一种分类。最典型的例子,就是性别、种族、职业、教育程度等。在多数情况下,离散型数据并没有具体的数值(比如性别中的男和女),或者虽然形式上由数值表示,但数值本身并没有明确的意义(比如用邮政编码来记录受试者居住的地域)。

你也许会意识到,对于有些离散变量来说,不同的分类是有某种顺序关系的,比如说教育程度可以从低到高排列,而有些离散变量并没有这种顺序,比如说某个基因的基因型。这两种情况分别称为有序变量(ordinal variable)和名义变量(nominal variable)。

那么连续型数据呢?顾名思义,连续型数据的数值有具体的科学意义,并且可以在数轴上的某个范围连续取值。如果不受测量精度的限制,它在理论上可能的取值是无限多的。比如身高、体重、血糖浓度、肾小球滤过率等。有些数据理论上并没有无限多的取值(比如人口只能取整数,商品的价格最高的精度只能是最小币值),严格来说应该是有序离散变量,但由于它们可能的取值足够繁多,因此在实际处理时当成连续型数据更加方便。

探索性数据分析:离散型数据

要对离散型数据进行探索性分析,最简单、最有效的方法是算出一个包含所有情况的频数(或频率)表

用性别来做一个最简单的例子,我们可以用软件很容易地算出数据中“性别”这个变量的所有不同情况的数量以及百分比。这能够给我们提供哪些信息?

首先,我们可以很快了解数据中男女性的比例,还可以看到是否有异常的数据点出现。假设我们都用中文“男”“女”来标注受试者的性别,那么性别变量应该只有这两种情况。如果我们不清楚部分受试者的性别,则还会有第三种情况。但是,如果你在频数表中发现了还有一个类别“M”,那么很可能是在录入个别受试者的数据时不小心打了英文。

其次,如果我们的研究中需要对男女性受试者进行比较,根据频数的信息,我们还可以考虑当前数据是否能够满足我们的需要(男、女性的数量是否都足够多,两者数量比例如何等)。

如果你自认为是一个视觉动物,也可以选择绘制饼状图(pie chart,如下图),它展示的信息与频数(频率)表是完全相同的。


集中趋势和展布

相比起离散型数据,连续型数据往往能提供更多的信息,因此探索性数据分析的内容和方法也更复杂一些。对于一个连续性变量,每一个数据点可能都有不同的取值。在这些纷繁复杂之中,我们首先想知道的自然是大势所趋——我们感兴趣的整个群体平均而言是多大一个数?用高大上的统计学术语来说,这叫做集中趋势(central tendency)。

不必被术语吓到,回想一下初中甚至小学时学过的最初级的统计学知识,其实不就是平均数(mean)嘛! 不错,算术平均数(arithmatic mean)是对集中趋势的最常用的描述。但是,别忘了平均数还有一个兄弟,叫做中位数(median)。中位数的计算,是把该变量所有取值从小到大(或从大到小)排序,取最中间的一个(例如总共有21个数,则取排行第11的)。如果样本量是偶数,则取中间两个数的平均。换句话说,在数据集里,恰好有一半的数据点比中位数大,而另一半的数据点比它小。

许多人都会对中位数有些嫌弃,因为它不像算术平均数那样有一个固定又简单的式子。为什么我们还需要它?相比起算术平均数,中位数有一个突出的优点:根据它的定义,它就是所有数据点里最中不溜秋的一个,所以它有一种稳如泰山的性格(统计学中称为稳健性,robustness)。

比如说,如果有人算了算现任上海籍全国政协委员的身高平均值,很可能会得到一个比一般人的身高要大的一个数。难道长得高更容易当选全国政协委员?不是。这个平均值只是个假象,因为全国政协委员里面的上海人里有个姚明。在存在极端值的情况下,中位数比算术平均值更能反映样本的普遍水平,因为算术平均值很容易受到极端值的影响,而中位数则不然。

与此类似的是,如果我们感兴趣的变量分布不对称时,中位数和算术平均数也会有比较大的差别。最经典的例子是个人收入,这个数字是有下限的(零),然而却是上不封顶(几天前的那个晚上广大剁手党又给马云同志做了多少贡献?),所以算术平均往往会被最大的那一小撮数据点拉高。因此,我们如果想从人均收入里推断一个国家或地区普通居民的经济情况,可能就不太准确了。这个时候该找谁?不错,就是中位数!

集中趋势只是数据中所蕴含信息的一个部分,要得到进一步的知识我们还需要知道数据的波动或发散程度,也称为展布(spread)。

我们为什么要关心数据的波动程度呢?集中趋势能让我们靠近表面以下的本质规律,但是展布却告诉我们这一本质表现得有多稳定。设想一下,两个程度相当的学生,一个四平八稳,另一个则是一把神经刀,一会儿超常发挥一会儿大跌眼镜,他们俩进高考考场时的心态必然不一样吧?

展布有几种常见的表示方式。其一是样本方差(variance),它的公式是


也就是说,取每个数据点与平均值之差的平方(可以将其视为各数据点到平均值的“距离”),并把它们都加起来然后除以n-1。

这个定义并不难理解,无非只是把各个数据点与中心的偏离程度汇总起来而已。至于为什么除的是n-1而不是n,涉及到稍微复杂一些的理论,我们暂时先不深究。由于平方的存在,方差的量纲也带上了平方(例如血压的方差的单位就成了毫米平方汞柱)。为了让量纲和原来的数据一致,我们可以给样本方差开个根号,这也就是大家常见的标准差(standard deviation)了。

聪明的你一定会想到,方差和标准差都有和算术平均数一样的毛病,就是容易被极端值带跑。那么有没有像中位数那样的稳健的表示展布的量呢?沿用寻找中位数的思路,我们把所有数据点从小到大排列,并且分成样本量相等的四块。那么,这四块之间就会产生三个分界点(称为四分位点,quartile),从小到大分别用Q1, Q2, Q3表示(见下表)。


如果我们取Q3和Q1之差,那么这就是四分位差(interquartile range),也称为内距。由于四分位差不考虑首尾两端的数据点,因此,它是一个不容易受极端值干扰的表示展布的统计量。

箱线图和频率直方图

上面讨论的这些统计量,可以很方便地用图形来表示。其中一种选择是箱线图(boxplot),它汇集了中位数、四分位差以及一些其他信息,能够使我们对样本的分布有一个直观的了解,也可以让我们快速发现数据中可能存在的错误(例如因为数据录入或单位错误导致的异常值)。

它之所以被称为箱线图,是因为它用一个“箱子”来表示我们的数据中最靠中间的一半(即Q1和Q3之间的所有数据点),而用箱子上下的两根“胡须”来表示数据的上下限范围。箱线图的画法以及含义见下图。


不难看到,箱线图提供了相当丰富的信息,但仍然不是全部。比如说,箱子里那50%的数据是怎样分布的?我们无法在箱线图上得知。这时,我们需要请出探索性数据分析的最大杀器——频率直方图(histogram)。

频率直方图是对样本数据分布状况的一种可视化的展现方式。它最初来源于大家在中学都听说过的高尔顿钉板(下图)。

我们可以把我们的每一个数据点想象成一个从上方以某种规律落下的小球(当然不一定像高尔顿钉板那样),那么频率直方图描绘的就是落到下方不同区域的球的数量。

要画出一张频率直方图,首先要将变量的整个取值范围划出若干区间(通常等距)。比如说,我们有一个样本,其中受试者体重的最小值和最大值分别是48公斤到73公斤,如果以5公斤作为组距(bin),那么我们可以把整个体重的范围分成[48,53], [53, 58], [58,63], [63, 68], [68,73]这些区间。然后以体重为横坐标,受试者的数量除以组距为纵坐标(这样每个矩形的面积就是该区间内受试者的数量),画出受试者在这些区间中的分布。

频率直方图可以让我们对样本的整体分布一目了然,得到分布形态、对称程度等关键信息(见下图)。频率直方图一个关键的地方,在于区间数量的确定:区间数量太少的话,频率直方图过于粗略,会掩盖真实的分布;区间数量太多,则变得过于琐碎,不容易看出分布的大趋势。区间数量多少合适,取决于样本量的大小和数据的具体分布情况,在实际应用时一般都要通过反复尝试才能获得比较好的选择。


要注意,千万不要把频率直方图和另一种常见的统计图——条形图(bar plot,或称柱状图)混为一谈。频率直方图呈现的是某个连续变量的整体分布情况(在不同取值范围里出现的次数多少),而柱状图描绘的是不同组别或个体的某一种用连续变量来表示的性质。因此,频率直方图(下图右)的横轴必然是该变量本身,而且必须覆盖这个变量取值的整个范围,矩形的高度表示的是落在对应区间的数据点的个数(或个数除以区间宽度);而条形图(下图左)的横轴则是某个分类(如组别、个体、年份等),矩形的高度则是这些分类各自的某个连续变量的值。

探索性数据分析的方法很多,这里介绍的只是其中最常用、最重要的一小部分。但是,万变不离其宗,不论用哪种方法,我们的目的都是要管中窥豹,尽可能全面地了解手上数据的情况。千里之行,始于足下,不管你要做怎样的数据分析,都别忘了这关键的第一步哦!

参考文献:Seltman, H. J. (2012). Experimental design and analysis. Online at: http://www. stat. cmu. edu/, hseltman/309/Book/Book. pdf

2015-11-19张之昊协和八
原创粉丝点击