生命线上的Cox PH显示了收敛问题

2024-09-29 23:18:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在Python上使用lifelines包运行一个Cox-PH模型

我觉得奇怪的是,如果我对整个数据运行模型,运行它就没有问题,但是当我进行交叉验证(使用包自己的验证函数)时,会出现收敛错误

你知道我怎么解决这个问题吗?{a1}建议使用惩罚器,但我还没有找到一个可以让我运行该程序的值

如果您想知道,以下是我的代码:

# Gone right
cph = CoxPHFitter()
cph.fit(daten, "length_of_arrears2", event_col='cured2')

# Gone wrong
cph = CoxPHFitter(penalizer=10)
scores = k_fold_cross_validation(cph, daten, 'length_of_arrears2', event_col='cured2', k=5)

这是它输出的错误:

ConvergenceError: Convergence halted due to matrix inversion problems. Suspicion is high collinearity. Please see the following tips in the lifelines documentation: https://lifelines.readthedocs.io/en/latest/Examples.html#problems-with-convergence-in-the-cox-proportional-hazard-modelMatrix is singular.

我检查了相关表,一些变量是非常相关的,但对我来说仍然有点奇怪,它对完整的东西有效,但对交叉值无效

有没有一个好方法可以在不完全删除变量的情况下消除高度相关性

编辑:

我又做了一些测试。首先,我删除了所有相关性超过0.74的变量,这在KFold方法中不起作用

然后,我手动将数据拆分为90/10,它起作用了,所以我一直尝试到70/30,因为60/40还不起作用。 有什么想法吗


Tags: ofthe数据模型event错误collength

热门问题