问题标签 [lifelines]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
424 浏览

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

我正在使用lifelinesPython 上的包运行 Cox PH 模型。

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

知道如何解决这个问题吗?文档建议使用惩罚器,但我还没有找到让我运行这个东西的值。

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

这是它输出的错误:

我检查了相关表,一些变量非常相关,但对我来说仍然有点奇怪,它适用于完整的东西,但不适用于交叉 val。

有没有一种在不完全删除变量的情况下摆脱高相关性的好方法?

编辑:

我对它进行了更多测试。首先,我删除了所有相关性超过 0.74 的变量,这在 KFold 方法中不起作用。

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

0 投票
1 回答
275 浏览

python - 如何指示 Kaplan-Meier Fitter (python) 绘制 90% 的数据点以避免突然下降

我正在编写一些 python 代码来使用KM Fitter做 Kaplan-Meier (KM) 曲线,并且通常在同一个图中绘制 4 条曲线来比较不同的组。获得 KM 曲线的基本方法是:

from lifelines import KaplanMeierFitter

#Create the KMF object
KM_curve = KaplanMeierFitter()

#Give data to object. Status is 0 if alive, 1 if deceased (in my case)
KM_curve.fit (durations=My_Data["Time"], event_observed=My_Data["Status"])

#I do a figure in which I use this line 4 times (one per group)
KM_curve.plot(ci_show=False)

