医学统计模型
条件逻辑回归
匹配病例对照里,层截距会被条件似然消掉;普通二元 logit 把配对拆开当独立行,暴露 OR 会对错人。
这篇能回答什么
条件逻辑回归(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 · 只要 diagnostic
临床工作簿还有 survival、meta。条件逻辑回归不要开生存表:那张是时间与事件,角色对不上。
步骤 2 · 造层并检查 0/1
按年龄带生成配对号。每一层扫一眼:是否同时有金标准 0 与 1。只有一侧的层会进 B 带,条件似然接近空白。
步骤 3 · 搜索「条件逻辑」
不要点「二元逻辑回归」。那张假定独立行,会把匹配当重复样本。也不要点梯度下降那张分类器。
步骤 4 · 层、金标准、标志物
层 ID、因变量金标准、自变量标志物(需要时再加预测分数)。已用于匹配的年龄不要再勾。
步骤 5 · 先读层占用再读 OR
对 64/45/225。B 若接近 45,先处理残缺层。条件 OR 只在层内对比上解释;不要写成「标志物使人群发病率变成几倍」。




如何阅读输出
占用表第一格是「条件逻辑回归」。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 |
| 条件逻辑回归 | 合计 | 有效样本 N | 334 |
| 条件逻辑回归 | 类别 A | 占比(%) | 19.16 |
| 条件逻辑回归 | 类别 B | 占比(%) | 13.47 |
| 条件逻辑回归 | 类别 C | 占比(%) | 67.37 |
左右滑动可查看完整表格
教学示例表在 StatsX 工作台中的计算结果口径。


阅读顺序:有效层(丢掉 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.