能告诉你什么
Crosstabs 在你的设备上运行与 SPSS KM 对应的过程:按组输出生存表、带标准误的平均与中位生存时间、四分位数,以及可在分层内进行的 Log Rank、Breslow 与 Tarone-Ware 比较。
- 每个不同事件时间之后的累积生存比例,以及 Greenwood 标准误。
- 中位生存时间及其置信区间,以及生存时间的第 25 与第 75 百分位数。
- 限制性平均生存时间;当最大观察时间为删失时,均值限制在该时间以内。
- 各因子水平的生存曲线是否不同;三种检验对早期与晚期差异的加权方式各不相同。
- 对于有序分组,生存是否随水平呈线性趋势变化。
适用场景
适合使用
- 并非所有个案都已发生事件的时间—事件数据:客户流失、疾病复发、设备故障、首次购买时间等。
- 描述全样本的生存情况,或在不调整协变量的情况下比较少数几个组。
- 在分层内比较各组,例如在各研究中心内比较治疗组,使用跨层合并的检验。
改用其他方法
- 需要调整多个协变量或估计风险比:使用 Cox 回归。
- 事件时间只按区间已知(0–6 月、6–12 月),或样本量很大:精算寿命表的汇总更紧凑。
- 没有任何删失个案、只需比较典型时间:直接对时间做 Mann-Whitney U 检验更简单。
- 数据来自复杂抽样设计:请使用复杂抽样 Cox 回归,因为此处不接受抽样权重。
在 Crosstabs 中如何操作
- 01
打开数据
打开每行一个个案的 .sav、CSV 或 Excel 文件,并切换到“统计”模式。文件在浏览器中解析。
- 02
选择 Kaplan-Meier
在“生存分析”组中选择 Kaplan-Meier(KM)。
- 03
设置时间、状态和事件值
选择数值型“时间”变量和“状态”变量,然后选择“表示事件已发生的值”;其余状态值均按删失处理。时间为负的个案会被排除。
- 04
添加因子和分层
可选择“因子(可选)”以按水平分别绘制曲线,并可选择“分层(可选)”变量,在每层内比较因子。
- 05
选择比较方法
在“比较因子水平”下勾选 Log Rank(Mantel-Cox)、Breslow(广义 Wilcoxon)和 Tarone-Ware;因子有三个及以上水平时,还可勾选“跨层成对比较”和“因子水平的线性趋势”。
- 06
选择方法
“方法”保持“输入”,或选择向前、向后逐步并指定条件、LR 或 Wald 剔除统计量(输入使用得分统计量),设置输入与剔除概率,并勾选需要“强制纳入模型”的协变量。
- 07
按需添加时依协变量
在“时依协变量 T_COV_(可选)”中输入含 T_(时间)的表达式,如 age * LN(T_)。它会在每个事件时间对每个处于风险中的个案求值;此时与 SPSS 一样不显示生存表和图。
- 08
选择图形并运行
将“图形”设为生存、1 减生存、风险(累积)或对数生存;如工作区设有权重,将其声明为频数权重,然后点击“运行”。
计算示例
以下结果由 Crosstabs 引擎在构建本页时根据模拟数据实际计算得出,并非手工填写。
数据
60 名模拟订阅用户,月付与年付方案各 30 人。时间为距取消订阅(事件)的整月数;到第 24 个月仍在订阅或提前迁移的账户记为删失。时间由固定随机种子从指数分布生成。
| 方案 | 总数 | 事件数 | 删失数 | 删失百分比 |
|---|---|---|---|---|
| 年付 | 30 | 17 | 13 | 43.3% |
| 月付 | 30 | 26 | 4 | 13.3% |
| 总体 | 60 | 43 | 17 | 28.3% |
| 方案 | 均值 | 标准误 | 95% 置信区间 | 中位数 | 标准误 | 95% 置信区间 |
|---|---|---|---|---|---|---|
| 年付 | 13.88 | 1.73 | 10.48 – 17.28 | 16 | 5.71 | 4.81 – 27.19 |
| 月付 | 9.19 | 1.06 | 7.12 – 11.26 | 7 | 1.04 | 4.96 – 9.04 |
当最大生存时间为删失时,均值限制在该时间内。未达到的中位数显示为 —。
| 项目 | 卡方 | df | 显著性 |
|---|---|---|---|
| Log Rank(Mantel-Cox) | 5.802 | 1 | .016 |
| Breslow(广义 Wilcoxon) | 1.475 | 1 | .225 |
| Tarone-Ware | 3.088 | 1 | .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 服务器。
相关过程
- 寿命表SURVIVAL
- Cox 回归COXREG
- 复杂抽样 Cox 回归CSCOXREG
- Mann-Whitney U 检验NPAR TESTS /M-W
- 二元 Logistic 回归LOGISTIC REGRESSION
- 免费的 SPSS 替代工具:支持范围
用你自己的数据运行 Kaplan-Meier 生存分析
打开 .sav、CSV 或 Excel 文件。所有计算都在浏览器中完成,文件不会离开你的设备。
SPSS 是 IBM Corp. 的商标。Crosstabs 与 IBM 无关联,也未获得 IBM 认可。