统计百科 ·

HR 风险比怎么解读 — 生存分析 Cox 回归里的 HR、与 OR/RR 的本质区别和报告模板

统计百科:HR(Hazard Ratio)风险比完整指南——HR 的定义与瞬时风险含义、与 OR/RR 的本质区别(三者不可互换)、Cox 回归输出的 HR 解读、95% CI 判断显著性、比例风险假设检验,给出医学期刊和 APA 格式的 HR 标准报告模板。

医学论文里 HR = 0.58 出现在 Cox 回归结果里,有人直接说"风险降低了 58%"——这是错的。还有人把 HR 和 OR 混用,理由是"都是比值,差不多"——这也是错的。HR 有它独特的含义、独特的来源、独特的前提假设,和 OR、RR 有根本区别,不可互换。本文专门讲清楚 HR 是什么、怎么读、怎么报告,以及和 OR/RR 的本质差异。


为什么 HR 是医学论文里最容易被误读的指标之一

在临床研究和流行病学文献里,你会看到类似这样的句子:

"与安慰剂组相比,治疗组总体生存期(OS)的 HR = 0.72(95% CI: 0.58, 0.89),p = .003,降低了 28% 的死亡风险。"

这句话对不对?大体上是对的,但隐藏着一个前提——比例风险假设成立。一旦这个假设不成立,HR 的解读就会出问题。

更常见的错误是在非生存数据里误用 HR,或把 HR 当 OR 或 RR 来解读。三者看起来都是"比值",数值可能相近,但含义、计算方式、适用数据类型完全不同。


一、HR 是什么:时间依赖的瞬时风险比

HR 的严格定义

**HR(Hazard Ratio,风险比/危险比)**来自生存分析中的 Cox 比例风险回归(Cox Proportional Hazards Regression)。

它的定义是:在同一时刻 t,处理组(如治疗组)发生事件的瞬时风险(hazard),除以对照组(如安慰剂组)发生事件的瞬时风险。

用公式表示:

HR = h_1(t) / h_0(t)

其中:
h_1(t) = 处理组在时刻 t 的瞬时风险函数
h_0(t) = 对照组(参照组)在时刻 t 的瞬时风险函数
t       = 时间(随访时间、生存时间)

**瞬时风险(Hazard)**是一个时间点上"已经存活到这个时刻的个体,在接下来极短时间内发生事件的概率密度"——本质上是条件速率,不是普通意义上的"概率"。

Cox 比例风险回归的核心假设

Cox 回归之所以叫"比例风险",是因为它有一个关键假设:两组的 hazard function 在任意时刻的比值是一个常数,即 HR 不随时间变化。

用公式表示:

Cox 模型:h(t|X) = h_0(t) × exp(β_1 X_1 + β_2 X_2 + ...)

对于二分类变量 X(0 = 对照,1 = 处理):
HR = exp(β_1)   (对系数 β 做指数变换)

"比例风险假设"意味着 exp(β_1) 在各时刻 t 保持不变。

这个假设叫做比例风险假设(Proportional Hazards Assumption,PH 假设)。它是 HR 能被解释为一个固定"比值"的前提。如果假设不成立(比如某个治疗早期有效但晚期失效),就不能用单一 HR 总结效应,需要分段报告或用其他模型。


二、HR 的三种核心含义

HR = 1:无差异

处理组与对照组在任意时刻的瞬时风险相同,暴露因素与事件发生率无关。

HR > 1:危险因素(风险增加)

处理组的瞬时风险高于对照组。HR = 1.5 表示处理组在任意时刻的瞬时风险是对照组的 1.5 倍。

HR < 1:保护因素(风险降低)

处理组的瞬时风险低于对照组。HR = 0.72 表示处理组的瞬时风险只有对照组的 72%,即降低了 28%(1 - 0.72 = 0.28)的瞬时风险

快速参考表

HR 值解读通俗表述
> 1危险因素暴露组瞬时风险更高
= 1无关联两组风险相同
< 1保护因素暴露组瞬时风险更低
0.72保护效应风险降低 28%(1 - 0.72)
1.50危险效应风险增加 50%(1.50 - 1)
0.58保护效应风险降低 42%(1 - 0.58)

精确表述规范:应说"处理组的瞬时风险是对照组的 0.72 倍",或"降低了 28% 的瞬时风险"。不应直接说"降低了 28% 的风险",因为"风险"一词会与 RR/OR 混淆;但医学写作中"降低了 X% 的事件风险"已成约定俗成的简化表达,在方法章节说清楚用的是 Cox 回归、HR 来自时间-事件数据即可。


