跳到主要内容

医学统计模型

条件逻辑回归

匹配病例对照里,层截距会被条件似然消掉;普通二元 logit 把配对拆开当独立行,暴露 OR 会对错人。

更新日期 2026-08-29 回归

这篇能回答什么

条件逻辑回归(clogit)回答的是:「在已经按年龄带或门诊日配好的层里,暴露还能否把该层的病例与对照分开」。每一层有自己的截距 α_s,代表匹配变量和未测的层因子。条件似然只保留「这一层里,病例恰好落在谁身上」的概率,α_s 被消掉,于是你估不到「年龄本身的 OR」,也不该再把匹配变量当普通协变量塞进去。普通二元逻辑回归假定行独立,会把层内相关当成额外样本,区间偏窄,点估计混进层间对比。

教学占用按层类型切开,不是金标准阳性率。1∶1 层 A 64 人(19.16%,约 32 对),残缺层 B 45 人(13.47%,缺病例或对照,条件似然贡献接近零),1∶m 层 C 225 人(67.37%),合计 N=334。diagnostic 原文 220 行;334 是配对展开后的层占用——一对多会把对照按层重复计入人数。不要把 334 写成「金标准表有 334 个患者」。

什么时候不该用

从未匹配、行与行独立,用普通二元 logit,clogit 没有层可条件化。同一人前后两次阴阳性是配对四格,走配对卡方,不要造层 ID 去拟合条件 OR。只要粗率、不要回归,看列联表。时间到事件且有删失,改 Cox,分层 Cox 与 clogit 在离散化后有联系,但角色不同。

如何选择方法

先问设计是不是匹配。1∶1 或 1∶m 病例对照、层 ID 已知 → clogit。方便样本、没有配对 → 普通 logit。已按年龄切层只想合并 OR、协变量很少 → 分层卡方 / MH。同一受试者重复二分类 → McNemar 或 GEE,不是本页。

  • 条件逻辑回归:层 ID + 二元结局 + 层内变化的暴露;输出条件 OR。

  • 普通二元逻辑回归:独立行;可估截距与匹配变量主效应。

  • 配对卡方:2×2 配对,不放连续标志物。

  • Cox 回归:生存时间;把层当 strata 时与 clogit 有离散对应。

输入、输出与限制

输入

必须有层 ID(配对号)。结局是二元(金标准 0/1)。暴露与协变量必须在层内有变异:标志物、预测分数可以;按年龄配的话,「年龄」本身在层内近似常数,条件似然无法识别它的主效应。性别若已用于匹配,同样不要再进方程。

  • 层 ID:每一层至少应能构成病例与对照的对比。

  • 因变量:二元金标准或病例指示。

  • 暴露 / 协变量:层内有变化的列(标志物、方法A)。

输出

结果表项目列写「条件逻辑回归」。A/B/C 是层类型人数:1∶1 64、残缺 45、1∶m 225,合计 334。系数在 logit 尺度,指数化后是条件 OR,解释为「同一匹配层内,暴露高一单位,成为病例的发生比」。没有普通截距。模型检验是条件似然比,不是把 334 行丢进独立 logit 的 Wald。

产品限制

  • 整层只有病例或只有对照时,该层对条件似然无贡献;B 带 45 人就是这类残缺。

  • 匹配变量的主效应不可识别,强行放入会导致共线或系数空洞。

  • diagnostic 220 行与占用 334 不是同一口径。

  • 目录搜「逻辑」会冒出二元、多项、梯度下降,点错卡片就对错表。

案例

研究问题。 临床簿的 diagnostic 表有金标准、预测分数、方法A/B、年龄与标志物。研究者按年龄带做成 1∶1 或 1∶m 匹配,想估标志物(或方法A)与阳性金标准的关联,并且不想让「年龄越大越容易阳性」这种层间差异混进 OR。

练习打开 clinical.xlsx 的 diagnostic。结局勾金标准,暴露勾标志物,层 ID 使用你生成的配对号(按年龄带)。层占用 334:1∶1 64、残缺 45、1∶m 225。残缺层应剔除或补齐,不要指望算法「自动借一个对照」。下载后先数每层是否同时有 0 与 1。

下载临床教学工作簿

