摘要

1) 一句话总结 本文通过书籍封面与销量的具体案例,深入解析了卡方独立性检验的底层逻辑,涵盖期望频数计算、自由度(df)的几何意义及其与标准正态分布的数学联系。

2) 关键要点

  • 核心用途:卡方独立性检验用于评估两个分类变量(如案例中的“封面类型”与“销售结果”)之间是否存在统计学上的关联。
  • 期望频数 ():反映在原假设(两变量完全独立)成立时,由纯随机性产生的预期数值中心点。计算公式为
  • 卡方统计量:衡量观察频数 () 偏离期望频数 () 的程度,通过公式 计算标准化平方和。案例中计算得出的卡方值为 4.07。
  • 自由度 ():对于 2x2 列联表,由于行总计和列总计固定,数据只能在一个维度上发生联动变化,因此
  • 几何与联动意义:在 2x2 表格中,四个单元格的偏差是绑定的。在多维空间中,所有可能的表格变化都位于一条一维直线上,整个系统的偏差由单一方向控制。
  • 与正态分布的联系:当 时,单个单元格的标准化偏差(Z分数,案例中约为 -2.0179)的平方,直接等于该表格的卡方统计量()。
  • 决策标准:在显著性水平 时,卡方分布的临界值为 3.84。案例中卡方值 4.07 > 3.84(p值 0.043 < 0.05),因此拒绝原假设,认定变量间存在相关性。

3) 风险与局限性(前提假设) 文中明确指出,卡方检验结果的可靠性依赖于以下假设,若不满足则检验可能失效:

  • 观察独立性风险:样本观察结果必须独立,不能重复计算同一对象,且数据不能是配对或重复的。
  • 数据类型限制:输入数据必须是分类计数值(Categorical count data)。
  • 期望频数过小风险:所有单元格的期望频数(Expected count)通常应至少为 5,否则结果不可靠。
  • 抽样代表性风险:样本必须通过随机抽样获取,且能够代表总体。

正文

分类数据是如何转化为统计学证据的?

想象一位作家写了一本儿童读物,并同时向市场推出了两个版本的实体书,售价相同。一个版本采用了基础的封面设计,而另一个版本采用了高质量的封面设计(当然,后者的成本更高)。

在观察了一段时间的销量后,他收集到了相关数据。现在,他找到我们,想知道书籍的封面设计是否影响了销量。

从销售数据中,我们可以观察到两个分类变量:第一个是“封面类型”(高成本或低成本),第二个是“销售结果”(售出或未售出)。

现在我们想知道这两个分类变量是否相关。当我们需要寻找两个分类变量之间的关系时,通常会使用卡方独立性检验(Chi-square test for independence)。

在这种场景下,我们通常会使用 Python 来应用卡方检验,并计算卡方统计量和 p 值。

假设程序运行结果如下:卡方统计量为 4.07,p 值为 0.043(低于 0.05 的阈值)。这表明封面类型与销量之间存在统计学上的关联。

我们现在得到了 p 值,但在将其作为最终决策依据之前,我们需要理解这个值是如何得出的,以及该检验的假设前提是什么。理解这些有助于我们判断所得到的结果是否可靠。

现在,让我们试着理解卡方检验到底是什么。

通过观察数据,我们可能会发现高成本封面的书籍销量更高,因此我们可能会认为封面起到了作用。然而在现实生活中,即使封面没有任何影响,或者顾客完全是随机挑选书籍,数字也会因偶然性而产生波动。我们依然可能得到不相等的数值。

随机性总是会制造不平衡。现在的问题是:“这种差异是否大于随机性通常所能产生的差异?”

让我们看看卡方检验是如何回答这个问题的。

我们已经有了计算卡方统计量的公式:

其中:

  • 是卡方检验统计量
  • 代表行索引
  • 代表列索引
  • 是第 行第 列的观察频数(Observed count)
  • 是第 行第 列的期望频数(Expected count)

首先,让我们把注意力集中在期望频数上。在理解什么是期望频数之前,我们需要先陈述检验的假设。

原假设 (H₀)

