问题标签 [survival]

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 投票
1 回答
270 浏览

r - R中的生存统计

我在 15 个独立的类别中有 100 次重复,每个人的生存记录在 5 个不同的阶段。

数据示例如下:

我也有阳性和阴性对照,并想比较这些组,看看哪些组的存活率显着降低。

任何推荐的统计分析或能够分析这些数据的 R 包都将很高兴收到。

0 投票
0 回答
274 浏览

r - Survdiff p 值比较

我正在尝试对我收集的一组数据进行生存分析。在这个数据框 (m3) 中,每一行是一个新患者,每一列是我识别的一个突变。我制作了一个二进制数据表来指示每个患者的突变是阳性还是阴性。我可以为每一列(突变)运行一个 survfit 函数,但我有数百个并且想要循环遍历它们。我已经编写了以下代码,但认为它不正确(没有输出任何内容)。

一旦我收集了这些数据,我想制作一个表格,其中每个突变(列)作为一行,并将来自这个 survfit 对象的 p 值作为列。

我不知道为什么我没有任何 for 循环的输出,更不知道如何生成新的数据框。我相信我会对其进行细分。

0 投票
1 回答
283 浏览

r - Survdiff Loop - P values

I'm trying to subset my current data frame with a new data frame that lists genes I'm investigating in one column and p-values in another (for each gene).

I have a data frame called m3 that looks like below:

The dimensions of my actual data frame are 72 x 258. I'm trying to loop through each column and calculate the p-value for the survival analysis I am running. I'm trying to determine if having a specific mutation will result in a statistically significant survival difference. I denote a patient has a mutation by 1 for each gene.

I have written a survival function for just one column, but I want to loop through each one and then ultimately subset it to create a new data frame. I am unsure if it would be wise to use the apply function (I have read that is common) or to use a for loop.

I tried this initially, but it did not work...

Can you please help me with my loop?

0 投票
0 回答
385 浏览

r - 在 R 中将文本/标签添加到生存图(kaplan Meier)

想要将患者 ID 作为标签添加到我的生存图中。我知道我没有提供源数据,抱歉。但我想,我的问题无论如何都可以和你们聪明的人一起解决;-)

问题在于,标签(ID)将被绘制在正确的 x 位置,而不是在正确的 y 位置。 看我的情节

如何解决?使用积分(x..)?

0 投票
1 回答
375 浏览

machine-learning - 如何处理审查实例?

我正在开展一个项目,使用机器学习方法和包含大约 900 个变量的数据集来预测事件(移植失败)的日期,我是这个领域的新手,我不确定我是否走在正确的轨道上。

起初,我使用神经网络在 python 中使用 Keras 库进行预测,然后我发现我的数据中有 70% 的审查实例(Y 变量)。但是,除了 Y 之外,我还有一个后续变量。所以,我得出结论,我不应该使用神经网络来解决这类问题,而且我必须事先处理审查数据。现在我有三个问题:

1)有这样的审查数据率是否正常?我们应该如何处理这种情况?

2) 我的结论是否正确,即神经网络不是解决我的问题的最佳方案?如果不是,最常见的机器学习方法是什么?我为此目的找到了生命线和 scikit-survival 包,但我不知道哪个更好,它是正确的解决方案。

3)我用后续变量替换了审查数据,而根据我的数据集中审查数据的高比例,我认为它不合适。我意识到我应该使用另一种方法,如校准,但我找不到执行此操作的 python 库。你能帮我解决这个问题吗?Pyhton 中通常用于校准什么?

0 投票
0 回答
210 浏览

pandas - 生命线生存分析导致大型数据框变慢

我正在尝试在 python 中对大型数据集(约 80 行 x 12,000 列)进行生存分析。

目前我正在使用:

但它非常慢。将数据帧分成 100 个块并多次运行 cf.fit 会稍微快一些,但它的时钟仍然在 80 秒左右。这明显比 R 的 coxph 慢,而且我真的不想使用 rpy2 在 R 中运行分析。

我对如何加快速度有点不知所措,所以任何建议都将不胜感激。

0 投票
1 回答
2624 浏览

r - 如何在 R 中拟合脆弱的生存模型

因为这是一个很长的问题,所以我将其分为两部分;第一个只是基本问题,第二个提供了我迄今为止尝试过的细节。

问题 - 简短

你如何在 R 中拟合个体脆弱的生存模型?特别是,我正在尝试重新创建下表中的系数估计值和 SE,它们是通过将半参数脆弱模型拟合到此数据集链接中找到的。该模型采用以下形式:

其中z_i是每个患者的未知脆弱参数,X_i是解释变量的向量,\beta是相应的系数向量,并且h_0(t)是使用解释变量疾病性别bmi年龄的基线风险函数(我在下面包含代码以清理因子参考水平)。 在此处输入图像描述

问题 - 长

我正在尝试遵循并重新创建医学研究教科书中的建模生存数据示例,以拟合脆弱的 mdoels。我特别关注半参数模型,教科书提供了上表中显示的正常 cox 模型、对数正态脆弱性和 Gamma 脆弱性的参数和方差估计

我能够使用重新创建无脆弱模型估计

但是我真的很难找到一个可以可靠地重新创建第二个 2 列结果的包。在网上搜索我发现了这个表,它试图总结可用的包:

在此处输入图像描述 资源

