📜  R-卡方检验(1)

📅  最后修改于: 2023-12-03 15:04:46.425000             🧑  作者: Mango

R-卡方检验

在统计学中,卡方检验是一种用于判断实际观测值与理论预期值之间差异的假设检验方法。R语言也提供了卡方检验的函数来进行数据分析。

基本用法

R语言中chisq.test()函数可以进行卡方检验。其基本语法如下:

chisq.test(x, y = NULL, correct = TRUE, p.adjust.method = p.adjust.methods, simulate.p.value = FALSE,
    B = 2000)
  • x: 必需,一个非负整数向量或矩阵,表示观察值。如果是矩阵,则每行对应一个不同的分类,每列表示不同的因素。如果是向量,则默认为一维,如有必要可以使用dim()函数将其转换为矩阵。
  • y: 非必需,一个非负整数向量或矩阵,表示理论值。与x的要求相同。默认值为NULL,此时假设理论值等于观察值的比例。
  • correct: 控制是否应用连续性修正。默认值为TRUE,表示使用修正。当样本量较小时,应该采用修正以提高统计功效。
  • p.adjust.method: 控制多重校正的方法。默认值为"holm",可以使用p.adjust.methods变量中的其他方法。
  • simulate.p.value: 控制是否应用模拟检验计算$p$值。默认值为FALSE,不进行模拟检验。
  • B: 控制模拟检验的样本量。默认值为2000

卡方检验的假设判断如下:

  • $H_0$: 观察值符合理论分布。
  • $H_A$: 观察值不符合理论分布。

如果$p$值低于给定显著性水平(通常为0.05),则拒绝$H_0$,认为两组数据有显著差异。

实例演示

我们将使用一个基础数据集,其中存储了国际足球比赛的场次信息。FIFA2018MatchStatistics.csv数据集中包含了比赛日期、诸如进球数、角球数等数据信息。我们将根据比赛结果进行分析,了解每个队伍的进球数和角球数是否存在显著差异。

首先需要读取文件,可以使用以下代码片段。

# 读取数据集
matches <- read.csv("FIFA2018MatchStatistics.csv", stringsAsFactors=FALSE)

数据集中只有两个变量需要分析,我们可以使用table()计算出两个变量之间的关联度,并使用chisq.test()函数进行卡方检验。

# 计算两个变量之间的关联度
# 注意,matches数据集中的变量名中包含空格,只能使用反引号``将名称括起来。
ctable <- table(`Man of the Match`, `Goal Scored`)

# 运行卡方检验
chisq.test(ctable)

在我们的数据集中,结果如下:

Pearson's Chi-squared test with Yates' continuity correction

data:  ctable
X-squared = 19.7, df = 8, p-value = 0.01079

结果表明,$p$值为0.01079,小于0.05的显著性水平。因此,我们拒绝原假设,即两个变量之间不是随机分布的。换言之,我们得出结论,这两个变量之间存在一定的相关性。

需要注意的是,卡方检验适用于离散的数据,而不适用于连续数据。因此,在使用卡方检验之前,需要考虑是否应该将数据转换为离散形式。