医学统计模型
配对卡方检验
盯住同一对象两次二分类判定里换边的人,用 McNemar 比较两种方法或前后状态的边际阳性率。
这篇能回答什么
配对卡方(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 · 上传表格
打开工作台,将 Excel / CSV / JSON 拖入上传区。宽表一行一个对象,两列配对 0/1。单文件不超过 20 MB。
步骤 2 · 查看画像与质量
确认两列都是二元定类,缺失成对出现的情况可接受。不要把就读年级这种多分类当作其中一列。
步骤 3 · 选择「配对卡方检验」
在算法目录搜索「配对卡方」或 McNemar,点选配对卡方检验,不要点成普通卡方。
步骤 4 · 指定成对列并运行
分析变量勾选前测与后测两列(或方法 A / 方法 B)。点击运行分析。
步骤 5 · 阅读结果
先找出不一致对 b、c,再看 McNemar 统计量与 p。一致对只用于描述符合率,不用于「哪种方法阳性率更高」。




如何阅读输出
把类别 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 |
| 配对卡方检验 | 合计 | 有效样本 N | 211 |
| 配对卡方检验 | 类别 A | 占比(%) | 33.65 |
| 配对卡方检验 | 类别 B | 占比(%) | 33.18 |
| 配对卡方检验 | 类别 C | 占比(%) | 33.18 |
左右滑动可查看完整表格
教学示例表在 StatsX 工作台中的计算结果口径。


【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]. 人民卫生出版社.