封面类型与销售结果是独立的。(封面类型没有影响)

备择假设 (H₁)

封面类型与销售结果不是独立的。(封面类型与书籍是否售出存在关联)

那么,期望频数到底是什么意思呢?

假设原假设成立,即封面类型对书籍销量没有影响。让我们回到概率的视角。

正如我们所知,简单概率的公式为:

在我们的数据中,一本书被售出的总体概率为:

在概率论中,当我们写 时,指的是在事件 B 已经发生的情况下,事件 A 发生的概率。

在独立性假设下,封面类型和销量是不相关的。这意味着售出的概率不依赖于封面类型。也就是说:

因为 ,所以

这意味着,我们期望有 67% 的低成本封面书籍能够售出。由于我们有 500 本低成本封面的书,我们将这个概率转化为期望售出的书籍数量:

这意味着在独立性假设下,我们期望有 335 本低成本封面的书被售出。根据我们的数据表,我们可以将其表示为 。同理,高成本封面且售出的期望值也是 335,表示为

现在让我们计算 (低成本封面,未售出)和 (高成本封面,未售出)。

一本书未售出的总体概率为:

在独立性假设下,这个概率同样适用于每个子组:

将其转化为未售出书籍的期望频数:

我们在这里使用概率是为了理解期望频数的概念,但实际上我们有直接的公式来计算它们:

其中:

  • = 第 行的总计
  • = 第 列的总计
  • = 总样本量

使用公式计算:

  • 低成本封面,售出 ():
  • 低成本封面,未售出 ():
  • 高成本封面,售出 ():
  • 高成本封面,未售出 ():

两种方法得到的值是相同的。

通过计算期望频数,我们实际上是在寻找:如果我们假设原假设为真(即两个分类变量独立),数据应该是什么样子。

这里我们有 1000 本书,已知有 670 本售出。现在我们想象随机挑选书籍并将其标记为“售出”。在选出 670 本书后,我们检查其中有多少本属于低成本封面组,有多少本属于高成本封面组。

如果我们多次重复这个过程,我们会得到在 335 左右波动的数值(有时可能是 330 或 340)。如果我们取平均值,335 就成了分布的中心点——前提是这一切完全是由随机性引起的。

这并不意味着实际计数必须等于 335,而是说 335 代表了独立性假设下自然变异的中心。卡方检验衡量的是:相对于随机性下的预期变异,观察到的计数偏离这个中心值有多远。

计算偏差与卡方统计量

我们已经计算了期望频数:

下一步是计算观察频数与期望频数之间的偏差 ():

  • 低成本封面 & 售出:
  • 低成本封面 & 未售出:
  • 高成本封面 & 售出:
  • 高成本封面 & 未售出:

接下来,我们将这些差值平方。如果我们直接将原始偏差相加,正负值会相互抵消,结果为零,这会错误地暗示没有不平衡。平方解决了抵消的问题,使我们能够衡量不平衡的幅度,而不管其方向如何。

  • 低成本封面 & 售出:
  • 低成本封面 & 未售出:
  • 高成本封面 & 售出:
  • 高成本封面 & 未售出:

计算出每个单元格的平方偏差后,下一步是将它们除以各自的期望频数。这通过相对于原假设下的期望值进行缩放,对偏差进行了标准化。

  • 低成本封面 & 售出:
  • 低成本封面 & 未售出:
  • 高成本封面 & 售出:
  • 高成本封面 & 未售出:

现在,对于每个单元格,我们都计算了 。这些值代表了每个单元格对总不平衡的标准化平方贡献。将它们相加,就得到了整个表格的总体标准化平方偏差,即卡方统计量

我们得到了 4.07 的卡方统计量。我们该如何解释这个值?

计算出卡方统计量后,我们将其与显著性水平为 0.05、自由度为 1 的卡方分布表中的临界值进行比较。对于 ,临界值为 3.84。由于我们的计算值 (4.07) 大于 3.84,我们拒绝原假设。

到这里,卡方检验就完成了,但我们仍然需要理解 是什么意思,以及临界值 3.84 是如何得出的。这正是事情开始变得既有趣又有些令人困惑的地方。

