跳到主要内容

医学统计模型

配对卡方检验

盯住同一对象两次二分类判定里换边的人,用 McNemar 比较两种方法或前后状态的边际阳性率。

更新日期 2026-08-29 组间差异

这篇能回答什么

配对卡方(McNemar)回答的是:「同一批对象的两次 0/1 判定,边际阳性率是否不同」。它只使用不一致对:第一次阳性且第二次阴性(记 b),对照第一次阴性且第二次阳性(记 c)。两次都阳或都阴的人告诉你一致性,不告诉你「谁的阳性率更高」。

适合:干预前/后是否达标、两种诊断试剂对同一标本的阴阳性、评阅人甲/乙对同一份卷是否判及格。工作台可用学生问卷演示勾选路径,但真正的配对列必须是同一行对象的两列二分类,不能把男女生当成两次测量。

什么时候不该用

两组不同的人、一人只测一次,那是独立样本,应使用卡方检验,把前后拆开当分组会低估方差、p 值偏小。三次及以上相关的 0/1 用Cochran’s Q 检验。成对连续分用配对样本 t 检验或 Wilcoxon 符号秩。

如何选择方法

先问测量是否成对。成对且恰好两列 0/1 → McNemar。成对且 K≥3 个 0/1 → Cochran’s Q,显著后再两两回到本过程。不成对 → 普通卡方或卡方检验(自动选取最优求解器)。成对但是有序多分类方表,需要 Stuart-Maxwell / Bhapkar,超出本页的 2×2 McNemar。

  • 配对卡方检验:两列配对二分类;推断建立在 b、c 两格。

  • 卡方检验:两个独立定类变量的列联表。

  • Cochran’s Q:同一对象在三个及以上条件下的 0/1。

  • 配对样本 t 检验:两列成对定量,比较均值差。

输入、输出与限制

输入

统计上需要两列配对二分类(前/后,或方法 1/方法 2),一行一人。工作台在「分析变量」里勾选这两列。教学截图勾选了性别、年级、办学性质,那是演示目录操作;这三列并不是一对前后测,不能当成 McNemar 的研究设计。

  • 分析变量:最少 1 个,界面上限 20 个;McNemar 实际使用恰好两列 0/1。

  • 配对键:由行保证同一对象;不要先按性别拆成两份再交叉。

输出

教学表把配对状态收成三类:一致对、两类不一致对,并给出有效 N。真正的检验统计量只吃后两类。九格热力图不是配对四格,读图时不要套独立样本 Pearson。

产品限制

  • 界面不强制「前测 / 后测」角色名,选错列会得到无意义的不一致对。

  • 多分类列(如三年级档)不能直接当 McNemar 的 0/1。

  • 缺了其中一次判定的行不进入配对,有效 N 会小于名单人数。

  • 不一致对很少时,近似卡方变差,应看精确二项。

案例

研究问题。 同一批对象接受两次二分类判定(例如辅导前/后是否及格,或两种阅卷规则是否判通过)。要比较的是两次的阳性率,而不是把「第一次」和「第二次」当成两个独立班。

教学口径把配对状态写成类别 A / B / C:A 为一致对 71 人(33.65%),B 为先阳后阴 70 人(33.18%),C 为先阴后阳 70 人(33.18%),合计 211。B 与 C 几乎相等,换边人数互相抵消。下载学生问卷只用于走通工作台;要把真正的前后 0/1 列放进分析变量。

下载教学示例表(学生问卷)

在 StatsX 中操作

  1. 步骤 1 · 上传表格

    打开工作台,将 Excel / CSV / JSON 拖入上传区。宽表一行一个对象,两列配对 0/1。单文件不超过 20 MB。

  2. 步骤 2 · 查看画像与质量

    确认两列都是二元定类,缺失成对出现的情况可接受。不要把就读年级这种多分类当作其中一列。

  3. 步骤 3 · 选择「配对卡方检验」

    在算法目录搜索「配对卡方」或 McNemar,点选配对卡方检验,不要点成普通卡方。

  4. 步骤 4 · 指定成对列并运行

    分析变量勾选前测与后测两列(或方法 A / 方法 B)。点击运行分析。

  5. 步骤 5 · 阅读结果

    先找出不一致对 b、c,再看 McNemar 统计量与 p。一致对只用于描述符合率,不用于「哪种方法阳性率更高」。

