1 生存分析的介绍

生存分析用于研究被观察对象会在何时发生某个事件的问题,例如银行业务的预测、保险及零售行业客户下次购买时间等的预测。其结果变量是一个时间点到任何感兴趣事件发生的时间。

S(t)=Pr(T\geq t)=1-F(t)=\int_{t}^{\infty}(x)dx

另外还有风险函数。

删除数据包括左删失、右删失、区间删失,用以确定时间范围。

生存分析方法

生存分析方法
生存分析方法 可视化方法 假设
无参数 Kaplan-Meier图 没有假设
半参数 Cox Proportional Harzard图 有假设
参数 Kaplan-Meier图 有假设

使用survival包,survminer包中的ggsurvplot()函数用于绘制生存曲线。

2 非参数模型

Kaplan-Meier方法适用于数据量比较小的,Surv()函数用来创建生存对象,time\event为其两个参数。

lung$SurvOBJ<-with(lung, Surv(time,event=status)

通过survminer包中的ggsurvplot()函数可以对K-M你和方法进行可视化。 

3 半参数模型

Cox模型对协变量存在一个很强的假设。使用suvival包中的coxph()构建Cox模型。

cox<-coxph(Surv(time=time, time2=status)~age+sex+ph.karno+wt.loss, data=lung)

cox.zph适用于检验Cox模型的比例风险假设。

ggfortify包中的autoplot()函数可以对Coxph模型进行可视化。

survfit可用于预测。 

4 参数模型

参数模型与费参数模型非常相似,不同点在于需要定义什么分布拟合数据,如指数分布。

用到的包是flexsurv,用到的函数是flexsurvreg()。

另外也可以使用随机森林的算法。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