自由度 (Degrees of Freedom) 与多维空间

首先,让我们理解 的含义。‘df’ 代表自由度。

从我们的数据来看,这被称为列联表(Contingency table),具体来说是一个 2x2 列联表,因为它由变量 1 的类别数(行)和变量 2 的类别数(列)定义。

我们可以观察到,行总计和列总计是固定的。这意味着如果一个单元格的值发生变化,其他三个单元格必须相应调整以保持这些总计不变。换句话说,在保持行列总计固定的情况下,表格只有一种独立的变动方式。因此,该表格有 1 个自由度。

我们也可以使用列联表的标准公式来计算自由度: 在我们的 2x2 表格中:

现在我们从数据表的角度了解了自由度的含义。但为什么我们需要计算它?

让我们想象一个四维空间,其中每个轴对应列联表的一个单元格:

  • 轴 1:低成本 & 售出
  • 轴 2:低成本 & 未售出
  • 轴 3:高成本 & 售出
  • 轴 4:高成本 & 未售出

从数据表中,我们有观察频数 (320, 180, 350, 150)。我们还计算了独立性下的期望频数 (335, 165, 335, 165)。观察频数和期望频数都可以表示为四维空间中的点。

我们已经计算了观察频数和期望频数之间的差值 (-15, 15, 15, -15)。我们可以将其写为

在观察数据中,假设我们将“低成本 & 售出”的计数从 320 增加到 321(+1 的变化)。为了保持行列总计固定,“低成本 & 未售出”必须减少 1,“高成本 & 售出”必须减少 1,而“高成本 & 未售出”必须增加 1。这产生了模式

在固定边缘总计的 2x2 表格中,任何有效的变化都遵循这个相同的模式乘以某个标量。

在固定的行列总计下,存在许多不同的 2x2 表格。当我们将每个表格表示为 4 维空间中的一个点时,这些表格都位于一条一维直线上。我们可以将期望频数 (335, 165, 335, 165) 视为这条直线的中心,记为点 E。点 E 位于直线的中心,因为在纯随机(独立性)下,这些是我们期望观察到的值。

然后,我们测量观察频数偏离这些期望频数有多远。我们可以观察到直线上的每个点都是: 其中 是任意标量。

从我们的观察数据表中,我们可以将其写为:

向量 定义了一维偏差空间的方向,我们称之为方向向量。标量值只是告诉我们在这个方向上移动多远。每个有效的表格都是通过从期望表格开始,并沿着这个方向移动一定距离而获得的。

随着 的变化,表格只沿着一条直线在一个方向上移动。这意味着偏离独立性的整个偏差由单个标量值控制。由于所有表格都位于一条一维直线上,系统只有一个独立的移动方向。这就是为什么自由度等于 1。

卡方分布与正态分布的联系

现在我们了解了自由度的含义,让我们探讨一下卡方分布到底是什么。

回到我们的观察数据,我们总共有 1000 本书。其中 670 本售出,330 本未售出。在独立性假设下,我们可以想象从 1000 本书中随机抽取 670 本并标记为“售出”。然后我们计算这些被选中的书中属于低成本封面的数量,记为

如果我们多次重复这个实验,每次重复都会产生一个不同的 值,比如 321, 322, 326 等等。如果我们将这些值绘制出来,我们会观察到这些值聚集在 335 周围,形成一个钟形曲线(正态分布)。

在我们的观察数据表中,“低成本 & 售出”的数量是 320。在独立性假设的分布中,像 334 和 336 这样的值很常见,而 330 和 340 就不太常见了。像 320 这样的值似乎相对罕见。

但我们如何准确判断呢?我们需要将 320 与分布的中心(335)进行比较,并考虑曲线的宽度。曲线的宽度反映了我们在独立性下预期的自然变异程度。为此,我们需要进行标准化

  • 期望值:
  • 观察值:
  • 差值:
  • 标准差:

计算 Z 分数:

所以,320 大约比平均值低两个标准差。

如果我们对每一个可能的 进行标准化,那么上述 的抽样分布就会转化为均值为 0、标准差为 1 的标准正态分布。

