嗨,我在用救生索软件包做Cox回归。我想检查一个非二进制的分类变量的效果。 有没有一种内在的方法可以做到这一点?或者我应该将每个类别因子转换为一个数字? 或者,在生命线中使用kmf fitter,是否可以对每个因素进行此操作,然后获得p值? 我可以绘制单独的图,但我找不到如何计算p值
谢谢大家!
更新: 好的,如果在使用pd.get_假人后,我有一个数据帧df,形式如下:
event time categorical_1 categorical_2 categorical_3
0 0 11.54 0 0 1
1 0 6.95 0 0 1
2 1 0.24 0 1 0
3 0 3.00 0 0 1
4 1 10.26 1 0 1
... ... ... ... ... ...
1215 1 6.80 1 0 0
我现在需要删除一个虚拟变量。 然后做:
cph.fit(df, duration_col=time, event_col=event)
如果我现在想画出分类变量如何影响生存图,我该怎么做? 我试过:
summary = cph.summary
for index, row in summary.iterrows():
print(index)
cph.plot_covariate_groups(index, [a[index].mean()], ax=ax)
plt.show()
但它在同一条曲线上绘制了变量的所有不同因子,我认为曲线是不同的。 实际上,我不确定它是绘制所有曲线还是只绘制最后一条曲线,但它绘制了分类变量中所有可能性的图例
谢谢
与其他回归一样,您需要将分类变量转换为虚拟变量。您可以使用
pandas.get_dummies
来实现这一点。一旦完成,Cox回归模型将为您提供每个类别的估计值(除去删除的伪变量-请参见注释here)对于第二个问题,您需要使用类似
lifelines.statistics.multivariate_logrank_test
的方法来测试一个类别是否不同。(另见lifelines.statistics.pairwise_logrank_test
)对于你的密谋问题,有一个更好的方法
其中
n
是新数据帧中的类别数请参阅此处的更多文档:https://lifelines.readthedocs.io/en/latest/Survival%20Regression.html#plotting-the-effect-of-varying-a-covariate
相关问题 更多 >
编程相关推荐