三、HR 与 OR / RR 的本质区别

这是本文最关键的部分,也是最容易混淆的地方。

三者的核心差异

指标全称来源时间依赖适用数据
HRHazard Ratio 风险比Cox 比例风险回归是(瞬时速率之比)时间-事件数据(有随访时间 + 结局状态)
OROdds Ratio 优势比Logistic 回归 / 病例对照研究否(截面指标)二分类结局(无随访时间)
RRRisk Ratio / Relative Risk 相对危险度队列研究 / RCT 直接计算否(累积发生率之比)有时间窗口的发生率(无删失处理)

关键区别逐条解析

区别一:HR 是时间依赖的,OR 和 RR 不是

  • OR 衡量某个截面时间点(如调查时)的优势之比,不涉及随访时间。一个横断面研究给不出 HR,只能给 OR。
  • RR 是一段固定时间窗口内两组累积发生率之比(如 5 年发病率之比),不考虑发病的时间分布(删失)。
  • HR 是整个随访期间任意时刻瞬时风险的比值,是"每个时刻都在比较"的动态指标,且能正确处理删失数据。

区别二:三者数值不相等,不能互换

即使研究同一种关联,三者数值会有所不同(有时差异可以很大):

假设随访 5 年,处理组 5 年累积事件率 = 25%,对照组 = 40%

RR = 0.25 / 0.40 = 0.625
OR = (0.25/0.75) / (0.40/0.60) = 0.333 / 0.667 = 0.500
HR = ? (本例 HR ≈ 0.56;HR 的数值取决于事件的时间分布,与 OR/RR 无固定大小顺序)

在事件率较低(< 10%)时,三者数值接近(OR ≈ RR ≈ HR 近似),可以相互参考;但事件率高时,三者差距显著,不能互换。

区别三:删失数据处理方式不同

临床随访中经常有"删失"(Censored):患者失访、研究结束时尚未发生事件、因其他原因退出。

  • Cox 回归 / HR:正确利用删失信息(用"部分似然"估计),不丢失删失观测的信息。
  • RR:忽略删失,或简单排除删失观测,导致有偏估计。
  • OR(Logistic 回归):把时间到事件数据简化为"最终是否发生"的二分类,完全丢失"什么时候发生"的时间信息,也忽略删失。

结论:有随访时间数据 + 存在删失 → 必须用 Cox 回归报告 HR,不能用 Logistic 回归的 OR 替代。

三者的选择规则

研究数据有随访时间?
    是 → 是否有删失数据(失访/研究结束时存活)?
           是 → Cox 回归 → 报告 HR
           否 → 可用 Cox/log-rank,或直接计算 RR(用累积发生率)
    否 → 是否有比较的两组?
           是 → 二分类结局:用 Logistic 回归 → 报告 OR(病例对照/横断面)
                            或 队列研究 → 报告 RR(发生率之比)
           否 → 描述统计(患病率等)

四、Cox 回归输出中 HR 的解读

单个 HR 的解读

Cox 回归系数 β 的指数变换即为 HR:

HR = exp(β)

对于连续型预测变量(如年龄):

  • HR = 1.04(年龄每增加 1 岁,瞬时风险增加为原来的 1.04 倍,即增加 4%)
  • 如果想报告"每增加 10 岁"的 HR:HR_10 = exp(10 × β) = HR^10

对于二分类变量(如治疗 vs 安慰剂,0/1 编码):

  • HR = exp(β_治疗) 即为治疗组 vs 安慰剂组的 HR

对于多分类变量(如多个剂量组):

  • 需设定参照类别,HR 为各组相对参照组的瞬时风险比

典型 Cox 回归输出示例

表 1  Cox 比例风险回归分析(N = 380,事件 = 心血管事件,随访中位数 = 24 周)

变量                        HR(95% CI)           p
治疗组(新药 vs 安慰剂)    0.58(0.34, 0.98)    .042 *
年龄(每岁)                1.04(1.01, 1.08)    .018 *
合并症(有 vs 无)          2.12(1.20, 3.74)    .009 **
基线 SBP(每 mmHg)         1.02(0.99, 1.05)    .148
性别(男 vs 女)             0.94(0.57, 1.56)    .812

注:HR = Hazard Ratio;95% CI 不含 1 提示达统计学显著性;
   参照类别:安慰剂组、无合并症、女性。
   Schoenfeld 残差全局检验:chi^2(4) = 2.18,p = .703(比例风险假设成立)。