我们已经知道 320 的 Z 分数约为 -2.0179。我们之前也计算出卡方统计量等于 4.07。 现在让我们将 Z 分数平方: 这(在舍入误差范围内)等于我们的卡方统计量!

如果一个标准化偏差服从标准正态分布,那么将该随机变量平方,就会将分布转化为自由度为 1 的卡方分布。

由于平方消除了符号,Z 的正值和负值都映射为正值。结果,对称的钟形分布被转化为右偏分布,即自由度为 1 的卡方分布。

当自由度为 1 时,我们实际上不需要通过平方来进行决策。因为只有一个独立的偏差,我们可以对其进行标准化并执行双侧 Z 检验。平方只是在 时将该 Z 值变成了卡方值。

然而,当自由度大于 1 时,存在多个独立的偏差。如果我们只是将这些偏差相加,正负值会抵消。平方确保所有偏差对总偏差产生正向贡献。这就是为什么卡方统计量总是对标准化偏差的平方求和,尤其是在 df 大于 1 的情况下。

假设检验与结论

现在让我们使用这个分布来进行假设检验。

  • 原假设 (H₀):封面类型与销售结果是独立的。
  • 备择假设 (H₁):封面类型与销售结果不是独立的。

常用的显著性水平是 。这意味着只有当我们的结果落在原假设下最极端的 5% 结果范围内时,我们才拒绝原假设。

的卡方分布中,临界值为 3.84。3.84 右侧的面积等于 0.05,代表拒绝域。由于我们计算的卡方统计量 (4.07) 超过了 3.84,它落入了拒绝域。

这里的 p 值为 0.043,即 4.07 右侧的面积。这意味着如果封面类型和销量真正独立,观察到如此大差异的概率只有 4.3%。

这些结果是否可靠取决于卡方检验的假设前提:

  1. 观察的独立性:一本书的销售不应影响另一本书。同一个顾客不应被多次计算,观察结果不应配对或重复。
  2. 数据必须是分类计数
  3. 期望频数不应太小:所有单元格的期望计数通常应至少为 5。
  4. 随机抽样:样本应能代表总体。

因为所有假设都满足,且 p 值 (0.043) 低于 0.05,我们拒绝原假设,并得出结论:封面类型与销量在统计学上是相关的。

2x2 列联表的联动效应

此时,你可能会对某件事感到困惑。

我们花了很多时间关注一个单元格,例如售出的低成本书籍。我们计算了它的偏差,对其进行了标准化,并以此来理解卡方统计量是如何形成的。但是其他单元格呢?高成本书籍或未售出的书籍呢?

需要认识到的重要一点是,在 2x2 表格中,所有四个单元格都是相连的。一旦行总计和列总计固定,表格就只有 1 个自由度。

这意味着计数不能独立变化。如果一个单元格增加,其他单元格会自动调整以保持总计一致。正如我们之前讨论的,由于固定总计施加的约束,这些点不会向各个方向散开,而是沿着一条直线排列。

偏离独立性的每一次变动都只沿着那一个方向移动。因此,当一个单元格偏离其期望值(比如 +15)时,其他单元格会自动由表格的结构决定。整个表格是一起移动的。偏差不仅仅关于一个数字,它代表了整个系统的移动。

当我们计算卡方统计量时,我们对所有单元格用观察值减去期望值,并标准化每个偏差。但在 2x2 表格中,这些偏差是绑定在一起的,它们作为一个协调的结构移动。

这意味着,检查一个单元格就足以理解整个表格偏离独立性有多远,以及了解其分布情况。


学习永无止境,关于卡方检验还有很多值得探索的地方。希望这篇文章能让你清晰地理解卡方检验的本质。在未来的文章中,我们将讨论当假设不满足时会发生什么,以及为什么卡方检验在这些情况下可能会失效。

(注:我的时间序列系列文章暂时停更了一小段时间。我意识到有几个主题需要更清晰的阐述和更仔细的思考,所以我决定放慢脚步,而不是盲目推进。我很快会带着更完整、更直观的解释回归该系列。感谢阅读!)

关联主题