如何理解统计学中的“卡方分布”?
视频通过生态观察鸟类数量的实例,通俗易懂地讲解了统计学中卡方分布的定义、公式推导逻辑及应用。
UP主: 两万一张饼 · 时长: 19:30 · 🔗 B站原视频
标签: 统计学 · 卡方分布 · 数学建模 · 大学课程 · 数据分析
从鸟类观察说起:预期与实际的差异
假设你是一个自然公园的生态观察员,统计并分析鸟类数量是你每年最重要的工作之一。你所负责的区域一共有五种鸟类,你需要交给园长一个报告,报告内容是今年这五种鸟类的数量比例对比预期有没有明显的变化。这个信息对园长很重要,如果最终的报告显示确实五种鸟类的数量比例变化较为明显,那么就有生态失衡的风险,园长就需要额外划出预算邀请鸟类学家进行进一步的生态研究。如果这五种鸟类数量没有明显的比例变化,园长就可以省下这部分预算,把钱花在园林建设等其他方面。
你手头有的是近年来该区域这五种鸟类的大致占比,如右边这个表所示。这个比例可以帮助你对今年各种鸟类的数量有个大致的预估。你要做的其实就是把今年这五种鸟类的实际数量和我们根据以往比例算出来的预期数量做个对比,看看它们之间有没有偏得很离谱的情况,进而判断到底有没有发生值得警惕的变化。你的鸟类计数工具很先进,没到一周你就得到了该区域五种鸟类实际的数量。通过加和,你得到这次观察的鸟的数量总和为3032只。如果按照预期这五种鸟类的比例来算,它们预期数量应该为下图所示。
如何设计衡量差异的统计量?
你有了这五种鸟类的实际数量以及预期的数量,如果让你设计一个统计量来有效地描绘这两种数据的不同,你该如何设计呢?其实最直观的方法就是计算出各个种类鸟类实际数量和预期数量的差值。像这个表中所示,我们有了差值,如何设计一个整合这些差值的统计量呢?如果我们简单地把这些差值加和行不行?显然不行,因为这里有正有负,正负抵消得到统计量的大小就无法真实地反映观测和预期数量之间差距的大小。
那为了避免正负值之间的抵消,我们还能如何设计这个统计量,把差距都当做正的来对待呢?好像差值的绝对值的加和可以,差值的平方和也可以。我们该选哪个呢?毕竟我们生活在一个高斯的世界,所以我们沿用高斯分布中计算方差的习惯,用观测值和预期值的差值的平方和来定义我们这个统计量。为什么呢?说白了是因为它好用、顺手,还习惯了。当然最直接的理由是,绝对值加和它不好算,尤其是在后边我们需要做优化、要推导公式的时候,绝对值是个东西它不听话,在数学上不好处理。而平方就不一样了,它是光滑的、可导的,在很多场景下都有解析解,算起来比较顺手。更关键是我们很多时候默认误差是符合正态分布的,这时候用平方差来衡量误差不仅直觉合理,而且理论上也能推出更好的结果,就好像我们之前讲过的最大似然估计推导的方式一样。
至于如果同学有想较真这个衡量差异的统计量为什么使用差值的平方和而不是差值的绝对值加和,可以去网络搜索相关内容。我所了解的知乎相关的帖子里有很多炫技的回答,什么几何的解释、优化理论、鲁棒性全都有,可以满足大家。简单概括地说,使用差值的平方和而不是绝对值的和,可以理解成为了习惯和方便。习惯指的是它在很多常用的成熟的统计学体系中已经在使用,方便指的是一些约定俗成的大前提下,比如说欧式空间中更方便计算。
消除基数影响:卡方统计量的诞生
我们说回设计统计量衡量鸟类数量变化的话题。我们选用这两组差值的平方和来作为我们的统计量。像这样,如果我们的统计量就是这些差值的平方和,这里存在一个明显的问题,那就是这个统计量会主要受到数量众多的鸟类数量的影响。具体来说,如果鸟3有个100只左右的浮动,我们不应该去担心它,因为它本来的基数就很大,这100只的浮动相对于2000多的预期数量就是很小的变化。然而100只对于鸟2来说就是一个很大的变化,因为它一共也就只有300只左右的预期数量。
所以如果我们一视同仁地加和每一个差值的平方,其实就是在无意识地搞鸟类歧视,主流物种的声音最大,小众物种被忽略,我们设计的统计量也只会更多地反映最大鸟口数量的那个对应的鸟类的差异。那我们如何调整这个统计量才能平等地考虑到每一种鸟类的数量变化呢?我们可以采用最直观的方式来消除鸟类数量对统计值的影响,就是把每一个差值的平方再除以这类鸟的预期数量。像这样,这样一来我们比较的就是在自己体量下偏离了多少,而不是光看差多少只。再把它们加和起来作为我们最终的统计量,就可以公平对待每一种鸟类的变化了。
有了这个量化值,我们就能很客观地描述这一年各个鸟类数量与预期之间的差距有多大了。比如说同一个方式计算的量化值,今年的要比前年的小许多,如果前年的生态环境已经很健康了,那我们就可以很自信地说,今年我们也不用担心鸟类的生存状态了。因为与预期的数量的差距很小,比曾经的健康的年份那个差距还小,我们就可以很开心地去上报给领导,让他把预算拨给更需要的园区建设中。
卡尔·皮尔森与“卡方”的由来
刚刚我们大家一起设计的这个统计量,其实在1900年左右被卡尔·皮尔森最先发现并应用在衡量理论与实际值的差异中。他把计算出来这个统计量命名为 Chi-squared,因为在他手稿中这个统计量是用这个希腊字母 $\chi$ 来表示的。我们翻译过来叫作卡方,卡就是这个希腊字母的音译,方就是平方的意思。你看,千万不要说自己数学不好,皮尔森这样的先贤当年用的工具,咱不也是刚刚从零起步推导出来了吗?方法很简单,就是从问题的最基本需求入手,在手中有限的资源的基础上给出最简单的解决方案。
寻找衡量差异的“尺子”:卡方分布的引入
言归正传,我们有些同学已经发现了,就算我们有这个统计量在手中,其实我们也很难判断这个理论和实际值之间的差异到底是大是小。设想我们刚刚用的方法很大程度取决于跟之前的参考值做对比的结果。比如说我们拿今年的统计量和前年的统计量做对比,两个值相差不大,得知今年的鸟类分布变化不大。然而这个方法并不理想,我们很有可能没有足够的过去的数据点做对比。在这种情况下,如果我们有一把尺能够准确地衡量这个统计量的大小,而不去依赖其他数据来源,那对我们独立衡量这个理论与实际值之间的差异将会有很大帮助。
在我们学的统计学概念中,我们经常说的能用作尺子的东西是什么呢?对,就是那些特定的分布。比如我们学到的标准正态分布可以用来衡量 Z-score 大小,我们学过的 Student t 分布可以衡量 t 统计量的大小。如果说我们用这个叫卡方的统计量,我们也希望有一个类似的分布作为尺子,我们的问题是不是就迎刃而解了?如果真存在这个分布,那我们如果要给它取个名字会是什么呢?最直观的就叫做卡方分布吧。
这个思路是正确的。其实皮尔森在推出卡方统计量的前六七年,他把自己在概率分布领域的贡献做了个总结,叫做皮尔森分布系统。具体这个系统是做什么的相对比较复杂,我们有机会再说。不过在这套系统里面,他简单设立了有关卡方统计量的分布,这也就是卡方分布的雏形。在卡方统计量问世之后,很多先贤在相关领域前赴后继,经历了20多年,从数学的推导上完善了卡方统计量的认知,正式严谨地提出了这类分布,也就是卡方分布的定义。
卡方分布的定义与自由度
该定义是:具有自由度为 N 的卡方分布,是 N 个独立的符合标准正态分布的随机变量的平方和。这也就是我们现在所熟知的卡方分布的定义,如这个式子所示。其实这个定义出现的时候,正态分布已经火了一个多世纪,有关伽马分布的概念也差不多大几十年了。加上卡尔·皮尔森十几年的研究作为基础,这个在1920年左右问世的概念其实在当时是相当直观的,并不像教材里有关卡方分布的讲解那么突兀。相关章节的第一页甚至第一句就是这个卡方分布的定义式。
虽然列出定义式是最准确的方式,但是很多学生看到这个定义式之后就会问:为什么呀?哪跟哪?谁想到把标准正态分布平方和相加的?干嘛给它起这个名字?这个东西到底有什么用?所以刚刚在这个视频的开头部分,我换了个方式,在大的时间线上,从发现问题、搜集工具、解决问题、产生知识这个顺序来理解了卡方分布的产生,这个方式是更直观的。
如果我们仔细看这个最被大家熟知的卡方分布定义,首先这个肯定不是一个固定的分布的形状,因为它会随着自己参数变化而变化。在这里面大家觉得什么东西在这个定义式里边决定了卡方分布最终的样子呢?很直观地来说,那就是到底有几个标准正态分布在做平方和。因为你卡方分布的定义是一堆标准正态分布的平方和,那很显然,如果需要一个具体的卡方分布,有几个标准正态分布涵盖在内就是最终分布决定性的因素。这种直观的想法是对的,这个也就是定义里面提到的自由度。有几个标准正态分布在里面做平方和,就有几个自由度。
卡方分布的形状变化
我们简单来看一下不同自由度的卡方分布概率分布曲线的样子。如果只有一个标准正态分布,那么它的平方和的分布是什么样子呢?我们都知道标准正态分布长这个样子,因为标准差是1,所以从-1到1之间涵盖了分布的大部分,约占68%。也就是这个标准正态分布里随机抽取值落在-1到1之间的可能性高达68%。同理,从-2到2之间也就涵盖了95%之多。
再看这个只有一个标准正态分布平方的卡方分布,如果一个数是落在-1到1之间,那么它的平方也一定是在0到1之间,而且具有更小的绝对值。比如说你抽取的值是0.5,那么0.5的平方是0.25,所以这个卡方值也会对比这个正态分布的值更集中在0点附近靠正数这边。所以我们看到的这个由一个标准正态分布的平方构成的卡方分布的形状就是这个样的。那如果是两个标准正态分布的平方和呢?整个分布就会远离零点区域一些。更多的标准正态分布加和构成的卡方分布,主体就会更进一步地越来越远离零点附近,向更大的正值移动。
卡方检验的应用一:拟合优度检验
基于卡方分布的假设检验叫做卡方检验。卡方检验指的是一整类假设检验,它们的共同点是它们的统计量在原假设成立的条件下是符合卡方分布的。就像我们之前举的例子,我们的原假设是这个鸟类观测数量符合预期,也就是没有出现明显变化。如果这个原假设正确,那我们计算出皮尔森设计的那个统计值就应该符合卡方分布。这样如果这个统计量的数值特别大,那么就是在警告我们原假设可能是错的,我们应该更相信备择假设,也就是鸟类的分布对比理论值出现了变化。
这个让我们相信它出现了变化,这个程度有多大呢?这就要看这个 p-value 小成什么样的。如果比0.001都小了,那就是让我们别磨叽,赶快抛弃这个原假设。对假设检验和 p-value 生疏的同学可以翻看我之前的视频。这个针对鸟类分布是否符合预期的卡方检验,我们有个专有的名字叫做 Goodness of Fit Test。Goodness 是 Good 的名词形式,Good 的意思是好,Goodness 就是好的程度,好成啥样的意思。最早的翻译比较有文采,叫做优度。Fit 就是合适、合身的意思,试衣间叫做 Fitting Room,就是用来试衣服合不合身的房间。因为是要翻译得有文化一点,就成了拟合。那连起来 Goodness of Fit Test 的中文就是拟合优度检验,白话就是合适到啥程度的检验。
卡方检验的应用二与三:独立性检验与同质性检验
另外还有两种常见的卡方检验,一个叫做 Test of Independence,翻译起来叫做独立性检验;另一个叫做 Test of Homogeneity,翻译叫做同质性检验。这两个检验其实本质上比较接近,我们具体来看一下。
所谓独立性检验,用于分析两个分类变量之间是否独立。比如说我想知道看我视频的用途和性别是否独立,我可以搜集100名观众做一个频数分布表格,有两行三列。每一行代表一个性别(男女),每一列代表看我视频的一种用途(考研复习、上课没听懂、没事了解点统计看得装逼等等)。把对应的人数填进去,我就得到了这样一个表格。我感兴趣的是这些用途到底和性别有没有关系。比如说女生看视频的用途大多是集中在考研,男生则是多数在“没事了解点统计”这个 category,这就是所谓的有关系。如果哪种用途根本在男女间没啥大区别,那就是所谓的没关系,也就是独立。规范成假设检验的语言就是:零假设是两个分类变量是独立的,也就是性别和看视频的用途是互相没有关系;备择假设是两个分类变量是有关系的,不同的性别确实会有不同的看视频的用途。独立性检验的统计量也和拟合优度检验一样,是这个。所以我们套用这个公式得到这样,然后我们得到这个卡方的具体值,然后对比自由度是2的卡方分布得到 p-value。因此我们决定推翻原假设,得到看视频用途和性别有关系的结论。
所谓同质性检验,就是用来检测多个群体中分类变量的分布是否来源于同一个分布。来源于同一个分布就代表它们是一致的,也就是所谓的同质。这里的零假设就是不同群体中的分类变量分布一致,备择假设是至少两个群体中的分类变量分布不一致。举个例子,假设我们想比较三所学校 A、B、C 学生对统计课程的兴趣是否存在差异,我们可以搜集100名学生的数据填表如下。同质性检验和独立性检验的统计量的计算方法是一致的,得到的 p-value 如果小于0.05,我们就要拒绝零假设而拥抱备择假设。我们根据公式以及表格中的数据计算得到这个卡方等于24.76,对比左图中自由度为4的卡方分布的概率密度曲线,得到 p-value 是一个非常非常小的值,接近于0。所以我们得到的结论是至少有两个学校的兴趣分布不一样,这也就是我们所说的同质性检验。
频数表格中的自由度计算
其实这些检验的基本原理都是一致的:首先找出期望值和观测值,其次计算出卡方统计量,再次确定自由度,最后用这个统计量和具有该自由度的卡方分布进行对比得到 p-value,也就是比该统计量的值还极端的值的可能性的总和。
同学们可能对第三步有一定的疑惑,那我们如何确定自由度呢?对于看过我之前讲解自由度视频的小伙伴,我们可以沿用里面对自由度的理解方式。简单来说,在一个 $m \times n$ 的频数分布表格(就是 m 行 n 列的这样一个表格)中,我们一共有 $m \times n$ 个数据点。我们做均值或总数需要的花销呢,每行要估计一个均值或总数,所以每行也就要花销一个数据量;而每列其实也要做一个均值或总数的计算,每列也都需要花销掉一个数据量。然而行和列估计当中会有一个重合的点,会帮我们省掉一个花销。当我们有了所有行或者所有列的总数的时候,我们总体数据的总数就有了,我们就可以确定未计算的列或行总数。所以总花销就是 $m + n - 1$。这样我们的剩余度就可以用这个公式进行计算。
当然其他的理解方式也是可以的,比如说一张表格里在总数或边际总数确定的情况下,每行就有 $n-1$ 个值是可以自由变化的,同样每列就有 $m-1$ 个值可以自由变化,总体可以变化的总数量就是 $(m-1) \times (n-1)$。这两个式子展开之后得到的结果其实是一样的,具体理解的细节我不再赘述了。
逻辑总结:卡方分布与卡方检验
我们总结一下,这个卡方分布的重点在于它是衡量卡方检验统计量的一把尺子。而卡方检验就是在定类数据中研究两个分布的距离这样一种方法。所谓的距离可以在拟合优度、分布独立性以及同质性这三方面作为一个好用统计量的存在。所以我们再把这个逻辑链倒着说一遍:我们在衡量定类数据拟合的好坏、分布是否独立、是否相同的研究中,可以引入一个丈量距离的统计量;依靠这个统计量的假设检验叫做卡方检验;而卡方检验的最终结论依靠一个叫做卡方分布的尺子。以上便是我关于卡方分布的全部讲解,希望对你的学习有所帮助。
课后思考:人生中的“自由度”
卡方检验是对期望值和观测值差距的度量。大家有没有发现,在做卡方检验时,单拿出一个期望与观测值的差距的统计值,其实无法确定它到底是个大的差距还是个小的差距,因为不同的自由度会给我们不同的答案。如果自由度高,一个看上去挺大的差距可能也不算差距;但是自由度很低的话,一个看上去很小的差距也会很致命。
在人生的不同阶段,我们也或主动或被动地进行着理想与现实差距的衡量和反思。但是面对同样的差距,我们所能感知到的压力并不是一成不变的。一个人的自由度越高,即经验丰富、视野开阔,他对问题的理解就越全面,可能对相同的困境感知到的压力较小;而经验较少的人可能会对小问题都感到无法应对。所以在每次面对理想和现实的巨大差距时,不一定是老天不公平,也可能是你的自身自由度太低放大了眼前的困难。
不过谁都没有上帝视角,面对每一次困难都归结于自身的局限也是不现实的。所以我们能做的也只能是不满足眼前的景色,尽量去达到下一个高度。说不定很多以前称得上困难的,在它们到来时你都没了察觉。王之涣早就总结了吧:白日依山尽,黄河入海流。欲穷千里目,更上一层楼。