冲击肿瘤生存类高分 SCI 的“方法学门面三件套“:RMST 阴影图 + Landmark HR 曲线 + 条件生存 n

📅 2026/8/4 12:19:57
冲击肿瘤生存类高分 SCI 的“方法学门面三件套“:RMST 阴影图 + Landmark HR 曲线 + 条件生存 n
冲击肿瘤生存类高分 SCI 的方法学门面三件套RMST 阴影图 Landmark HR 曲线 条件生存 nomogram——SeerSurvivalR 一行代码全出要做肿瘤生存类高分 SCI 论文只靠 KMCox 不够。RMST 阴影 KM、Landmark HR 曲线、条件生存 nomogram这 3 张图是冲击高分生存类数据库SEER、TCGA、NCDB方法学段的标配。配齐这 3 件套方法学段直接立住没配齐的论文基本被审稿人打回返修。一句话先抛结论方法解决什么审稿人追问投稿必含图 / 表加分档位RMST两组 tau 时间内平均多活多少天RMST 阴影 KM RMST forest plot4 分 → 5 分Landmark术后早期死亡会不会扭曲治疗效应Landmark KM 连续 HR 曲线 Cox 森林4 分起步条件生存已经熬到 X 年的患者再活 Y 年的概率条件生存曲线族 嵌 CS 列线图4 分偏 5 分这 3 个方法单独用任何一个都能让论文从 3 分迈进 4 分门槛3 个都用 方法学段落直接碾压多数审稿人。 一句话记住RMST 给数字、Landmark 控偏倚、条件生存给患者用——三个方法都不是画一张图的事是论文方法学段落的门面三件套。方法 1RMST限制平均生存时间做什么在指定时间 τ 之内A 组比 B 组平均多活多少个月不是 HR是带单位的差值。用在什么场景当两条 KM 曲线中位生存时间相同HR 1但长期拖尾不一样A 组有 20% 长尾活到 10 年传统 Cox 报 HR1 没差异审稿人立刻质疑临床医生 / 患者最关心具体多活几个月HR 听不懂RMST 直接给多活 2.3 个月这种话JAMA、Lancet Oncology、Annals of Oncology现在统计审稿人强推这种真实发表案例Durer et al.Cancer Res Commun2026PMID [41334888](https://pubmed.ncbi.nlm.nih.gov/41334888/)7 项 ES-SCLC 一线 ICI 试验 IPD meta 分析n 1,766。HR 法结果OS pooled HR 0.730.68-0.79RMST 法结果pooled RMST gain 1.98 months1.38-2.58。两方法方向一致但 RMST 给出具体多活几个月临床可直接翻译给患者。图 1A) Durer 等 2026 - OS RMST forest plotPMID 41334888,Cancer Res Commun。pooled RMST gain 1.98 months (95% CI 1.38-2.58, I² 0%)对应 pooled HR 0.73Figure 3。HR 给风险降低是比例RMST 给具体多活多久是数字——RMST 才能直接告诉患者你大概多活 2 个月。同一试验池n1,766两个度量角度。7 trials OS pooled HR 0.73 vs pooled RMST gain 1.98 月同一组数据两种解读——这就是为什么越来越多期刊要求 RMST。SeerSurvivalR 实测胃癌 Grade 1-2 vs 3-460 个月 RMST 阴影 KM我们用 SeerSurvivalR 在 11 万 SEER 胃癌患者上跑了同样的 RMST 分析JCO_rmst_km_plotτ 60 月下面是代码实测输出——不是示意图。图 2SeerSurvivalR 3.5 实测 - Grade 3-4 vs 1-2 在 60 个月内 RMST 差异 8.31 个月95% CI 7.98-8.64P0.001。阴影部分就是两组 RMST 差对应的生存时间面积肉眼能直接看出低级别人群平均多活 8 个月。示例代码基于SeerSurvivalR3.5library(SeerSurvivalR) # tau 60 个月5 年 p_rmst - JCO_rmst_km_plot( data seer_stomach, time_col time, status_col status, group_col Grade_bin, tau 60 ) # 出图打印 保存 print(p_rmst$plot) ggsave(fig_rmst_shadedKM.png, p_rmst$plot, width 10, height 7, dpi 150)回答审稿人问题两组 HR 接近但临床实际差多少—— 直接给具体月份。方法 2Landmark 分析做什么选定一个时间点 τ 作为新起点把已经活到 τ 的患者重新设基线规避immortal time bias不死时间偏倚。用在什么场景治疗组和对照组做手术 vs 不手术比较——能活到术后 1 年的本身就是筛选过的人普通 KM 把早期术后死亡错误归类新辅助化疗 vs 术后化疗从诊断时间算死亡会被 immortal time 污染Landmark 从手术日重新算任何暴露发生在诊断后某段时间的研究Landmark 几乎是审稿必问项真实发表案例 1Li et al.J Cardiothorac Surg2026PMID [41987194](https://pubmed.ncbi.nlm.nih.gov/41987194/)157 例 III-IV 期肺恶性瘤ablation vs laser excisionPSM 后 60-day Landmark 分析剔除早期治疗相关死亡后multivariable Cox HR 0.560.34-0.93, p0.025LE 优势在 Landmark 后仍稳健。这篇文章能发关键就是做了 Landmark sensitivity analysis 把 immortal time 堵住。图 3Li 等 2026 - PSM 后 Kaplan-Meier 曲线PMID 41987194。p 0.048提示 ablation 组生存劣于 laser excision 组。该论文不仅做 PSM还做了 60-day Landmark图未显示作为 sensitivity analysis对照 immortal time。图 4Li 等 2026 - PSM 后 multivariable Cox 森林图PMID 41987194。Ablation 多变量 HR 0.52P 0.011方法学段就是这种 Cox Landmark 组合。SeerSurvivalR 实测胃癌 Grade 连续 LandmarkHR 随时间下降曲线我们用 SeerSurvivalR 在 11 万 SEER 胃癌患者上跑了连续 Landmark 分析τ 12/24/36/48/60 月共 5 个时间点——每个 τ 跑一次 Cox看 Grade 3-4 vs 1-2 的 HR 怎么随时间变。图 5SeerSurvivalR 3.5 实测 - HR 随 Landmark 时间变化曲线。12 月时 HR 1.3060 月时 HR 1.04早期 HR 显著升高、晚期趋向 1——这意味着 Grade 对死亡风险的影响集中在前 3 年熬过 3 年的患者 grade 已不重要。这是审稿人最难看到的时间依赖性洞察传统 Cox 给不出。示例代码基于SeerSurvivalR3.5library(SeerSurvivalR) # 单 τ Landmark Cox res - landmark_cox_analysis( data seer_stomach, time_var time, event_var status, covariates c(Grade_bin, Age_num, Sex_bin), landmark_time 12, export_csv FALSE, print_results TRUE ) # 输出 before / after 双套 HR——after 更稳健才是 Landmark 的价值 # 连续 Landmark每个 τ 都跑一次 Cox cont - continuous_landmark_analysis( data seer_stomach, landmark_times c(12, 24, 36, 48, 60), formula_str Surv(time, status) ~ Grade_bin Age_num Sex_bin, covariate_of_interest Grade_bin ) # 出 HR 随时间变化曲线 p_hr - plot_landmark_hr_curve( results cont, title Grade 3-4 vs 1-2 HR 随 Landmark 时间变化, y_limits c(0.5, 2.5) ) print(p_hr)回答审稿人问题你这些治疗组里有早期死亡/早期换组的患者处理了吗—— 直接拿 Landmark before/after 对比。方法 3条件生存Conditional Survival, CS做什么算CS(t2 | t1)——已经活到 t1 年的患者再活 t2 年的概率是多少。用在什么场景患者最有共鸣的问题医生我已经熬过术后 1 年以后还能活多久普通 KM 给不出癌症慢性病化的当下甲状腺、乳腺、前列腺 5 年生存率 90%CS 是长期管理的核心统计工具JNCI、Cancer、EJC在乳腺癌、结直肠癌、甲状腺癌论文中频繁出现真实发表案例Zhang et al.Transl Cancer Res2026PMID [42305490](https://pubmed.ncbi.nlm.nih.gov/42305490/)1,552 例原发性乳腺淋巴瘤PBL3/5/10 年总生存率分别为 85%/77%/58%。CS 分析活过 9 年再活 10 年的概率 95%刚诊断的患者 10 年 OS 仅 58%AHR 第 1 年高峰 8.05% 后逐年下降3 年后趋于平稳——CS 给出熬过 3 年就基本没事的患者关键答案。图 6Zhang 等 2026 - PBL 条件生存曲线族PMID 42305490。左已活到 X 年的人在接下来 Y 年里的条件生存概率右9×10 概率矩阵每格颜色代表概率。10-year CS起诊断时 58%活过 9 年后再活 10 年 95%——42% 差额就是熬过 9 年换来的。图 7Zhang 等 2026 - PBL CS-NomogramPMID 42305490。这不是传统 Nomogram这种 Nomogram 的每一行 10-year CS(9|1) probability 都是时间条件概率横跨 9 行——让预测动态化。顶刊最爱这种把 CS 嵌入 Nomogram 的图因为它直接告诉患者按你的情况熬到 X 后再活 Y 的概率。SeerSurvivalR 实测胃癌条件生存曲线 概率表 二合一图我们用 SeerSurvivalR 在 11 万 SEER 胃癌患者上跑了conditional_survival_risk_curve()——一张图 上半部分曲线族 下半部分 6×6 概率矩阵正是上面 Fig 6 文献版式的自家复刻。图 7-补SeerSurvivalR 3.5 实测 - 条件生存 概率表二合一图。上给定已活到 X 年未来 Y 年条件生存概率曲线族下6×6 概率矩阵精确数值。读法第 2 行第 4 列 73%意思是已活到 1 年的患者再活 3 年的概率是 73%。SeerSurvivalR 实测胃癌 CS 嵌入列线图再用 SeerSurvivalR 的generate_nomogram_with_cs()在同一份数据上跑了直接把 CS 嵌进 Cox 列线图——正是上面 Fig 7Zhang PBL那种CS-Nomogram的自家复刻。图 7-补 2SeerSurvivalR 3.5 实测 - CS 嵌入 Cox 列线图仿真 Zhang PBL Fig 7 风格。模型变量Grade_bin / Age_num / Sex_bin底部 6 行3 行普通生存率 3 行条件生存率。临床用法患者总分算出来→沿 6 条概率线分别读出1/3/5 年总生存率 熬过 1 年后再活 1/2/4 年的条件生存概率。SeerSurvivalR 实测胃癌条件生存曲线族我们在 11 万 SEER 胃癌患者上跑了同样的 CS 分析——输出的是真实数据曲线不是示意图。图 8SeerSurvivalR 3.5 实测 - 胃癌患者条件生存曲线族。彩线按已活到 X 月分层X 0/12/24/36/48/60。随着 X 增大已熬过更长时间条件生存曲线越来越平意味着后期死亡风险越来越低——这是熬到一定时间就基本没事的视觉证明。示例代码基于SeerSurvivalR3.5library(SeerSurvivalR) library(survival) # 1) 先拟合 KM km - survfit(Surv(time, status) ~ 1, data seer_stomach) # 2) 条件生存曲线族 p_cs - plot_conditional_surv_curve( km_fit km, at seq(0, 60, 12), main 胃癌患者条件生存曲线, xlab 未来生存时间 (月), ylab 条件生存概率 ) print(p_cs) # 3) 把 CS 嵌入 Cox 列线图顶刊最爱看的动态预测 cox - cph(Surv(time, status) ~ Grade_bin Age_num Sex_bin, data seer_stomach, x TRUE, y TRUE, surv TRUE) nom - generate_nomogram_with_cs( cox_model cox, surv_times c(1, 3, 5), cs_times_list list(c(1, 2), c(1, 3), c(1, 5)), funlabel c(1-year, 3-year, 5-year, CS(2|1), CS(3|1), CS(5|1)), xfrac 0.25 ) plot(nom, xfrac 0.25)回答审稿人问题熬过难熬期后这群患者实际命运如何—— 直接用 CS(5|3) 给具体数字。三大方法投稿排版发 SCI 加多少分投稿档次Figure 数至少包含3 分3–4 张Flow KM Cox forest 校准4 分5–6 张上述 RMST 阴影 / Landmark HR 曲线 / CS 曲线5 分7 张上述 CS 嵌入列线图 连续 Landmark RMST 森林图只做4 件套KM Cox PSM 竞争风险已经到 4 分。如果你想挤进 5 分期刊5 IF这 3 个高阶方法至少要做 2 个——多数审稿人一看方法学段就心里有数。三大方法回答审稿人 5 类问题审稿人问题用什么方法答哪张图配治疗到底有没有获益Cox HR森林图 (Fig 4)HR 看起来接近临床实际差多少RMST阴影 KM (Fig 2) RMST forest (Fig 1)这群患者的死亡 / 换组有 immortal time 偏倚吗Landmark连续 HR 曲线 (Fig 5)早期死亡会不会扭曲结论LandmarkKM (Fig 3) Cox (Fig 4)已经熬过难熬期的患者以后命运如何条件生存曲线族 (Fig 68) 列线图 (Fig 7)HR 在不同时间会变吗连续 Landmark HR 曲线Fig 5长期随访可靠吗Reverse KM 中位随访——不会用这 3 个方法的 4 个真实坑PH 假设不检验就跑 Cox— Cox 的前提是风险比不随时间变不跑cox.zph()的话 HR 是错的如果违规要么用Landmark 分段要么换 RMSTLandmark 没说 τ 为什么选 τ— τ 必须有临床意义如术后 1 年是新辅助化疗完成时点不能拍脑袋τ 还应该 ≤ 中位随访时间避免大量删失CS 的 at 超过观察范围—at最大值不能超过最大观测生存时间SEER 胃癌最长 227 月你 at 设 300 月直接报错RMST 的 tau 设太大— tau 实际随访长度时差值会被删失稀释变得不可靠一般选 中位随访 × 0.8 或 5 年 / 10 年本篇 takeaway 行动 CTARMST 给数字、Landmark 控偏倚、条件生存给患者用——这 3 个方法是 4 分 SCI 的基线工具、5 分 SCI 的入场券。做完 4 件套再做这 3 个方法学段落直接立住审稿人没得挑。下一步立刻能做的 3 件事把 RMST 的 tau 设成 60 / 120 月3 个 tau 都跑一遍对比哪个 tau 上 RMST diff 最显著——这就是 Discussion 里要写的最大获益时间窗试试landmark_cox_analysis(data, landmark_time 12)对比 Landmark 前后 HR 变化——变化大说明 immortal time 偏倚严重Discussion 第一段就能写把条件生存曲线输出在列线图上generate_nomogram_with_cs回邮件给导师看他会立刻让你加进论文附、对应三大分析的小工具SeerSurvivalR 函数速查SeerSurvivalR 3.5把上面三种分析做了一行代码封装仅按RMST / Landmark / 条件生存三块组织RMST 模块7 个函数rmst_analysis()— 单个 tau 的 RMST 差异分析未调整 / 调整rmst_table_unadjust()— 未调整 RMST 多时间点 Word 表rmst_table_adjust()— 调整后 RMST 多时间点表 自动生存曲线JCO_rmst_km_plot()— JCO 风格 KM RMST 阴影面积图本篇 Fig 2 用这个jco_rmst_survival_curve()— 单组 RMST 曲线 RMTLrmst_waterfall_plot()— RMST diff 瀑布图多 tau 对比rmst_psi_plot()/rmst_psi_threshold_table()— 预后指数辅助Landmark 模块5 个函数landmark_cox_analysis()— 单个 τ 的 Landmark Cox输出 before/after 双表landmark_survival_KM()— Landmark KM 曲线continuous_landmark_analysis()— 连续 Landmark多个 τ 各跑一次 Cox本篇 Fig 5 用这个plot_landmark_hr_curve()— HR 随 τ 变化曲线本篇 Fig 5 用这个landmark_hr_table()/plot_landmark_hr_comparison()— 横向对比条件生存模块4 个函数plot_conditional_surv_curve()— CS(t2|t1) 条件生存曲线本篇 Fig 8 用这个generate_conditional_survival_table()— 多 t1 / t2 条件生存概率表conditional_survival_risk_curve()— 条件生存曲线 概率表 二合一本篇 Fig 7-补 用这个正是用户说的那种图 表格集合generate_nomogram_with_cs()— 把 CS 嵌入 Cox 列线图本篇 Fig 7-补 2 用这个复刻 Zhang PBL Fig 7 结构安装install.packages(SeerSurvivalR_3.5.0.zip, repos NULL, type source) 一句话总结KM Cox PSM 竞争风险 3 分方法学基线再加RMST Landmark 条件生存 4 分 SCI 的方法学门面5 分 SCI 的入场券。SeerSurvivalR 3.5把这 3 类高阶分析都做了一行代码封装跑完 4 件套再做这 3 个等于把审稿人想问的方法还有什么补充全部提前堵死。