「一致率 90%,kappa 0.44」——同一份编码,换个患病率就换个结论
【锚点】这一篇只钉一个判断:Cohen’s kappa 不是「校正后的一致率」,它是一个比值——分子是超出运气的观察一致,分母是「1 减去运气」,而「运气」由样本的边际分布决定,不由编码员的水平决定。所以同一个 90% 的一致率,可以读出 0.44,也可以读出 0.80。
【显式】两个构造,各 100 个单元、两名编码员、二元标签: · 场景 A(不平衡):A 判 90 正/10 负,B 判 90 正/10 负;两人在 85 个正例 + 5 个负例上一致 → Po = 0.90。Pe = 0.9×0.9 + 0.1×0.1 = 0.82。kappa = (0.90−0.82)/(1−0.82) = 【0.444】。 · 场景 B(平衡):A 判 50/50,B 判 50/50;一致 45+45 → Po = 0.90。Pe = 0.5×0.5 + 0.5×0.5 = 0.50。kappa = 0.40/0.50 = 【0.80】。 两人犯的错一样多(都是 10 个单元不一致),原始一致率一模一样,kappa 差了一倍。Landis & Koch 那张表把 0.41–0.60 叫「中等」、0.61–0.80 叫「高度」——同一行为被分进两个形容词。
【隐式】机制:Pe 是「两人各自按自己的边际分布随机扔标签,碰巧一致的概率」。类别越不平衡,碰巧一致越容易(0.82 vs 0.50),留给 kappa 的可用空间 (1−Pe) 就越小。这就是 Feinstein & Cicchetti (1990, J Clin Epidemiol) 命名的 prevalence paradox;Byrt、Bishop & Carlin (1993) 把它拆成 bias 与 prevalence 两个索引,并给出 PABAK。
【细微】三个常被漏掉的连带事实: 1. 把「阳性」重定义成「阴性」,kappa 不变(对称);但把抽样改成病例对照(人为 50/50),kappa 会大涨。所以【kappa 不可跨研究比较】,只可在同一边际下比较。 2. 「kappa ≥ 0.7 达标」这条线来自 Landis & Koch (1977) 一篇综述里的措辞,没有任何决策论推导。把它写进预注册,是把惯例当成了效度。 3. 连续变量上是同构的错误:Pearson r 对平移和缩放不变——一个编码员永远高 10 分,r 仍是 1.00。要一致性就用 ICC 或 Bland–Altman 的 limits of agreement,别拿相关性冒充一致性。
【极难发现】反直觉的那一层:kappa 的偏倚方向是【系统性保守】。它倾向于低估真实一致,于是会制造假的「编码方案不可靠」结论。如果你的预注册写着「kappa < 0.6 则修改编码本」,那么在稀有事件(撤稿、数据缺失、伦理违规)上,你会系统性地把好编码本改坏——而且永远看不到这个错误,因为你没有留出边际分布。这是选择偏差藏在信度指标里的形态。
【数据可视化】把 kappa 画成患病率 p 的函数(固定真实准确率):得到的不是平线,是一条倒 U——p=0.5 处最高,向两端塌陷。这张图比任何文字都能说服审稿人「你的 kappa 里有一半是 p 的函数」。
【流程节点链路】读到 kappa → 查标签边际分布 → 若 max(p, 1−p) > 0.8 则 kappa 不可单独解读 → 报告完整 2×2 混淆矩阵 + Po + kappa + PABAK 或 Gwet’s AC1 → 预注册里声明用哪个指标、阈值从哪来 → 才允许下结论。
【可操作】下次审稿看到 kappa,问三件事:边际分布是什么?原始一致率 Po 多少?2×2 表能不能给?三个都答不上来的 kappa,是一个没有分母的比值。
【值得辩论】如果 kappa 在稀有事件上系统性保守,而稀有事件恰恰是最需要可靠编码的那一类,我们该不该在预注册里干脆禁用 kappa、改用 Gwet’s AC1 或直接报 Po + 混淆矩阵?还是说,保守的代价小于换指标带来的不可比?







0 评论