SPSS 命令: SPSS KM

在浏览器中做 Kaplan-Meier 生存分析

Kaplan-Meier 法在部分个案被删失(随访一段时间但尚未发生事件)的情况下,估计随时间推移仍未发生事件的概率。

免费 · 无需注册 · 文件留在本机 · 更新于 2026年10月18日

能告诉你什么

Crosstabs 在你的设备上运行与 SPSS KM 对应的过程:按组输出生存表、带标准误的平均与中位生存时间、四分位数,以及可在分层内进行的 Log Rank、Breslow 与 Tarone-Ware 比较。

  • 每个不同事件时间之后的累积生存比例,以及 Greenwood 标准误。
  • 中位生存时间及其置信区间,以及生存时间的第 25 与第 75 百分位数。
  • 限制性平均生存时间;当最大观察时间为删失时,均值限制在该时间以内。
  • 各因子水平的生存曲线是否不同;三种检验对早期与晚期差异的加权方式各不相同。
  • 对于有序分组,生存是否随水平呈线性趋势变化。

适用场景

适合使用

  • 并非所有个案都已发生事件的时间—事件数据:客户流失、疾病复发、设备故障、首次购买时间等。
  • 描述全样本的生存情况,或在不调整协变量的情况下比较少数几个组。
  • 在分层内比较各组,例如在各研究中心内比较治疗组,使用跨层合并的检验。

改用其他方法

  • 需要调整多个协变量或估计风险比:使用 Cox 回归。
  • 事件时间只按区间已知(0–6 月、6–12 月),或样本量很大:精算寿命表的汇总更紧凑。
  • 没有任何删失个案、只需比较典型时间:直接对时间做 Mann-Whitney U 检验更简单。
  • 数据来自复杂抽样设计:请使用复杂抽样 Cox 回归,因为此处不接受抽样权重。

在 Crosstabs 中如何操作

  1. 01

    打开数据

    打开每行一个个案的 .sav、CSV 或 Excel 文件,并切换到“统计”模式。文件在浏览器中解析。

  2. 02

    选择 Kaplan-Meier

    在“生存分析”组中选择 Kaplan-Meier(KM)。

  3. 03

    设置时间、状态和事件值

    选择数值型“时间”变量和“状态”变量,然后选择“表示事件已发生的值”;其余状态值均按删失处理。时间为负的个案会被排除。

  4. 04

    添加因子和分层

    可选择“因子(可选)”以按水平分别绘制曲线,并可选择“分层(可选)”变量,在每层内比较因子。

  5. 05

    选择比较方法

    在“比较因子水平”下勾选 Log Rank(Mantel-Cox)、Breslow(广义 Wilcoxon)和 Tarone-Ware;因子有三个及以上水平时,还可勾选“跨层成对比较”和“因子水平的线性趋势”。

  6. 06

    选择方法

    “方法”保持“输入”,或选择向前、向后逐步并指定条件、LR 或 Wald 剔除统计量(输入使用得分统计量),设置输入与剔除概率,并勾选需要“强制纳入模型”的协变量。

  7. 07

    按需添加时依协变量

    在“时依协变量 T_COV_(可选)”中输入含 T_(时间)的表达式,如 age * LN(T_)。它会在每个事件时间对每个处于风险中的个案求值;此时与 SPSS 一样不显示生存表和图。

  8. 08

    选择图形并运行

    将“图形”设为生存、1 减生存、风险(累积)或对数生存;如工作区设有权重,将其声明为频数权重,然后点击“运行”。

计算示例

以下结果由 Crosstabs 引擎在构建本页时根据模拟数据实际计算得出,并非手工填写。

用示例数据试一试

数据

60 名模拟订阅用户,月付与年付方案各 30 人。时间为距取消订阅(事件)的整月数;到第 24 个月仍在订阅或提前迁移的账户记为删失。时间由固定随机种子从指数分布生成。

