使用risk regression包计算生存数据Brier分数时遇报错求助
使用riskRegression包计算生存数据Brier分数时遇错排查
我尝试用riskRegression包计算生存数据的Brier分数,运行以下代码后出现错误:
xy = Score(list(cox_ph), formula=Surv(time,status)~1,data=cox.train, metrics=c("brier","auc"), null.model=FALSE,times=time.int,debug = TRUE)
程序执行过程中先输出以下信息:
已提取测试集并准备输出对象。
已训练模型并提取预测结果,将权重与输入合并以计算性能指标,已为预测结果添加权重。
随后抛出错误:
Error in sindex(ind.controls[controls.index1 | controls.index2], 0) :
missing data
我已尝试调试但无法定位确切原因,特此求助。
排查建议
- 检查
time.int是否存在缺失值,或是否包含超出数据集最大生存时间的数值:Score函数的times参数要求时间点不能超过数据中观测到的最大事件时间,否则会引发内部索引错误。 - 核实
cox.train数据集的time和status列是否有缺失值:执行sum(is.na(cox.train$time))和sum(is.na(cox.train$status))检查,缺失值会导致索引计算异常。 - 确认
cox_ph模型是否基于完整数据集训练:若模型训练时使用了含缺失值的数据,可能在预测阶段传递无效信息,触发后续错误。 - 尝试启用
null.model=TRUE测试:暂时开启零模型,观察是否仍出现相同错误——如果零模型能正常运行,说明问题大概率出在cox_ph模型的预测结果上。
内容的提问来源于stack exchange,提问作者user23902942
相关产品推荐
相关产品推荐