逐行解读

  • 治疗组 HR = 0.58(95% CI [0.34, 0.98],p = .042):在任意时刻,新药组发生心血管事件的瞬时风险是安慰剂组的 0.58 倍,即降低了 42% 的瞬时风险。95% CI 不含 1,统计显著。
  • 年龄 HR = 1.04:每增加 1 岁,瞬时风险增加 4%;该 HR 表示在控制其他变量后的独立效应。
  • 合并症 HR = 2.12(95% CI [1.20, 3.74]):有合并症者瞬时风险是无合并症者的 2.12 倍,风险增加 112%。
  • 基线 SBP HR = 1.02(95% CI [0.99, 1.05],p = .148):95% CI 包含 1,不显著,基线收缩压不是独立预测因子。

五、95% CI 判断显著性:HR 的规则

HR 和 OR 一样,判断统计显著性用 95% CI 是否包含 1:

CI 情况统计意义
95% CI 全部 > 1(如 [1.20, 3.74])显著,危险效应(HR > 1)
95% CI 全部 < 1(如 [0.34, 0.98])显著,保护效应(HR < 1)
95% CI 包含 1(如 [0.99, 1.05])不显著(p >= .05)
CI 很宽(如 [0.12, 6.43])精度低,样本量或事件数不足

EPE(每事件参数数,Events Per Parameter):Cox 回归中,每个预测变量对应的事件数建议 >= 10。事件数太少,HR 的 95% CI 会极宽,结果不稳定。


六、比例风险假设检验:HR 成立的前提

Cox 回归中 HR 有意义的前提是比例风险假设成立——即各预测变量的 HR 不随时间变化。这个假设需要检验,否则报告的 HR 可能是一个失真的平均值。

Schoenfeld 残差检验

最常用的方法是 Schoenfeld 残差与时间的相关性检验:

  • 若 Schoenfeld 残差与 log(t) 无显著相关(p >= .05),则比例风险假设成立
  • 全局检验(所有变量)和各变量的单独检验都应报告
Schoenfeld 残差检验(比例风险假设)

变量                    chi^2     df    p
治疗组                  0.84      1     .360
年龄                    0.47      1     .493
合并症                  0.63      1     .427
基线 SBP               0.24      1     .624
全局检验               2.18      4     .703

结论:所有变量及全局检验均 p > .05,比例风险假设成立。

假设不成立时怎么办?

若某变量的 PH 假设不成立(如早期效果强、晚期效果弱),有几种处理方式:

  1. 时间分段 HR:分别报告"0-6 个月"和"6-24 个月"的 HR
  2. 加入时间交互项:在模型中加入 X × log(t) 交互项
  3. 限制平均生存时间差(RMST):不依赖 PH 假设的替代效应量
  4. ChatSRS 支持"检验比例风险假设,若不满足报告分段 HR 和 RMST"

七、在 chatsrs.com 一句话获得 HR 完整报告

打开 chatsrs.com,上传数据(含随访时间变量和事件状态变量)后输入:

"以 time_to_event(随访时间,周)和 event(1 = 发生,0 = 删失)为生存结局,以 trial_arm(治疗 vs 安慰剂)为主要预测变量,控制协变量 age、sex、bmi、baseline_sbp、comorbidity,做多因素 Cox 比例风险回归。 输出:

  1. Cox 回归 HR(95% CI)及 p 值汇总三线表(区分粗 HR 和调整 HR)
  2. Schoenfeld 残差检验(各变量 + 全局检验)
  3. Kaplan-Meier 生存曲线(两组,含 95% CI 阴影,Number at Risk 表)
  4. Log-rank 检验
  5. 医学期刊格式文字描述(含比例风险假设说明)"

ChatSRS 自动输出完整生存分析报告,包含 KM 曲线图、Cox 表格和 APA 格式文字,可直接复制进论文。


八、HR 报告模板(医学期刊 / APA 格式)

单个 HR 的规范报告格式

要素格式示例
调整 HR + CIaHR = X.XX(95% CI: X.XX, X.XX)aHR = 0.58(95% CI: 0.34, 0.98)
p 值p = .XXX 或 p < .001p = .042
效应方向描述"风险降低 XX%(1 - HR)" 或 "风险增加 XX%(HR - 1)""降低 42%(1 - 0.58)的心血管事件瞬时风险"
PH 假设说明在方法章节说明 Schoenfeld 检验"比例风险假设经 Schoenfeld 残差检验证实成立"