下面我发布了我当前的发现以及我使用的代码,它可以帮助人们识别我是否只是错误地指定了函数:

frailtyEM - 似乎最适合伽马,但不提供对数正态模型

生存- 对伽玛发出警告,从我读过的所有内容来看,它的脆弱功能似乎被归类为贬值,建议改用 coxme。

coxme - 似乎有效,但提供了与表中不同的估计值,并且不支持伽马分布

frailtySurv - 我无法正常工作,似乎总是用平坦值 1 拟合方差参数,并提供系数估计值,就好像没有拟合出脆弱的模型一样。此外,文档没有说明哪些字符串支持 frailty 参数,所以我无法弄清楚如何让它适合对数正常

frailtyHL - 产生警告信息说“没有收敛”但它仍然产生coeficiant估计但它们与教科书不同

frailtypack - 我根本不理解实现(或者至少它与教科书中的内容非常不同)。该函数需要指定节点和平滑器,这似乎极大地影响了结果估计。

parfm - 仅适合参数模型;话虽如此,每次我尝试使用它来拟合威布尔比例风险模型时,它都会出错。

phmm - 还没试过

鉴于我没有成功通过大量软件包,我非常感谢,问题很可能是我自己没有正确理解实现并且错过了使用这些软件包。任何有关如何成功重新创建上述估计的帮助或示例将不胜感激。

0 投票
0 回答
881 浏览

r - 如何使用包“pec”中的 predictSurvProb() 来预测具有时间相关协变量的数据集的生存概率?

我有一个数据集如下:

其中 X3 是时间相关变量。

我建立了一个cox回归模型如下:

得到模型后,我使用“pec”库中的 predictSurvProb() 来预测每个患者在每个时间点的生存概率:

但是,该函数返回如下数据框,其中每条记录在第 1 个月和第 4 个月之间都有自己的生存概率:

显然,结果没有意义。患者 001 有四组预测概率,每组都不同。

我怎样才能添加一些东西让 predictSurvProb() 知道所有具有相同 ID 的记录应该组合在一起并且只返回一组预测?

0 投票
1 回答
1503 浏览

r - 在 R 中创建具有时变协变量的计数过程数据集

我正在阅读Singer 和 Willett的Applied Longitudinal Data-Analysis的第 15 章,关于扩展 Cox 回归模型,但这里的 UCLA 网站没有本章的示例 R 代码。我正在尝试重新创建关于时变协变量的部分,并坚持如何从提供的人员级别数据框创建计数过程数据集。我查看了survival包小插图,但在创建自己的数据集时遇到了麻烦。这是以 Singer 和 Willett 示例为模型的玩具数据,该示例预测了 17 至 40 岁男性首次使用可卡因的时间。id是 ID,ageInit是第一次使用可卡因或审查的年龄,used是事件日志,表示第一次使用可卡因 ( 1) 或审查 (0)。有一个时间不变预测因子earlyMJ,表明 17 岁之前吸食大麻。还有三个时变协变量需要告知数据集的创建:timeMJ,这是 17 岁之后第一次使用大麻sellMJ的年龄,这是销售大麻的年龄,以及odFirst,这是第一次使用其他药物的年龄。NA这些预测变量中的 s 表示参与者在任何时候都没有执行相关操作。

遵循 Therneau 等人在survival小插图中的过程,我们创建了第二个数据集,在这种情况下,将结果变量 和随时间变化的预测变量重新表达ageInit为从研究开始的年数(即 17 岁)。

我们将这些新数据与原始数据集合并,通过event()调用创建两个新列,表示每个协变量的时间间隔。我们还通过tdc()调用为每个参与者每次经历一个协变量事件时创建一个新行。

问题是当我运行 Cox 回归时,同时使用时不变和一些时变协变量,我无法使模型工作。

并获得无意义的系数和警告信息

此外,我什至不知道这是否是一个正确的计数过程数据框,因为在 Singer 和 Willett 中,他们建议每个参与者在每次数据集中的任何人经历事件时都需要有一行。

在这些问题上的任何指导将不胜感激。

0 投票
0 回答
175 浏览

r - 在 R 中,survreg 的“ldcase”和“ldresp”残差是什么?

我试图了解在 survreg 模型上运行残差函数产生的“ld”残差是什么?

例如

残差函数的文档说明如下:

Escobar 和 Meeker 在一篇文章中讨论了基于这些数量的诊断。主要是对案例权重 (ldcase)、响应值 (ldresp) 和形状的扰动的似然位移残差。

参考

Escobar, LA 和 Meeker, WQ (1992)。使用审查数据评估回归分析中的影响。生物识别技术 48, 507-528。

以案例权重“ldcase”为例,我从参考论文中的理解是,这些残差代表了原始模型与通过将主体 i 的权重设置为 2 来拟合的相同模型之间的对数似然差异的两倍的估计。

但是,当我尝试自己手动编写代码时,我的派生值似乎与残差函数产生的值完全没有关系(下面是完全可重现的示例):

在此处输入图像描述

此外,从论文来看,这些残差应该以 2 * chisq ( p + 2 ) 分布分布,在这种情况下,p = 1 给出 15.62 的单边 95% 截止点,这意味着我手动导出的残差是至少在正确的规模上,这让我对“ldcase”返回的残差实际上是什么感到非常困惑?