由于需要对数据进行生存分析,我之前都是在R语言上面进行的,这次想在python上实现,在网上找了好多教程,为了以后忘记,在此记录一下
Cox模型的详细理论这里就不讨论了,网上有很多介绍的,自行搜索,这里直接上代码吧
首先我们需要在cmd下安装一个lifelines库pip install lifelines
接下来,在python中导入相关的模块,这里使用官方的数据集进行演示#导入相关的库
from lifelines.datasets import load_rossi
from lifelines import CoxPHFitterrossi_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',指定曲线的颜色。也可以不写,会随机自动生成颜色
'''