• survival | 生存分析(5):加速失效时间模型(Accelerated Failure Time Model)


    本篇来介绍另外一种生存模型:加速失效时间模型(Accelerated Failure Time Model,AFT模型)。AFT模型是对生存时间进行建模的。它常使用在工业领域,如研究零件寿命受温度的影响,因此把生存时间称为失效时间(Failure Time)。

    本篇目录如下:

    • 1 AFT模型

    • 2 R中的函数

    1 AFT模型

    1.1 符号说明

    使用表示生存时间(survival time),表示生存函数(survival function)。

    表示的累积分布函数(cumulative distribution function, CDF),表示的概率密度函数(density function)。

    表示风险函数(hazard function)。

    1.2 模型形式

    使用基准生存函数表示一般情况下主体生存率随时间的变化情况,使用表示实际情况下主体的生存函数。

    AFT模型假设某些与主体有关的因素会加速或延缓主体生存率到达某一水平的时间。与Cox模型类似,AFT使用下式表示加速因子(acceleration factor):

    这样,与就存在如下关系:

    举例来说,若,,那么就有,这表明在一般情况下时基准生存率会降低至0.2,而实际上时就达到了这一水平,也就是说失效时间被加速了;反之,若时,失效时间将会被延缓。

    对于基准风险函数,因为

    那么实际上主体的风险函数

    从风险函数的角度可以看出,AFT模型与Cox模型的形式非常相似。

    AFT模型与Cox模型的区别在于,它为基准失效时间指定了概率分布形式,从而确定了基准风险函数的形式,因此它是一个参数模型(Cox模型为半参数模型)。

    对失效时间进行建模,有

    其中,表示在基准生存函数下的失效时间。

    两边取对数得

    是一个随机变量,服从一定的概率分布形式。对进行标准化得

    代入得

    上式称为AFT模型的一般形式[1],称作尺度参数(scale parameter)。AFT模型最初也被称作对数位置-尺度模型(Log-Location Scale Model)

    1.3 概率分布

    因为AFT模型对失效时间进行了对数转换,因此存在两个概率分布,一个是针对对数转换前的失效时间,另一个是针对对数转换后的残差。

    下表列举了几种二者概率分布的对应关系:

    残差失效时间
    extremeweibull
    gaussianlognormal
    logisticloglogistic

    2 R中的函数

    survival工具包中,可以使用survreg()函数拟合AFT模型。例子如下[2]

    1. library(survival)
    2. fit <- survreg(Surv(time, status) ~ age + sex + ph.karno, 
    3.                data = lung, dist = 'weibull')

    其中参数dist用于指定的概率分布形式(distribution),详细可参见survival工具包的survreg.distributions的帮助文档:

    1. names(survreg.distributions)
    2. ##  [1"extreme"     "logistic"    "gaussian"    "weibull"     "exponential"
    3. ##  [6"rayleigh"    "loggaussian" "lognormal"   "loglogistic" "t"

    查看模型输出结果摘要:

    1. summary(fit)
    2. ## Call:
    3. ## survreg(formula = Surv(time, status) ~ age + sex + ph.karno, 
    4. ##     data = lung, dist = "weibull")
    5. ##                Value Std. Error     z       p
    6. ## (Intercept)  5.32632    0.66298  8.03 9.4e-16
    7. ## age         -0.00891    0.00711 -1.25  0.2100
    8. ## sex          0.37019    0.12796  2.89  0.0038
    9. ## ph.karno     0.00926    0.00446  2.08  0.0379
    10. ## Log(scale)  -0.28085    0.06171 -4.55 5.3e-06
    11. ## 
    12. ## Scale= 0.755 
    13. ## 
    14. ## Weibull distribution
    15. ## Loglik(model)= -1138.7   Loglik(intercept only)= -1147.5
    16. ##  Chisq= 17.59 on 3 degrees of freedom, p= 0.00053 
    17. ## Number of Newton-Raphson Iterations: 5 
    18. ## n=227 (因为不存在,1个观察量被删除了)

    输出结果中的Scale对应模型形式中的。

    拟合模型:

    1. head(fitted(fit)) 
    2. ## [1354.5663 374.0385 416.2499 412.5573 440.6651 244.7723

    模型预测:

    1. nd = apply(lung, 2, mean, na.rm = T)
    2. nd = data.frame(t(nd))
    3. ## 返回T
    4. predict(fit, newdata = nd, type = "response"
    5. ## 422.1149
    6. ## 返回lnT
    7. predict(fit, newdata = nd, type = "link"
    8. predict(fit, newdata = nd, type = "lp"
    9. predict(fit, newdata = nd, type = "linear"
    10. ## 6.045278
    11. ## 返回每个回归项
    12. predict(fit, newdata = nd, type = "terms"
    13. ##            age           sex ph.karno
    14. ## 1 1.756085e-05 -0.0006437289        0
    15. ## 返回T的分位数
    16. predict(fit, newdata = nd, type = "quantile",
    17.         p = seq(0,1,0.1)) 
    18. ##  [1]   0.00000  77.16338 135.99337 193.79020 254.17593 320.05966 395.14853
    19. ##  [8485.63274 604.64384 792.42089       Inf
    20. ## 返回lnT的分位数
    21. predict(fit, newdata = nd, type = "uquantile",
    22.         p = seq(0,1,0.1)) 
    23. ##  [1]     -Inf 4.345925 4.912606 5.266776 5.538027 5.768507 5.979262 6.185453
    24. ##  [96.404640 6.675093      Inf

    参考资料

    [1]

    A Review on Accelerated Failure Time Models: http://www.ripublication.com/ijss17/ijssv12n2_15.pdf

    [2]

    Chapter 4: Accelerated Failure Time models: https://mirrors.tuna.tsinghua.edu.cn/CRAN/web/packages/survival/vignettes/survival.pdf


    634d81f47318b769d2ffd4fa2ccafbcc.jpeg
  • 相关阅读:
    聚类算法——kmeans&Dbscan
    Postgresql数据类型-时间类型
    RK3588 rtc-hym8563设备开发
    【c语言】数据在内存中的存储
    计算机毕业设计Java编程训练系统设计与实现(源码+系统+mysql数据库+lw文档)
    echarts vue里画一个简单的环状饼图
    自学网络安全———(黑客技术)
    ElasticSearch 之 数据类型
    正则表达式
    【Python查找算法】二分查找、线性查找、哈希查找
  • 原文地址:https://blog.csdn.net/weixin_54000907/article/details/126811808