Python用Cox比例风险模型进行生存分析-基于lifelines库

由于需要对数据进行生存分析,我之前都是在R语言上面进行的,这次想在python上实现,在网上找了好多教程,为了以后忘记,在此记录一下

Cox模型的详细理论这里就不讨论了,网上有很多介绍的,自行搜索,这里直接上代码吧

以下内容皆可以从lifelines官网找到https://lifelines.readthedocs.io/en/latest/


首先我们需要在cmd下安装一个lifelines库

pip install lifelines


接下来,在python中导入相关的模块,这里使用官方的数据集进行演示

#导入相关的库

from lifelines.datasets import load_rossi   

from lifelines import CoxPHFitter  

rossi_dataset = load_rossi()  #使用自带的数据 

rossi_dataset.describe()  #查看数据

''' 数据要求:

1、每一行为1个样本

2、有1列代表观察的持续时间、1列代表事件是否发生(0或1)

3、数据格式为Pandas DataFrame''' 


cph = CoxPHFitter()  #建立比例风险Cox模型

cph.fit(rossi_dataset, duration_col='week', event_col='arrest')  #模型拟合

#duration_col表示观察时间,event_col 事件是否发生  

cph.plot()   #绘图,查看模型系数和95%CI

cph.print_summary() # 查看所有统计数据(如果显示不出来,请在Jupyter上运行)

模型预测

X = rossi_dataset

cph.predict_partial_hazard(X)

探索某个变量对模型的影响

cph.plot_covariate_groups(covariates='prio', values=[0, 2, 4, 6, 8, 10],plot_baseline=True,cmap='coolwarm')

#help(cph.plot_covariate_groups)

'''作用:在保持其他所有变量不变的情况下,改变单个协变量,对模型的影响

参数:

covariates:要比较的变量。可输入字符或列表,如'age'或['age']

values:不同的数值。列表形式,可输入多个,绘制多条曲线

plot_baseline:是否画基线,默认True。基线是以该变量的均值进行绘制的

cmap='coolwarm',指定曲线的颜色。也可以不写,会随机自动生成颜色

'''

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容