在 StatsX 中操作

  1. 步骤 1 · 只要 diagnostic

    临床工作簿还有 survival、meta。条件逻辑回归不要开生存表:那张是时间与事件,角色对不上。

  2. 步骤 2 · 造层并检查 0/1

    按年龄带生成配对号。每一层扫一眼:是否同时有金标准 0 与 1。只有一侧的层会进 B 带,条件似然接近空白。

  3. 步骤 3 · 搜索「条件逻辑」

    不要点「二元逻辑回归」。那张假定独立行,会把匹配当重复样本。也不要点梯度下降那张分类器。

  4. 步骤 4 · 层、金标准、标志物

    层 ID、因变量金标准、自变量标志物(需要时再加预测分数)。已用于匹配的年龄不要再勾。

  5. 步骤 5 · 先读层占用再读 OR

    对 64/45/225。B 若接近 45,先处理残缺层。条件 OR 只在层内对比上解释;不要写成「标志物使人群发病率变成几倍」。

上传临床工作簿以运行条件逻辑回归
临床工作簿进上传区后,切到 diagnostic。
画像中的金标准、年龄与标志物
金标准必须是二元;标志物要在层内有变异。
在目录中选择条件逻辑回归
点「条件逻辑回归」,避开普通二元 logit。
为条件逻辑回归指定层、金标准与标志物
层 ID、金标准、标志物齐了再运行。

如何阅读输出

占用表第一格是「条件逻辑回归」。A=64(19.16%)为 1∶1 层人数,B=45(13.47%)为残缺层,C=225(67.37%)为 1∶m 层,合计 334。信息几乎全部来自层内暴露差:1∶1 层里是病例与其对照的标志物之差;1∶m 层里是病例对多个对照的多项对比。B 带 45 人不应进入「有效层」叙述。

条件逻辑回归结果表
项目类别统计量取值
条件逻辑回归类别 A频数64
条件逻辑回归类别 B频数45
条件逻辑回归类别 C频数225
条件逻辑回归合计有效样本 N334
条件逻辑回归类别 A占比(%)19.16
条件逻辑回归类别 B占比(%)13.47
条件逻辑回归类别 C占比(%)67.37

左右滑动可查看完整表格

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

工作台中条件逻辑回归的层占用表
A/B/C 是 1∶1、残缺、1∶m,不是阳性/阴性/缺失。
条件优势比与层结构示意
OR 只在层内解释;完整 z、p 以系数表为准。

阅读顺序:有效层(丢掉 B)→ 条件 OR 与区间是否含 1 → 是否误把年龄写进了自变量。同一批人若拆掉层 ID 去跑普通 logit,OR 可以换符号:层间「年龄大、标志物高、阳性多」会灌进暴露系数。匹配设计的代价是:你买到了层内可比,卖掉了匹配变量的主效应。McFadden 若出现,也是条件似然口径,不能去对二元逻辑回归页那 0.0709。

1∶m 的 225 人看起来比 1∶1 的 64 更「有势」,但效率取决于层内暴露反差,不是人数本身。对照标志物几乎相同的层,贡献接近零。

理论与公式

层 s 内,个体 i 的 logit 含层截距:logit P(Y_{si}=1)=α_s+x_{si}ᵀβ。条件似然把 α_s 积掉,1∶m 时为

1∶1 时化成 logistic,协变量改成病例与对照之差:

普通 logit 最大化的是带 α 的非条件似然,并把行当作独立。匹配很细时 α_s 数量随层走,非条件 MLE 不一致(Breslow–Day / Chamberlain 的伴随参数问题);条件化是为了一致性,不是为了「看起来更医学」。本例 n=334,残缺 45 人不应进乘积。Cox 把时间离散成一层、层内恰有一例失败时,偏似然与 clogit 同构——所以 SPSS 有时用 COXREG 的 strata 来估条件 logit。

注意事项

  • 条件 OR 不是人群发病率比,也不是未匹配队列的边际 OR。

  • 匹配变量主效应不可估;写「已控制年龄」即可,不要报年龄的条件 OR。

  • 残缺层 45 人应剔除或重新配对,不要当有效 N 的一部分讲故事。

  • 过度匹配(把暴露的后果也配进去)会挡住真效应。

  • 统计显著仍不是「标志物导致金标准阳性」。

常见问题

参考文献

  • Breslow, N. E., Day, N. E. Statistical Methods in Cancer Research: The Analysis of Case-Control Studies. IARC.

  • Chamberlain, G. Analysis of Covariance with Qualitative Data. Review of Economic Studies.

  • Hosmer, D. W., Lemeshow, S., Sturdivant, R. X. Applied Logistic Regression. Wiley.

  • Prentice, R. L., Breslow, N. E. Retrospective Studies and Failure Time Models. Biometrika.