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

问题描述

我正在使用lifelines软件包在Python上运行Cox PH模型。

我感到奇怪的是,如果我对整个数据运行模型,则运行它没有问题,但是当我执行交叉验证(使用程序包自己的验证功能)时,会出现收敛错误。

有什么办法可以解决这个问题吗? documentation建议使用惩罚器,但我还没有找到让我运行的东西的值。

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

# 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尚不可用。 有想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...