StatsX 工作台上传含配对二分类的表格
将教学示例表拖入工作台上传区。
列画像确认两列二元定类
核对待比较的两列是 0/1,并且来自同一对象。
在目录中选择配对卡方检验
在算法目录中选定「配对卡方检验」。
为配对卡方勾选分析变量
勾选两列配对二分类后运行;勿把独立分组列当成前后测。

如何阅读输出

把类别 A 读成两次判定相同的一致对,把 B、C 读成方向相反的不一致对。A 71(33.65%),B 70(33.18%),C 70(33.18%),N=211。McNemar 的分子是 (b−c)²,本例 70−70=0,统计量接近 0:没有证据表明后测阳性率高于或低于前测。一致对再多,也不会把这个差值「拉显著」。

配对卡方检验结果表
项目类别统计量取值
配对卡方检验类别 A频数71
配对卡方检验类别 B频数70
配对卡方检验类别 C频数70
配对卡方检验合计有效样本 N211
配对卡方检验类别 A占比(%)33.65
配对卡方检验类别 B占比(%)33.18
配对卡方检验类别 C占比(%)33.18

左右滑动可查看完整表格

教学示例表在 StatsX 工作台中的计算结果口径。

配对卡方检验工作台结果表
工作台中的配对状态构成,A/B/C 人数应与上表一致。
组别与水平交叉热力图(非 McNemar 四格)
热力图是组 × 水平密度(如组 1 × 水平 C=39)。不要把它当成配对四格或独立样本交叉表。

【McNemar·不一致对】换边合计 140 人(B 70、C 70)。在「换边机会各半」的原假设下,期望各为 70。本例完全对称,不能拒绝边际阳性率相等。一致对 71 人只说明约三分之一没有换边,不能写成「两种判定表现相同」——相同与否要看 b 对 c,不是看 A。

若把这 ${n} 人拆成「前测一组、后测一组」去做独立卡方,相关被当成独立,分母里的方差会被算小,更容易得到「显著」。配对设计必须停在 McNemar(或精确二项)。热力图里组 2 × 水平 B=8 之类的浅格,与 b、c 没有对应关系。

理论与公式

配对四格:a=两次皆阳,d=两次皆阴,b=阳→阴,c=阴→阳。两次阳性率分别为 (a+b)/N 与 (a+c)/N,差值为 (b−c)/N。原假设「边际概率相等」等价于 b 与 c 来自同一二项:在 n_d=b+c 次换边中,朝每个方向的概率为 1/2。常用近似为

n_d 较小时改用精确检验:在 n_d 次试验、成功概率 1/2 下,观测到不少于 max(b,c) 次朝同一方向的双侧概率。本教学口径 b=70、c=70、n_d=140,近似与精确都会给出接近 1 的 p。一致对 a+d=71 不出现在两个公式的分母里。

注意事项

  • McNemar 比较的是边际阳性率,不是 Kappa 意义上的一致性;一致对多可以同时伴随 b、c 失衡。

  • 把配对拆成独立卡方是设计错误,软件对得上数字也救不了。

  • b+c 很小(例如小于 10)时,写论文应报精确 p,而不是只报校正 χ²。

  • 本例 b=c,不能写成「两种方法等价」——那是等价检验的问题,这里只是「没检出差异」。

  • 三列 0/1 随访不要硬两两做多次未校正 McNemar,先做 Cochran’s Q。

  • 热力图九格与配对四格不是同一张表,引用请用 A/B/C 的 71 / 70 / 70。

常见问题

参考文献

  • McNemar, Q. Note on the sampling error of the difference between correlated proportions or percentages. Psychometrika, 1947, 12(2): 153–157.

  • Agresti, A. Categorical Data Analysis. Wiley.

  • Breslow, N. E., Day, N. E. Statistical Methods in Cancer Research. Volume 1. IARC, 1980.

  • 孙振球, 徐勇勇. 医学统计学[M]. 人民卫生出版社.