个案处理摘要
方案总数事件数删失数删失百分比
年付30171343.3%
月付3026413.3%
总体60431728.3%
生存时间的均值和中位数
方案均值标准误95% 置信区间中位数标准误95% 置信区间
年付13.881.7310.48 – 17.28165.714.81 – 27.19
月付9.191.067.12 – 11.2671.044.96 – 9.04

当最大生存时间为删失时,均值限制在该时间内。未达到的中位数显示为 —。

总体比较
项目卡方df显著性
Log Rank(Mantel-Cox)5.8021.016
Breslow(广义 Wilcoxon)1.4751.225
Tarone-Ware3.0881.079

不同因子水平生存分布相等性检验。

结果解读

月付用户更早取消:月付用户的中位取消时间为 7 个月,年付用户为 16;限制性平均生存时间分别为 9.2 与 13.9 个月。Log Rank 检验 χ²(1) = 5.80,p = .016。Breslow 检验更重视早期事件时间,其 p = .225:两条曲线在最初几个月相互接近,随后才逐渐分开,而这正是 Log Rank 检验最敏感的模式。

输出表格说明

个案处理摘要
每条曲线及总体的总数、事件数、删失数和删失百分比。删失比例高意味着曲线后段依据的个案很少。
生存表
每个不同时间一行:风险人数、事件数、删失数、累积生存比例及其标准误、累积事件数和剩余个案数。
生存时间的均值和中位数
平均与中位生存时间及其标准误和 95% 置信区间。曲线始终未降到 0.5 时,中位数显示为 —。
百分位数
第 25、50、75 百分位生存时间及其标准误;第 25 百分位数是四分之一个案已发生事件的时间。
总体比较
各生存分布相等性检验的卡方、自由度和显著性;有分层时为跨层合并检验。
成对比较
每对因子水平以 1 个自由度检验。p 值未做多重比较校正,如有需要请自行做 Bonferroni 校正。

前提假设与注意事项

  • 删失为非信息性删失:退出随访的个案与继续随访者的未来风险相同。
  • 生存概率与个案进入研究的时间无关(不存在队列漂移)。
  • 事件时间测量足够精确;大量结值可以正确处理,但会使曲线阶梯变得模糊。
  • 工作区权重须声明为取整数值的频数权重;声明为抽样权重时该过程不会运行。

结果如何验证

在含频数权重的 150 例参考数据上,KM 引擎与 R survival 3.8.12(survfit 的生存率、Greenwood 标准误、限制性均值及其标准误)一致到 1e-10,与 R survdiff 的 Log Rank(含与不含分层)及 lifelines 0.30.3 的 Log Rank、Breslow、Tarone-Ware 一致到 1e-9;中位数、百分位数、趋势与成对检验则与按 SPSS KM 算法独立编写的 NumPy 实现一致到 1e-9。 验证证据(英文)

常见问题

应报告 Log Rank、Breslow 还是 Tarone-Ware?

Log Rank 对每个事件时间同等加权,在两组风险成固定倍数时检验效能最高。Breslow 按风险人数加权,更能发现早期出现、随后消失的差异。Tarone-Ware 介于两者之间。应在查看结果前确定主检验,其余作为敏感性分析报告。

为什么中位数显示为 —?

生存曲线始终没有降到 0.5,通常是因为在一半个案发生事件之前已有大量删失。此时可报告已达到的百分位数或限制性平均生存时间。

为什么平均生存时间比预期低?

当最长时间为删失时,均值被限制在该时间以内,因此会低估真实均值。只应在随访时长相近的组之间比较限制性均值。

分层变量会带来什么变化?

曲线在每个层内分别估计,因子检验合并各层内的比较结果,从而避免层间差异(如研究中心差异)被误当作因子效应。

能否在不上传的情况下分析患者数据?

可以。工作区在浏览器中读取文件并运行 KM,数据行不会发送到 Crosstabs 服务器。

用你自己的数据运行 Kaplan-Meier 生存分析

打开 .sav、CSV 或 Excel 文件。所有计算都在浏览器中完成,文件不会离开你的设备。

打开分析工作区

SPSS 是 IBM Corp. 的商标。Crosstabs 与 IBM 无关联,也未获得 IBM 认可。