注意:APA 对 HR 的报告格式无专门规定,医学期刊普遍用以下格式,无前导零(如 HR = .58 而非 HR = 0.58 有争议,多数医学期刊保留前导零,与 APA 不同)。以目标期刊格式为准。

结果章节完整报告模板

多因素 Cox 比例风险回归结果(见表 X)显示,Schoenfeld 残差全局检验提示比例风险
假设成立(chi^2([df]) = X.XX,p = .XXX)。在控制[协变量列表]后,[处理变量]是
[结局事件]的独立[危险/保护]因素(aHR = X.XX,95% CI: [X.XX, X.XX],p = .XXX),
[处理组]发生[结局]的瞬时风险是[对照组]的 X.XX 倍 / [处理组]发生[结局]的瞬时风险
降低了 XX%(1 - X.XX)。

具体示例(保护效应)

多因素 Cox 比例风险回归分析结果显示,Schoenfeld 残差全局检验提示比例风险假设成立(chi^2(4) = 2.18,p = .703)。在控制年龄、性别、BMI、基线收缩压和合并症后,新药治疗是心血管事件的独立保护因素(aHR = 0.58,95% CI: 0.34, 0.98,p = .042),新药组发生心血管事件的瞬时风险降低了 42%(1 - 0.58)。

具体示例(危险效应)

有合并症患者的心血管事件瞬时风险是无合并症患者的 2.12 倍(aHR = 2.12,95% CI: 1.20, 3.74,p = .009)。

方法章节描述模板

时间-事件次要终点(首次心血管事件发生时间)采用 Kaplan-Meier 法估计各组生存函数,Log-rank 检验比较组间差异;多因素 Cox 比例风险回归估计调整风险比(aHR)及 95% CI,协变量包括年龄、性别、BMI、基线收缩压和合并症。比例风险假设以 Schoenfeld 残差法验证,全局检验 p >= .05 为假设成立。所有统计分析使用 ChatSRS(R 引擎,survival 包),显著性水平 alpha = .05,所有检验均为双侧。


常见 FAQ

Q1: HR 和 OR 的数值都是比值,能不能互换?

不能,绝对不能互换。 尽管两者的解读框架相似(> 1 危险,< 1 保护,CI 不含 1 显著),但计算方式和含义完全不同:

  • OR 来自 Logistic 回归,是某时间点优势之比,不涉及时间,不处理删失
  • HR 来自 Cox 回归,是任意时刻瞬时风险之比,时间依赖,正确处理删失

有随访时间数据时,用 Logistic 回归的 OR 会丢失时间信息,且不能处理删失,导致有偏估计。反过来,无随访时间的横断面数据也无法用 Cox 回归计算 HR。

Q2: HR < 1 时,说"风险降低了 X%"是什么意思?怎么计算?

HR = 0.72 → 风险降低了 1 - 0.72 = 28%(瞬时风险降低 28%)

注意公式方向:不是 0.72 - 1 = -0.28(方向不对),而是 1 - HR = 降低百分比

HR = 1.50 → 风险增加了 1.50 - 1 = 50%(瞬时风险增加 50%)

Q3: HR 的 95% CI 越宽意味着什么?

CI 宽通常意味着事件数太少(样本量不等于事件数,删失的观测对估计精度贡献有限)。Cox 回归的精度主要由事件数决定,而非总样本量。建议:每个预测变量对应 >= 10 个事件(EPE >= 10),总事件数 < 50 时估计精度较低,结果需谨慎解读。

Q4: 比例风险假设不成立,HR 还有意义吗?

如果 PH 假设不成立(HR 随时间变化),单一 HR 值就是一个失真的"平均",会掩盖真实的时间依赖效应(比如早期有效、晚期无效的治疗)。

处理方案:

  • 报告不同时间段的分段 HR(如"0-6 个月 HR = 0.42,6-24 个月 HR = 0.88")
  • RMST(限制平均生存时间)差值替代 HR 作为主要效应量,RMST 不依赖 PH 假设
  • 在讨论中说明 PH 假设检验结果和方法的局限性

ChatSRS 支持在结果中自动标注 Schoenfeld 检验,如不满足则给出 RMST 替代分析。


相关阅读


本文首发于 ChatSRS 官方博客。如有问题或反馈,欢迎在 ChatSRS 站内 [用户中心 -> 帮助与反馈] 联系我们。