【问题标题】:Cross validation of survival model生存模型的交叉验证
【发布时间】:2017-06-27 22:58:02
【问题描述】:

我正在尝试使用包 survAUC 估计生存模型的 AUC。运行代码后出现错误:

Error in AUC.hc(Surv.rsp, Surv.rsp.new, lpnew, times) : 
NA/NaN/Inf in foreign function call (arg 6)

这个错误的原因可能是什么,我该如何删除它?我的代码是:

head(duration)
  Event_ID      Time Status Season Time_of_day
1        1       15      1      1           0
2        2       30      1      0           1
3        3       15      1      1           0
4        4       15      1      0           0
5        5       45      1      0           1
6        6      105      1      0           1
TR<-duration[1:2176,]
TE<-duration[2177:6528,]
clearance5<-survreg(Surv(duration$Time)~Season+Time_of_day,data = duration,dist = 'weibull',na.action=na.omit)
lpnew<-predict(clearance5,TE)
Surv.rsp<-Surv(TR$Time)
Surv.rsp.new<-Surv(TE$Time)
times<-seq(60,90,105)
auc_hc<-AUC.hc(Surv.rsp,Surv.rsp.new,lpnew,times)

【问题讨论】:

  • 我们无法查看您的对象副本duration
  • 我不确定这是否会导致您的错误,但times&lt;-seq(60,90,105) 会为times 生成一个值 (60),这可能不是您想要的。 seq(60, 90, 105) 表示您需要 60 到 90 之间的值,以 105 个单位分隔。你的意思是你想要从 60 到 90 的 105 个值吗?如果是这样,请使用length.out=105
  • @42 我添加了对象持续时间的样子
  • Thanks@eipi10 我已尝试按照您的建议修改代码,但似乎这不是错误的原因。
  • 您的“duration”对象中没有名为Time 的列,因此第一个Surv 函数应该抛出有关丢失对象的错误。这开始看起来像是对“代码审查”的请求。您应该从第一行代码开始发布完整的控制台会话。并且可能发布在 stackexchange 系列网站的代码审查部分。 (第一个错误通常是您需要修复的错误,而不是最后一个错误。)

标签: r survival-analysis


【解决方案1】:

我认为下面的代码应该可以工作:

library(survival)
library(survAUC)

duration <- na.omit(duration)
TR <- duration[1:2176,]
TE <- duration[2177:6528,]

clearance5 <- survreg(Surv(Time, Status) ~ Season+Time_of_day,
                 data = TR, dist='weibull', na.action=na.omit)
lpnew <- predict(clearance5, newdata=TE)
Surv.rsp <- Surv(TR$Time, TR$Status)
Surv.rsp.new <- Surv(TE$Time, TE$Status)
times <- c(60,90,105)
auc_hc <- AUC.hc(Surv.rsp, Surv.rsp.new, lpnew, times)

【讨论】:

    猜你喜欢
    • 2013-05-19
    • 2014-02-18
    • 2013-12-08
    • 2016-05-26
    • 2020-03-26
    • 2015-12-22
    • 2015-05-01
    • 2017-01-27
    • 2021-06-09
    相关资源
    最近更新 更多