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

本篇目录如下:

  • 1 AFT模型

    • 1.1 符号说明

    • 1.2 模型形式

    • 1.3 概率分布

  • 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模型对失效时间进行了对数转换,因此存在两个概率分布,一个是针对对数转换前的失效时间,另一个是针对对数转换后的残差。

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

残差 失效时间
extreme weibull
gaussian lognormal
logistic loglogistic

2 R中的函数

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

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

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

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

查看模型输出结果摘要:

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

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

拟合模型:

head(fitted(fit))
## [1] 354.5663 374.0385 416.2499 412.5573 440.6651 244.7723

模型预测:

nd = apply(lung, 2, mean, na.rm = T)
nd = data.frame(t(nd))## 返回T
predict(fit, newdata = nd, type = "response")
## 422.1149## 返回lnT
predict(fit, newdata = nd, type = "link")
predict(fit, newdata = nd, type = "lp")
predict(fit, newdata = nd, type = "linear")
## 6.045278## 返回每个回归项
predict(fit, newdata = nd, type = "terms")
##            age           sex ph.karno
## 1 1.756085e-05 -0.0006437289        0## 返回T的分位数
predict(fit, newdata = nd, type = "quantile",p = seq(0,1,0.1))
##  [1]   0.00000  77.16338 135.99337 193.79020 254.17593 320.05966 395.14853
##  [8] 485.63274 604.64384 792.42089       Inf## 返回lnT的分位数
predict(fit, newdata = nd, type = "uquantile",p = seq(0,1,0.1))
##  [1]     -Inf 4.345925 4.912606 5.266776 5.538027 5.768507 5.979262 6.185453
##  [9] 6.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


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

  1. SPSS教程之生存分析的Cox回归模型(比例风险模型)

    最近有同学问师兄,"最近我要做生存分析,可是我不太会,也不太懂,师兄能不能教教我",好吧,今天开一贴,讲讲这个.有同样的问题的同学可以一起来看看,毕竟在临床.科研上,这方面知识还是 ...

  2. survival | 生存分析(1):生存曲线(上)

    从本篇开始,学堂将推出<生存分析(survival analysis)>系列推文,本篇的内容是生存曲线(survival curve),它描述的是生存率随时间变化的走势图,通常呈阶梯状递减 ...

  3. Accelerated Failure Time Models加速失效时间模型AFT

    Weibull distribution 或者 σ是未知的scale参数,独立于X的常量, σ>0 是服从某一分布的随机变量 残差(residuals)= 转载于:https://www.cnb ...

  4. survival | 生存分析(3):生存曲线(下)

    前两篇推文完成了对单类型事件分析的介绍,本篇将介绍多类型事件情况下的分析. 第一部分介绍多类型单事件.这种情况下,虽然事件类型有多种,但每个主体只对应一种事件结果或删失,又称竞争风险(competin ...

  5. R语言构建生存分析(survival analysis)模型示例

    R语言构建生存分析(survival analysis)模型示例 生存分析处理的是预测特定事件将要发生的时间.它也被称为失败时间分析或死亡时间分析.例如,预测癌症患者存活的天数,或者预测机械系统将要失 ...

  6. 一篇项目走进生存分析(Survival Analysis)的世界【Python版

    转载自AI Studio 项目链接https://aistudio.baidu.com/aistudio/projectdetail/3410026 开篇语 生存分析在医学研究中占有很大的比例,而且进 ...

  7. php 生存分析,生存分析与R--转载

    生存分析与R 生存分析是将事件的结果和出现这一结果所经历的时间结合起来分析的一类统计分析方法.不仅考虑事件是否出现,而且还考虑事件出现的时间长短,因此这类方法也被称为事件时间分析(time-to-ev ...

  8. Stata:生存分析一文读懂

    原文链接:https://www.lianxh.cn/news/0de16d365945e.html 目录 1. 生存分析简介 1.1 基本介绍 1.2 生存分析解决的问题 2. 生存分析模型 2.1 ...

  9. 生存分析——快手的基于深度学习框架的集成⽣存分析软件KwaiSurvival(一)

    看到快手这篇文章,还开源了他们的KwaiSurvival,上手试了试: KwaiSurvival 是快⼿DA⾃主开发的基于深度学习框架的集成⽣存分析软件,帮助使⽤者在 Python编程环境下⾼效地使⽤ ...

最新文章

  1. 用python快速画小猪佩奇
  2. 文件中数组的最大值及其对应的最小下标
  3. 启明云端分享| 2.4寸磁编码旋钮方案智能屏
  4. 年轻——塞缪尔.厄尔曼
  5. ElementUI在el-table基础上进行导出.xls表格操作
  6. python系统学习:函数积累(持续更新)
  7. Pile 0009: Vim命令梳理
  8. arduino nano 蓝牙_贸泽开售结合蓝牙5.2与USB 2.0的 Nordic Semiconductor nRF52820多协议SoC...
  9. C++ zip压缩库使用
  10. vue ---- webpack中的插件 webpack-dev-server
  11. svn关键字替换_SVN关键字替换示例
  12. sublime python调试_如何用sublime调试程序
  13. C#:判断数组中有没有某个值的方法
  14. PS如何导入3dlut调色预设文件步骤方法
  15. 计算机无法读出u盘,教你win10系统电脑无法识别u盘的应对办法
  16. 图片尺寸放大不改变清晰度
  17. 饿了么为啥给你推荐这个?本地生活搜索算法解密
  18. 2017CS231n笔记_S11分割,定位,检测
  19. C语言——测试电脑大小端
  20. 2022春招实习面经【美团、阿里、微软、字节、米哈游】

热门文章

  1. 【Golang开发面经】字节跳动(三轮技术面)
  2. Java语言这些年的发展
  3. 自动回复邮件 html,创意十足的邮件自动回复
  4. java中Excel导出echart图片
  5. 数据建模 Database Modeling:概念 (Conceptual) vs 逻辑 (Logical) vs 物理数据 (Physical) 模型
  6. 端午节,我们失去的太多了
  7. 领导说“辛苦啦”,下属怎么回答?这三种话术,给你职场加分
  8. 精妙sql语句(完全版)
  9. linux 多线程 semaphore ,Linux下多线程编程-Pthread和Semaphore使用.doc
  10. 低碳世界杂志低碳世界杂志社低碳世界编辑部2022年第7期目录