其他分布与模型选择

Python 中的生存分析

Shae Wang

Senior Data Scientist

哪个模型拟合最好?

同一数据的 4 条生存曲线,使用不同模型

Python 中的生存分析

选择参数模型

  • 非参数建模(如 Kaplan–Meier 模型)
    • 无分布假设,能准确描述数据
    • 不平滑/不连续/不可微
  • 参数建模(如 Weibull 模型)
    • 通常提供更多信息
    • 若模型错误,结论会有显著偏差
Python 中的生存分析

常见参数生存模型

  • Weibull 模型
    from lifelines import WeibullFitter
    
  • 指数模型
    from lifelines import ExponentialFitter
    
  • 对数正态模型
    from lifelines import LogNormalFitter
    
  • 对数逻辑斯蒂模型
    from lifelines import LogLogisticFitter
    
  • Gamma 模型
    from lifelines import GeneralizedGammaFitter
    
Python 中的生存分析

赤池信息准则(AIC)

  • AIC:对给定数据,衡量预测误差与模型相对优劣的准则。
  • 估计模型丢失的信息量,并对参数数量进行惩罚。
    • 丢失信息越少,模型质量越高。
    • 参数越少(越简单),模型质量越高。
  • 在候选模型中,AIC 最小者更优。
Python 中的生存分析

用 AIC 进行模型选择

步骤 1)在 lifelines 中拟合参数模型

步骤 2)打印并比较每个模型的 AIC_ 属性

步骤 3)AIC 值越低越好

from lifelines import WeibullFitter, 
                      ExponentialFitter, 
                      LogNormalFitter
wb = WeibullFitter().fit(D, E)
exp = ExponentialFitter().fit(D, E)
log = LogNormalFitter().fit(D, E)
print(wb.AIC_, exp.AIC_, log.AIC_)
215.9091   216.1183   202.3498
Python 中的生存分析

find_best_parametric_model()

  • find_best_parametric_model()lifelines 内置函数,用于自动比较各参数模型的 AIC。
  • 遍历 lifelines 提供的每个参数模型。

如何使用?

  • T:持续时间,E:删失
    best_model, best_aic_ = find_best_parametric_model(event_times=T,
                                                       event_observed=E,
                                                       scoring_method="AIC")
    print(best_model)
    
<lifelines.WeibullFitter:"Weibull_estimate", 
已拟合 686 条观测,387 条右删失观测>
Python 中的生存分析

QQ 图

  • QQ 图:通过将两个分布的分位数相互作图来比较分布。
  • 若两者相似,QQ 图上的点大致落在直线 y = x 上。

qq 图示例

Python 中的生存分析

用 QQ 图进行模型选择

步骤 1)在 lifelines 中拟合参数模型。

步骤 2)绘制各模型的 QQ 图。

步骤 3)离 y = x 最近的 QQ 图更优。

from lifelines.plotting import qq_plot

for model in [WeibullFitter(), LogNormalFitter(), LogLogisticFitter(), ExponentialFitter()]: model.fit(T, E) qq_plot(model)
plt.show()
Python 中的生存分析

用 QQ 图进行模型选择

用于比较的 QQ 图

Python 中的生存分析

Passons à la pratique !

Python 中的生存分析

Preparing Video For Download...