Appearance
第 7 章 人时数据与生存分析(Person-Time Data & Survival Analysis)
对应课件
7 Person-Time Data.pdf,覆盖 Rosner 第 14 章。 本章是流行病学/临床研究中最关键的部分:当数据带有"时间"维度(每人随访时间不同、可能未观察到事件就删失),普通比例就不够用了。
1. 风险/频率的三种度量
| 度量 | 分子 | 分母 | 适用 |
|---|---|---|---|
| 累积发病率(Incidence Proportion) | 全员同时随访到 | ||
| 点患病率(Point Prevalence) | 截面调查 | ||
| 发病率(Incidence Rate / Density) | 总人时(如人年) | 队列研究、随访时间不一 |
2. 发病率(Incidence Rate)
2.1 定义
每个个体被随访直到:
- 发病
- 死亡
- 失访(迁出)
- 研究结束
总人时 = 所有受试者的随访时间之和(如人年)。
:观察到的事件数 :总人时
2.2 例:加工肉摄入与糖尿病
| 摄入组 | 病例数 | 人年 | 发病率 |
|---|---|---|---|
| 高摄入 | 18 | 2,935 | 0.00613 = 613/10万人年 |
| 不摄入 | 215 | 135,130 | 0.00159 = 159/10万人年 |
思考单位:发病率必须带"每人年"等单位。
2.3 累积发病率(CumI)
假设发病率
故
当
直觉:低风险时,"累积发病率 ≈ 发病率 × 时间"。
3. 单样本发病率检验
3.1 模型
3.2 大样本(正态近似)
经验法则:
例:高风险饮食 vs 总体糖尿病发病率
- 观察
- → 拒绝
:高风险组糖尿病发病率显著高于总体。
3.3 小样本(精确泊松)
3.4 的置信区间
:正态近似 ,再除以 :用泊松分位数
例(高风险饮食):
不含 0.004,与拒绝
4. 双样本发病率检验
4.1 模型转化
两组
直觉:在
下,每个事件落在第 1 组的概率正比于第 1 组的人时占比。
4.2 期望与方差( 下)
4.3 大样本检验(含连续性校正)
要求
(
例:肉摄入与糖尿病
(高摄入), ; , - 等等,按课件数据为
→ (细节略) , ,不拒绝
4.4 小样本:精确二项检验
直接用
5. 发病率比(Incidence Rate Ratio, IRR)
5.1 估计
5.2 的方差(Delta 方法)
由
由
5.3 95% CI
先在 log 尺度算,再指数变换回来:
例
- 95% CI for
: - 95% CI for IRR:
(含 1,差异不显著)
6. 分层人时数据(Stratified Analysis)
6.1 为什么分层?
混杂变量(confounder):与暴露、结局都有关。例:年龄既影响是否服药,又影响发病率。直接比较暴露/非暴露会被年龄"混淆"。
→ 按年龄分层,在每层内"公平"比较。
6.2 假设:层间 IRR 相同(同质性 Homogeneity)
设第
在
6.3 综合检验统计量
需
6.4 综合 IRR 估计(按方差倒数加权)
方差最小化 → 这是最优权重。
CI 同上:先 log 尺度做正态 CI,再指数变换。
例:药物 vs 疾病(5 个年龄层)
- 综合
,95% CI: - 比较"未分层"的 crude IRR = 1.25 → 年龄是负向混杂(年龄越大用药越少,但发病率越高)
6.5 同质性检验
若各层 IRR 不同,"综合 IRR"无意义。检验:
工作流:先做同质性检验;如果不显著(不能拒绝同质),再报告综合 IRR。
7. 生存数据(Survival Data)
7.1 什么是生存数据?
Time-to-event 变量:从某个时间起点到事件发生的时间。
定义生存时间需要 3 要素:
- 明确的事件(终点):死亡、复发、出院、确诊等
- 明确的起点(启动时钟):诊断、手术、入组、随机化
- 时间单位:天、月、年
常见生存指标:
| 指标 | 含义 |
|---|---|
| OS Overall Survival | 诊断到任何死因死亡 |
| PFS Progression-Free Survival | 治疗开始到疾病进展或死亡 |
| DOR Duration of Response | 首次响应(CR/PR)到进展或死亡 |
7.2 删失(Censoring)
由于时间限制、失访等,事件可能未观察到。
类型:
- 右删失(Right)(最常见):研究结束/失访前未发病 → 真实事件时间
观察时间 - 左删失(Left):在第一次评估前事件就发生了
- 区间删失(Interval):在两次评估之间发生(如两次 MRI 之间出现病灶)
7.3 非信息性删失假设
核心假设:删失的发生与未来事件风险无关——被删失者与仍在风险中的人有同样的未来风险。
信息性删失示例(违反假设、产生偏差):
- 因副作用退出(治疗组的"高风险者"被剔除)
- 因病情严重提前结束随访
观察到的:
→ 数据由
为什么删失数据有用? 被在
删失的人 → 真实生存时间 → 仍是有效信息。
8. Kaplan-Meier 估计
8.1 KM 基本思路
把
KM 估计公式:
:在 时刻发生事件的人数 :在 正前一刻仍在风险集中的人数(既未事件也未删失)
8.2 KM 曲线特征
- 始于 1(100% 存活)
- 单调阶梯下降(仅在事件时刻下降,删失不下降)
- 若最后一个观察是事件 → 终点降到 0
- 删失个体在自己时刻"安静地"退出风险集(曲线不变化,但通常打小竖标记)
8.3 关键量
中位生存时间
⚠️ 不要混淆:
- "样本中 80 人活过 1 年"——只是观察比例
- "1 年生存率估计为 80%"——必须用 KM(考虑删失)
8.4 寿命表(Life Table)
旧方法,用于:
- 所有人观察周期相同
- 数据按固定时间区间(0–1 年、1–2 年)汇总
假设删失在区间内均匀分布:
KM vs 寿命表:
- KM 用实际风险集大小;寿命表用平均
- KM 间隔由事件时刻决定;寿命表间隔预先固定
9. Log-rank 检验(比较两组生存曲线)
9.1 思路
对每个未删失事件时刻
- 观察事件数
(暴露组) 下期望 (按风险集人数比例分配)
把所有事件时刻的
9.2 假设与等价名
别称:Mantel-Cox 检验,或 Mantel-Haenszel 应用于"在每个事件时刻分层"。
9.3 注意事项
- Log-rank 检验整条曲线,不是某一时间点。报告时不要写"6 个月生存率显著不同(log-rank p<0.05)"——应写"两组生存分布显著不同"。
- 多组:
。整体显著后,再做两两比较,注意多重比较修正。 - 连续协变量:可分组(三/四分位)做 log-rank;更好用 Cox 回归保留原尺度。
- 比例风险时功效最高;曲线交叉时不灵敏。
- 功效主要由事件数决定,不是受试者数。
9.4 加权扩展
| 检验 | 强调 |
|---|---|
| Peto, Tarone-Ware | 早期差异 |
| Prentice | 后期差异 |
| Fleming-Harrington | 灵活加权 |
10. Cox 比例风险模型
10.1 风险函数(Hazard)
含义:"在
注意:
- 是速率(rate),可大于 1
- 是条件(仅对仍在风险中的人)
10.2 风险函数与生存函数
→ 高风险 ↔ 低生存(一一对应)。
指数分布特例:
10.3 Cox PH 模型
:基线风险函数(所有 时的风险),与时间有关但形态不指定 - 指数部分:协变量乘性效应
- 没有截距
(被吸收进 )
取对数:
10.4 系数解释:风险比(HR)
控制其他变量不变,
| HR | 含义 | |
|---|---|---|
| 风险升高 | ||
| 无关 | ||
| 保护性 |
典型检验:
10.5 比例风险假设(Proportional Hazards Assumption)
→ HR 不随时间变化(即使
诊断:
- 多组 KM 曲线大致平行
- log[-log S(t)] vs log(t) 应大致平行
- Schoenfeld 残差检验
PH 假设违反时:
- 加入时间-协变量交互
- 分层 Cox(不同基线
) - 使用 Accelerated Failure Time (AFT) 模型
10.6 半参数模型
- 参数部分:
(协变量效应) - 非参数部分:
(基线,形态不限)
估计:
:偏似然(partial likelihood)最大化(Cox 1972)——不依赖 ! :仅在需要预测绝对风险时估计(如 Breslow 估计)
优雅的地方:在不假设基线分布的前提下,仍能精确估计
。
11. 生存研究的样本量与设计
11.1 关键事实
统计功效由事件数决定,而不是受试者数!
- 大量删失会"浪费"样本量
- 招募时间长 + 随访短 ≠ 招募时间短 + 随访长
- 高发病率(如重症晚期癌)→ 短随访就够;低发病率 → 长随访
11.2 所需事件数公式
Schoenfeld(1981)等分配
Freedman(1982):
通用:
影响因素:
- 功效
↑ → ↑ ↓ → ↑ ↑(效应越大)→ ↓
11.3 由所需事件数 → 总样本量
- 文献历史值 + 调整研究时长
- 假设指数生存:
- Lachin 近似(考虑招募 + 随访):
其中
11.4 由中位生存反推 HR
指数模型下:
例:对照组中位 12 月,治疗组 18 月:
→ 治疗组风险下降 33%。
11.5 失访率修正
设
11.6 招募率(Accrual rate)
均匀招募:
例:30 事件、
11.7 设计工作流
- 由 HR、power、α 算所需事件数
(Schoenfeld 公式) - 固定一项约束,反求另一项:
- 固定
→ 求 (随访期) - 固定
→ 求
- 固定
- 由招募率算招募期
12. 决策树:生存分析方法选择
研究问题
├─ 比较单一组与已知率 → 单样本泊松/正态近似
├─ 比较两组发病率 → 双样本(IRR)
│ ├─ Var(A1) ≥ 5 → 正态近似 + 连续性校正
│ └─ Var(A1) < 5 → 精确二项
├─ 控制混杂变量 → 分层分析 + 同质性检验
├─ 全曲线比较 → Kaplan-Meier + Log-rank 检验
└─ 协变量调整 + 风险比 → Cox PH 回归13. 公式速查
| 量 | 公式 |
|---|---|
| 发病率 | |
| 累积发病率 | |
| 单样本卡方 | |
| IRR | |
| KM 估计 | |
| Cox 模型 | |
| 风险比 | |
| 所需事件数 |
14. 自测要点(Checklist)
人时数据
- [ ] Incidence rate / Cumulative incidence / Prevalence 三者区别
- [ ] 累积发病率
的来源(泊松假设) - [ ] 单样本检验的大样本与精确法
- [ ] 双样本检验中
的解释 - [ ] IRR 的 Delta 方法、
尺度 CI 构造 - [ ] 分层分析:综合 IRR 与同质性检验
生存数据基础
- [ ] 生存时间三要素:事件、起点、单位
- [ ] 删失类型与非信息性删失假设
- [ ] 删失数据为何仍有用(
的信息) - [ ] OS / PFS / DOR 的定义
KM 与 Log-rank
- [ ] KM 公式与图形性质(仅事件下降,删失不变)
- [ ] 中位生存时间的图解读法
- [ ] 寿命表与 KM 的差别
- [ ] Log-rank 检验整条曲线,不能解释为某点
- [ ] 多组比较与多重比较修正
- [ ] 比例风险时 log-rank 功效最高
Cox 回归
- [ ] 风险函数定义、与生存函数的关系
- [ ] 比例风险假设的几何含义
- [ ] HR、
的解释 - [ ] 半参数模型与偏似然
- [ ] PH 假设的诊断方式
研究设计
- [ ] 功效由事件数决定的核心事实
- [ ] Schoenfeld 公式的四个要素
- [ ] 招募/随访/失访对样本量的影响
- [ ] 由中位生存反推 HR
思考题
- 累积发病率与发病率的区别——为什么"5% 发病率"必须带时间单位?
- 一个 Cox 模型 HR=1.5(95% CI: 1.1–2.0),如何向非统计学家解释?
- 如果某药真有保护作用但研究功效不够,log-rank p=0.20,你能下"无效"的结论吗?
- 把 KM 图上"5 年生存率 70%"和 IRR 数据中"年发病率 0.06"做个换算,假设指数生存模型,看是否一致。
- 生存研究中"非信息性删失"假设若被违反(如治疗组重病人提前退出),会导致 HR 偏向哪个方向?