有了这 4 行代码和一个 pandas 数据框(这里称为 My_Data),KM Fitter 会自动进行所有计算和绘图,但我想知道是否有人知道如何过早地停止曲线。我已经完成了大约 50 个不同的图表,它们看起来不错,并为我提供了我需要的信息,但有时某些曲线的最后一部分会急剧下降到 0%(垂直)或非常接近它。这很奇怪,因为我的 x 轴末端没有一个组有 0 个幸存者 [参见本例中的红线 https://i.stack.imgur.com/bn6Vy.png ]

我确实读过 KM 曲线很好地看到了中间部分的趋势,但曲线的最后一部分可能会产生误导,必须仔细检查。如果该组中没有足够的患者,则尤其如此,因此,生存百分比估计值急剧下降。从事生物信息学研究的人告诉我,她通常会在剩下 10% 的患者时停止绘制曲线,以防止出现此问题。是否可以在 python KMF 中做到这一点?

0 投票
1 回答
931 浏览

python - ConvergenceError:由于矩阵求逆问题导致收敛停止

每当我尝试在 Python 中运行 CoxPH 回归时,我都会不断收到错误消息。我不是python的专业人士,还在学习。

加载数据后

运行这些代码时收到此错误消息

请我需要帮助我不知道该怎么做如果我添加假人我有不同的错误消息

这是我收到的错误消息

如果我运行代码而不为标签分配值并且不添加假人,它会运行但不同的级别没有显示。它就像连续变量一样运行

这是数据

0 投票
2 回答
137 浏览

python - 生存数据的右删失可视化

我想知道是否有一种方法可以生成这样的图表

在此处输入图像描述

使用生存数据。例如假设我们有这个数据框

我们将如何创建后一个图表?

0 投票
0 回答
47 浏览

python - 所有协变量的生命线危险比 = 1

我正在使用 lifelines 包运行以下命令:

但是我得到的所有危险比都等于 1 (exp(coef) 和置信区间相同

我是不是哪里出错了?所有危险比应该正好为 1 的可能性有多大?

谢谢[1]:https ://i.stack.imgur.com/aI6sZ.png

0 投票
1 回答
97 浏览

python - lifiline 中的 plot_covariate_groups 给出 NameError: name 'self' is not defined

我正在使用时变协变量运行生存 cox 回归:

我想看看我的变量对生存的部分影响,例如变量 REER,我正在运行代码 ctv.plot_covariate_groups(covariates='REER':)但这给了我错误:

0 投票
1 回答
94 浏览

survival-analysis - Python 中的生存分析 - Python 中是否有任何 survminer 等价物?

我是一名数据科学家,是一名狂热的 R 用户,目前正在探索 Python,如果它有助于扩大我的分析范围。作为第一步,我尝试使用 Python 复制我当前的 R 分析。在肿瘤学领域工作后,我经常使用事件发生时间数据进行生存分析。R 有一个非常强大的工具集来分析和绘制事件数据的时间,例如。生存和幸存者。我在 python 中使用 lifelines 包,但我发现它不如 survminer (ggsurvplot) 优雅,尤其是在可视化方面。只是想听听其他人是否有同样的感觉并找到任何解决方案来解决这个问题。如果有人有足够的带宽在 python 中开发 survminer 等价物,我也愿意做志愿者。

0 投票
1 回答
57 浏览

survival-analysis - 如何找到生存分析的最佳分类?

我有一个关于生存分析的问题。但是,我有以下数据(只是摘录):

在此处输入图像描述

现在我正在尝试使用 Python 生命线包进行生存分析。例如,我想了解 T 细胞是否会影响总体存活率 (OS)。但据我所知,我需要将 T 细胞的数量分类为不同类别,例如高 T 细胞和低 T 细胞……对吗?但是我如何找到最合适的 Cut-Out?我的计划是证明,具有高 T 细胞的肿瘤比低 T 细胞具有更好的存活率。但是我怎么能从我这里的数据中找到区分高 T 细胞和低 T 细胞的最佳截止值。

有人有想法吗?我的一个朋友谈到了“ROC”-Analysis,但我现在真的很困惑......我会很高兴有任何帮助!

0 投票
0 回答
439 浏览

python - lifelines/scikit-survival:计算预期时间

我试图了解如何计算我的数据集中每个 id 的预期时间。我有一个看起来像 Dataframe 形状(500,4)的数据集:

让我们使用每个 ID的生存函数lifelines来计算期望值。predict_expectationmedian

第 1 部分:计算预期值

对于 scikit-survival,使用predict_survival_function()

一致性指数 = 0.82

第 2 部分:将结果与实际值进行比较

所以现在我使用两种方法创建了一个表:(predict_expectation()“预期”列)和predict_median(“中值”列),如下所示:

对于 scikit-survival,它只能通过取中位数来计算 (请不要说我知道对于生命线中的其他算法\scikit-learn 可能会有所不同,但要关注这个想法)

带有“diff”的列表示各个预测列与“time”之间的差异

问题

  1. 为什么预期的时间如此之差?

  2. 方法有什么问题吗?我应该预测整个数据(审查+未经审查)还是只使用审查数据?(我已经尝试了三种可能的排列,只有审查,只有未经审查,两者都有,它仍然关闭)。我的理解是,如果每个 ID 的生存曲线收敛到 0(未经审查的数据),您可以使用曲线下面积计算,如果被审查,则需要使用生存曲线的中位数。(记住这一点,我已经完成了上述计算)

  3. 我怎样才能获得更接近的估计?

  4. 如果运行实验并仅在未经审查的数据上拟合模型,然后在相同的未经审查的数据上进行预测,你应该得到一个非常接近的估计,对吗?好吧,事实并非如此。您应该能够通过从预期中位数中取平均值来检查这一点,它应该与实际值的中位数相似,对吧?或者您可以检查“差异”列的平均值,看看它是否至少平均为 0,但事实并非如此,这表明模型中存在一些潜在的偏差

  5. 为什么predict_expectation输出与 的不同predict_median?哪个更推荐使用?

这种现象发生在任何数据集上,您可以尝试使用该from lifelines.datasets import load_leukemia数据集复制此示例,即使您的一致性指数为 0.9,这种情况仍然会发生。

这是我发现的一些资源,可以解释这一点,但我并不完全理解,如果有人可以将其分解得更多,那就太好了。

来源

  1. https://github.com/sebp/scikit-survival/issues/94
  2. https://github.com/sebp/scikit-survival/issues/190
  3. https://scikit-survival.readthedocs.io/en/latest/user_guide/understanding_predictions.html
  4. https://lifelines.readthedocs.io/en/latest/fitters/regression/CoxPHFitter.html#lifelines.fitters.coxph_fitter.CoxPHFitter.predict_expectation

你可以在这里找到一个完全编码的例子:https ://github.com/felipe0216/survival_examples/blob/main/predict_expectation_scikit.py

0 投票
0 回答
134 浏览

python - Cox 比例风险模型生命线运行时警告除以零和遇到无效值

我正在使用生命线包构建 Cox 比例风险模型,以预测借款人可能提前偿还抵押贷款的时间。我通过 liflines 包中的 cph.coxphfitter() 拟合模型。尽管该模型在一致性指数方面表现不错,但当我制作校准图时,请参见屏幕截图,我收到以下两条错误消息:

这些问题可能发生在数据集的哪一列?它是持续时间列、事件列还是协变量之一?如果是这样,我该如何解决它们?先感谢您!

校准图

T=140 校准图: t=140 时的校准图