临床医学与生存分析
Cox 比例风险回归
评估一个或多个变量对生存时间影响的半参数回归模型,支持按分组变量进行分组独立建模对比。
这篇能回答什么
Cox 比例风险回归回答的是:「在处理删失的前提下,某个协变量每变化一单位(或相对参照水平),瞬时风险变为原来的多少倍」。它不需要指定基准生存的参数形式,只估计协变量在风险函数上的乘积效应(风险比 HR)。HR > 1 表示该因素升高风险、预后更差;HR < 1 表示保护。
适合:已有随访时间与 0/1 事件,并且要同时看年龄、标志物、治疗等多个变量的独立贡献。可选一个定类分组,按亚组分别拟合 Cox,而不是自动加入交互项。未调整的组间曲线仍应先看Kaplan-Meier。
如何选择方法
生存问题按「要不要调整协变量、有没有竞争事件、要不要做成预测工具」分支。单因素曲线用 KM;多因素 HR 用 Cox;竞争事件用 CIF/CSH;连续暴露的非线性剂量—反应用限制性立方样条;床旁打分用列线图。
Cox 比例风险回归:随访时间 + 事件 + 1–30 个协变量,可选 1 个分组做亚组模型;输出 HR、95% CI、C-Index 与森林图。
Kaplan-Meier / Log-rank:不调整协变量的生存曲线与组间比较。
竞争风险:多种互斥终点,不能把其他死亡当普通删失。
RCS:连续暴露与结局的非线性轨迹(可与回归框架结合)。
列线图:把回归系数翻译成可加的临床得分。
输入、输出与限制
输入
随访时间为定量持续时间。事件状态为二元定类(1 = 发生,0 = 删失)。协变量为定量或定类。分组可选,用于拆成多个独立 Cox,不是模型内的分层因子。
协变量:最少 1 个,最多 30 个,定量或定类。
随访时间:最少 1 个,最多 1 个,定量。
事件状态:最少 1 个,最多 1 个,二元定类。
分组变量:最少 0 个,最多 1 个,定类。
输出
结果表列出各协变量的系数、HR、标准误、z、P 值与 HR 的 95% 置信区间。表注给出 C-Index(区分度)与整体似然比检验 P 值。图为对数轴 HR 森林图(含 HR = 1 参考线)。分组时先出各亚组摘要,再按组独立建模。
产品限制
协变量至少 1 个、最多 30 个;时间与事件各恰好 1 列。
严重共线性或事件时刻完全分离会导致拟合失败。
分组后对各组分别拟合,某一组事件过少会被跳过。
输出 HR、C-Index 与似然比检验;不把 Schoenfeld 残差图当作默认表。
本教学示例事件数很少时,模型整体可以不显著,这是数据形态而不是界面错误。
案例
研究问题。 在同一批随访数据上,控制年龄与标志物后,二者是否仍与终点风险独立相关。这是 KM 之后的多因素问题:KM 比较方案组,Cox 把定量协变量放进风险函数。
教学示例来自临床随访表,工作表为「survival」,有效样本量 280,终点事件 12 例。列包括随访时间、事件、竞争事件、分组、年龄、性别、标志物。本页协变量为「年龄」与「标志物」(未纳入分组或性别)。事件数相对两个协变量偏少,适合练习如何报告「模型未达显著」而不是寻找虚假的独立预后因素。下载后可按同样角色复现。
在 StatsX 中操作
步骤 1 · 上传表格
打开工作台,将 Excel / CSV / JSON 拖入上传区。本案例使用临床随访 xlsx,确认工作表为「survival」。单文件不超过 20 MB。
步骤 2 · 查看画像与质量
确认随访时间为正的定量、事件为 0/1、年龄与标志物为定量。不要把竞争事件列当作 Cox 的事件状态。
步骤 3 · 选择「Cox 比例风险回归」
在算法目录搜索「Cox」或「比例风险」,点选后进入变量角色配置。
步骤 4 · 指定变量并运行
随访时间勾选「随访时间」;事件状态勾选「事件」;协变量勾选「年龄」「标志物」(至少 1 个,最多 30 个)。亚组建模时再放 1 个分组变量。点击运行分析。
步骤 5 · 阅读结果
先看事件数与似然比检验,再读每个 HR 是否跨过 1,最后看 C-Index。事件很少时,不显著是预期结果。




如何阅读输出
下表由同一份教学示例在 StatsX 中运行 Cox 得到。有效样本 280,事件数 12。年龄 HR = 0.974(95% CI 0.934–1.016,P = 0.226),标志物 HR = 1.124(0.969–1.304,P = 0.123),两个区间都穿过 1。似然比检验 P = 0.197,不能拒绝「所有协变量系数为零」。C-Index = 0.629,区分能力偏弱。
| 特征变量 | 回归系数(Coef) | 风险比(HR, Hazard Ratio) | 标准误 | z值 | P值 | HR 95% 置信区间 |
|---|---|---|---|---|---|---|
| 年龄 | -0.0261 | 0.9742 | 0.0216 | -1.2113 | 0.226 | [0.934, 1.016] |
| 标志物 | 0.1169 | 1.1241 | 0.0757 | 1.5439 | 0.123 | [0.969, 1.304] |
左右滑动可查看完整表格
模型拟合诊断:C-Index (一致性指数) = 0.6291;似然比检验 P值 = 0.1973。


【独立预后因素】纳入协变量均未显示独立预后效应(P≥0.05);建议结合样本量、共线性与临床意义综合解读。
解读顺序:事件数是否支撑拟纳入的协变量个数(经验上每变量至少约 10 个事件,本例 12 个事件配 2 个变量已经偏紧)→ 整体似然比 → 各 HR 与置信区间 → C-Index。正确写法是:在当前随访与 12 例终点下,未能证明年龄或标志物为独立预后因素;不要因为 HR 点估计略偏离 1 就宣称保护或危险。若 KM 已显示方案组曲线重叠,Cox 再塞入稀疏终点,同样难以检出效应。
理论与公式
比例风险模型把时刻 t 的风险写成基准风险 h₀(t) 与协变量指数项的乘积,不对 h₀(t) 作参数假设:
风险比是系数的指数。对连续变量,HR 表示该变量增加一个单位时的风险倍数;区间含 1 等价于系数含 0:
估计基于偏似然:在每个事件时刻,用当时仍处于风险集中的个体构造「谁发生了事件」的条件概率。C-Index 是可比较的受试者对中,模型打分与实际生存顺序一致的比例,0.5 为随机,越接近 1 区分越好。本页 0.629 仅略高于随机。似然比检验比较当前模型与空模型的偏似然。
注意事项
删失机制应与协变量条件独立(非信息性删失);把删失改成事件会严重偏倚 HR。
事件数太少时系数方差大,C-Index 也不稳定,优先报告事件数而不是「阴性结果等于无关」。
比例风险是模型假设:效应随时间强烈变化时,单一 HR 是加权平均,可能误导。
时间原点必须统一;把日历年或年龄当作随访时间会让风险集错误。
竞争事件被编码为 0 时,Cox 估计的是原因特异性风险,解释须与 CIF 区分。
分组建模不是交互检验:各组 HR 不能直接当「效应不同」的 P 值。
常见问题
参考文献
陈峰. 医用多元统计分析方法[M]. 中国统计出版社.
Cox, D. R. Regression Models and Life-Tables[J]. Journal of the Royal Statistical Society: Series B, 1972, 34(2): 187–202.
Collett, D. Modelling Survival Data in Medical Research[M]. CRC Press.
Harrell, F. E. Regression Modeling Strategies[M]. Springer.