如何在 r 中执行 mcnemar 测试


McNemar 检验用于确定配对数据之间的比例是否存在统计显着差异。

本教程介绍如何在 R 中执行 McNemar 测试。

示例:R 中的 McNemar 测试

假设研究人员想知道某个营销视频是否可以改变人们对特定法律的看法。他们对 100 人进行了调查,看看他们是否支持这项法律。然后他们向所有 100 人播放营销视频,并在视频结束后再次对他们进行调查。

下表显示了观看视频前后支持该法律的总人数:

营销前的视频
营销后视频 支持 受不了
支持 30 40
受不了 12 18

为了确定观看视频前后支持法律的人数比例是否存在统计上的显着差异,我们可以进行麦克尼马尔检验。

第 1 步:创建数据。

首先,创建栅格形式的数据集。

 #create data
data <- matrix(c(30, 12, 40, 18), nrow = 2,
    dimnames = list("After Video" = c("Support", "Do Not Support"),
                    "Before Video" = c("Support", "Do Not Support")))

#view data
data

                Before Video
After Video Support Do Not Support
  Bracket 30 40
  Do Not Support 12 18

步骤 2:执行 McNemar 测试。

接下来,使用以下语法执行 McNemar 测试:

mcnemar.test(x,y=NULL,正确=TRUE)

金子:

  • x :矩阵形式的二维列联表,或因子对象。
  • y :因子对象;如果 x 是矩阵则忽略。
  • Correct : TRUE = 在计算检验统计量时应用连续性校正; FALSE = 不应用连续性校正。

一般来说,当表中的某些计数较低时,应应用连续性校正。通常,当单元格数量小于 5 时,通常会应用此校正。

我们将在有和没有连续性校正的情况下执行 McNemar 测试,只是为了说明差异:

 #Perform McNemar's Test with continuity correction
mcnemar.test(data)

	McNemar's Chi-squared test with continuity correction

data:data
McNemar's chi-squared = 14.019, df = 1, p-value = 0.000181

#Perform McNemar's Test without continuity correction
mcnemar.test(data, correct=FALSE) 

	McNemar's Chi-squared test

data:data
McNemar's chi-squared = 15.077, df = 1, p-value = 0.0001032

在这两种情况下,检验的 p 值均小于 0.05,因此我们会拒绝原假设,并得出结论:在观看营销视频之前和之后支持法律的人数比例存在统计差异。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注