问题标签 [survival-analysis]

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 投票
4 回答
16379 浏览

r - 神经网络预测为所有预测返回相同的值

我正在尝试使用神经网络包构建神经网络,但遇到了一些麻烦。我的nnet包裹很成功,但没有运气neuralnet。我已经阅读了整个文档包并且找不到解决方案,或者我无法发现它。

我正在使用的训练命令是

和预测

训练比 nnet 训练花费的时间要长得多。我尝试使用与nnet(反向传播而不是弹性反向传播)相同的算法,但什么也没改变,也改变了激活函数(和linear.output=F)以及几乎所有其他东西,结果没有改善。预测值都是一样的。我不明白为什么 nnet 对我有用,而 nnetneuralnet却不行。

我真的可以使用一些帮助,我(缺乏)对这两件事(神经网络和 R)的理解可能是原因,但找不到原因。

我的数据集来自UCI。我想使用神经网络进行二元分类。数据样本为:

转换为矩阵,因子为数值:

预测值总结:

Wilcoxon-Mann-Whitney 检验的值(曲线下面积)表明预测性能几乎与随机相同。

0 投票
1 回答
1251 浏览

r - 将生存数据从宽转换为长

我正在阅读http://www.uk.sagepub.com/books/Book233417并且Rcmdr用于转换罗西数据http://cran.r-project.org/doc/contrib/Fox-Companion/Rossi.txt随时间变化的生存分析从宽到长。

进行转换的Rcmdr脚本是:

Rcmdr但是,如果未加载,则此脚本不会运行。

Rcmdr 脚本的结果将 Rossi 数据帧从

到 Rossi.long 数据

是否可以使用reshape或任何其他数据转换包执行这种精确的转换?

更新:该Rcmdr脚本只能在Rcmdr

0 投票
1 回答
142 浏览

r - 仅访问生存对象的一部分

使用我生成的包survival中的R我这样的 Kaplan-Meiser-object

使用print(fit)我得到

我现在如何才能访问这个整体生存对象的一部分?就像打印结果只是为了sex=1

当然我可以做类似的事情

但是使用非常大的数据集,多次重新创建生存对象是不利的。

0 投票
1 回答
848 浏览

r - coxph 对象中的脆弱性估计

如果使用 obj=coxph(... + frailty(id) ),则该对象还返回每个个体的 (log)frailty 估计值,可以使用 obj$frail 提取。

有谁知道这些估计是如何获得的?它们是经验贝叶斯估计吗?

谢谢!

西奥多

0 投票
1 回答
7873 浏览

r - 如何绘制生存函数的“逆”?

我试图绘制生存函数的倒数,因为我的数据实际上是随着时间的推移事件的比例增加。我可以制作 Kaplan-Meier 生存图,但我想制作这些图的“相反”。我可以使用以下方法获得我想要的东西fun="cloglog"

'cloglog' 功能

但我不太明白这对时间做了什么(不是从 0 开始,距离减小了?),以及为什么生存线延伸到 y 轴上方。

非常感谢一些帮助!

干杯

0 投票
0 回答
2654 浏览

r - 分配的无效生存时间,生存分析;包生存

我们想分析新获得的客户在 R 中仍然是客户的时间。数据集在 730 天进行了右删失,我们有 10 个自变量。

模型如下所示:ln(Duration)=X'B+S*e,其中 X 是 10 个自变量的矩阵,B 是系数向量,S 是尺度参数,e 是误差项

我们使用的数据集如下: http ://www.drvkumar.com/books/25/Statistical-Methods-in-Customer-Relationship-Management

我们使用survival包及其survreg函数,输入如下代码:

但结果不正确,因为使用 SAS 代码会生成另一个输出(已确认是正确的)。

我们尝试生成一个 Duration 的日志变量,并在前面描述的模型中实现了新的变量 logDur:

但是弹出以下错误信息:Fehler in Surv(logDur, Censor) : Time and status are different lengths

如果有帮助,这里是 SAS 代码:

0 投票
2 回答
1362 浏览

r - 使用 survreg/tobit 预测超出界限

所以我正在使用 survreg,我希望我的预测结果遵循 0 的下限,但它们经常表示负面结果。我认为它以某种方式估计了线性结果,而不是我试图创建的生存模型。这是我所做的:

首先,我估计了一些点来加快我的估计过程。如果没有这个第一阶段,它就无法收敛。我按照 ?survreg 中的代码创建了一个生存对象,该代码提供了一个明确的 tobit 回归示例。我在下面为 x 和 y 复制了这个。在我的数据集中,y 只能观察到非负值,但如果它是正值,它往往会在 200 左右正态分布,sd 约为 20。X 可以取任何值,理论上不受约束通过立即想到的任何特定数字。

我运行生存回归,它应该相当于一个 Tobit。为了确认我对事件的解释是相同的,我运行了以下命令:

该图在零处显示一条平线,因此在目视检查时,这些命令应该是相同的。但是,在这两种情况下,都会预测到低于 0 的结果。这是有问题的,因为我已经说过可观察信息的左边界是 0。我的期望是所有预测值都必须 > 0。

我尝试使用“链接”、“响应”、“线性”类型进行预测,但无济于事。我假设 predict 命令正在产生结果,就好像审查没有发生一样。如何生成服从下限 0 的预测?

参考:

  1. 在包 AER 中的 tobit() 之后运行 predict()
  2. https://stats.stackexchange.com/questions/11440/standardized-residuals-of-a-tobit-model-in-r
0 投票
1 回答
3608 浏览

r - 为生存定义分布::survreg()

我尝试使用伽玛分布拟合一个 survreg 模型。

下面?survreg.distributions我定义了我的自定义分布,如下所示:

但是我无法让它运行:

该错误来自一些 C 代码,但我认为它是更早生成的......

survreg 的任何提示/建议/替代方案?

0 投票
0 回答
432 浏览

r - 使用 R 中的竞争风险模型预测每种故障类型的可能性

我希望在历史数据上运行一个竞争风险模型,并预测新数据集中每种类型的死亡在指定时期(假设一个时期)的可能性。到目前为止,我已经查看comp.risktimeregpackage 和crrin cmprsk,但是在弄清楚如何使用他们的 predict 方法来返回这些可能性时遇到了麻烦。

使用bmt数据集(来自timereg包)并comp.risk作为示例,我想做类似的事情:

t=1理想情况下,这将预测和之间每种死亡类型的可能性t=2,但 predict 函数会返回其他类型的结果。

最后一行不起作用,因为模型不是使用 start/stopSurvival对象类型构建的,并且comp.risk似乎没有采用左截断数据。为了说明,下面的模型语句包括开始时间返回错误Error in comp.risk(Surv(start.time, time, cause > 0) ~ platelet + age + : only right censored data

0 投票
1 回答
1444 浏览

r - 在 R 中将 pspline 项添加到 coxph 模型更改汇总表

我正在尝试使用 knitr/xtable 从报告中的 coxph() 对象生成表格。当我在模型中不包含 pspline 项时,一切都按预期工作。在单个块中:

但是当我包含一个惩罚样条项时,summary() 对象的结构会发生变化,并且$conf.intand$coeff插槽不再可用。