跳至主要内容

使用 R 进行列联分析

在本教程中,您将借助示例了解“列联分析”或“卡方独立性检验”的工作原理,以及如何使用 R 高效地完成该检验。
· 6分钟 阅读

使用 AI 探索

列联分析是一种假设检验,用于检验两个分类变量是否相互独立。通俗地说,我们在问:“如果已知一个变量的取值,能否预测另一个变量的取值?”如果答案是可以,则说明所讨论的变量并不独立;如果答案是不可以,则可以认为它们是独立的。该检验使用列联表,因此称为“列联分析”。它也被称为“卡方独立性检验”,因为其检验统计量服从卡方分布,且用于检验两个分类变量是否独立。

该检验的原假设为两个变量相互独立,备择假设为两个变量不独立。

让我们通过一个示例来理解“列联分析”或“卡方独立性检验”。

假设我们想知道运动偏好是否与性别独立。于是,我们分别询问了一百名男性和一百名女性,在射箭、拳击和自行车这三项运动中更喜欢玩哪一项,并将得到的数据汇总在下表这个双向表中。

Contingency Analysis using R

上表称为观测表,因为其中包含的是实际观测到的频数。

卡方独立性检验通过比较观测频数与期望频数来进行。因此,我们的下一步任务是由观测表推导出包含期望频数的期望表。期望表表示在两个分类变量彼此独立时,我们预期该双向表应呈现的样子。根据概率论,若两个事件独立,则其联合概率等于各自边际概率的乘积。我们将用这一思想计算六个单元格各自的期望频数。先来计算第一个单元格的期望频数。首先,通过“女性的概率(100/200)×偏好射箭的概率(45/200)”得到联合概率。得到联合概率(100/200 × 45/200)后,再乘以样本量(200),即可得到第一个单元格的期望频数,即 22.5。其余五个单元格的期望频数可用同样方法计算。下表即为在性别与运动偏好相互独立时我们希望看到的表。

Contingency Analysis using R

现在我们既有期望频数,也有观测频数,接下来要做的是检查观测频数与期望频数的差异有多大。为此,我们需要计算一个称为卡方检验统计量的量,因为它服从卡方分布。下面给出了计算卡方检验统计量的公式。

Contingency Analysis using R

从上式可以看出,卡方检验统计量的取值可以为 0(当观测频数与期望频数完全一致时),但不可能为负。因此,卡方独立性检验是单尾检验。

利用上述公式,让我们计算本例的卡方检验统计量,这也称为检验统计量的观测值。

Contingency Analysis using R

现在需要决定是否拒绝原假设。我们可以通过将检验统计量的观测值与其临界值比较,或查看 p 值来作出决策。如果检验统计量的观测值超过其临界值,或 p 值小于等于显著性水平,则可拒绝原假设,并认为两个分类变量之间存在统计学意义上的关系,即它们不独立。若已知显著性水平(通常为0.05)和自由度,我们可以从卡方分布表中查到临界值。显著性水平是拒绝真实原假设的概率。对于具有 r 行、c 列的表,自由度可按以下公式计算。

Contingency Analysis using R

因此,在本例中,我们的自由度为2。

Contingency Analysis using R

从下表可以看到,当显著性水平为0.05且自由度为2时,检验统计量的临界值为5.99。

Contingency Analysis using R

由于检验统计量的观测值大于其临界值(19.798 > 5.99),我们可以拒绝原假设,得出结论:运动偏好不独立于性别。

现在来看看如何使用 R 编程语言进行卡方独立性检验

使用内置函数chisq.test()即可非常轻松地完成卡方独立性检验。

以下为观测表。

observed_table <- matrix(c(35, 15, 50, 10, 30, 60), nrow = 2, ncol = 3, byrow = T)
rownames(observed_table) <- c('Female', 'Male')
colnames(observed_table) <- c('Archery', 'Boxing', 'Cycling')
observed_table
##        Archery Boxing Cycling
## Female      35     15      50
## Male        10     30      60

要进行检验,我们需要将chisq.test()函数应用于观测表。

X <- chisq.test(observed_table)
X
##
##  Pearson's Chi-squared test
##
## data:  observed_table
## X-squared = 19.798, df = 2, p-value = 5.023e-05

从上述结果可以看到,p 值小于显著性水平(0.05)。因此,我们可以拒绝原假设,得出结论:这两个变量(性别与运动偏好)不独立。

如果我们想查看期望表,也可以这样做。

X$expected
##        Archery Boxing Cycling
## Female    22.5   22.5      55
## Male      22.5   22.5      55

希望您喜欢这篇文章。若您想继续学习 R,可参加 DataCamp 的Statistical Modeling in R (Part 1)课程。

主题