【问题标题】:Accelerate for-loop containing coxph function call加速包含 coxph 函数调用的 for 循环
【发布时间】:2019-01-23 19:31:35
【问题描述】:

好的。所以这是一个与我之前发布的one 类似的问题,我仍然没有令人满意的解决方案。

正如您将在下面看到的,我使用了一些示例数据来构建 Cox PH 模型,然后将其传递给包含 for 循环和函数 predictSurvProb 来自 pec 的自定义函数,最终填充一个预分配空向量prediction

我尝试使用来自compilercmpfun。但是,性能并没有提高。我注定要忍受这种缓慢的处理速度,还是有什么方法可以加快处理速度?我不能用 C++ 编码,所以Rcpp 不是我想像的选择。

谢谢。

require(dplyr, survival, pec)

cox_model <- coxph(Surv(time, status) ~ sex, data = lung)

surv_preds <- function(model, query) {

  prediction <- vector(mode = "numeric", length = nrow(query))
  time <- 30

  for(i in 1:nrow(query)) {
    prediction[i] <- predictSurvProb(model, newdata = query[i, ], times = query[i, "time"] + time)
  }
  prediction
}

surv_preds(cox_model, lung)

【问题讨论】:

  • 我无法按原样运行您的代码。我得到Error in coxDesign.coxph(object) : invalid object,然后是set x=TRUE in the call to coxph
  • 它对我有用吗?

标签: r performance for-loop functional-programming survival-analysis


【解决方案1】:

在尝试了 C++ 和并行计算之后,我发现简单地将因子变量转换为整数可以显着改进我的应用程序。这项改进将处理时间从近一周缩短到约 60 小时!

我怀疑这仍然不是最有效的解决方案,但现在必须这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    相关资源
    最近更新 更多