随机森林SRC预测值

8
我一直在尝试使用R包“randomForestSRC”来预测一些东西,但在运行'rfsrc'和'predict.rfsrc'之后,它们都有一个名为predicted的返回值,但是预测值似乎与我的任何值都不相关。是否有人知道这些预测值是什么?
我运行的命令:(这是从文档中的示例中复制的)
data(veteran, package = "randomForestSRC")
train <- sample(1:nrow(veteran), round(nrow(veteran) * 0.80))
veteran.grow <- rfsrc(Surv(time, status) ~ ., veteran[train, ], ntree = 100)
veteran.pred <- predict(veteran.grow, veteran[-train , ])

预测值:

veteran.pred$predicted
[1] 49.96350 58.45100 38.28317 63.17000 67.56917 57.45633 66.23733 54.81967 72.60817 47.71083 43.94983 37.85000
[13] 41.80333 47.84233 85.81488 70.49050 92.45600 70.95321 85.63933 45.38833 66.74655 76.46067 52.68717 68.90750
[25] 85.17983 43.31617 48.80267

这些数值对我来说并不奇怪,如果你查看“摘要”,统计值并不是很远,而且它的“n”相对较小。 - bbiasi
1个回答

0

rfsrcpredict.rfsrc的预测值是基于所有构建的树使用训练数据和测试数据进行的预测。

#In-bag predicted value for the first case in training data
veteran.grow$predicted[1]
> 80.56843

#Prediction based on all trees for the same case
predict(veteran.grow, 
        newdata=veteran[train[1],])$predicted
> 80.56843

rfsrc 还返回 袋外预测,即 predicted.oob。它基于未在构建过程中使用的树。例如,如果案例 1 在树 1 到 30 中使用,则案例 1 的 OOB 预测将基于树 31 到 100,而不是所有树。

#Keeping the info about nodes of each tree
veteran.grow <- rfsrc(Surv(time, status) ~ ., veteran[train, ], ntree = 100, 
  membership=T)

#Out-of-bag predicted value for the first case
veteran.grow$predicted.oob[1]
> 72.88305

#Prediction based on the trees that case 1 was not included in
ind = which(veteran.grow$inbag[1,]==0)
predict(veteran.grow, 
        newdata=veteran[train[1],], 
        get.tree=ind)$predicted
> 72.88305


很棒的回答!如果您有时间,能否请看一下我的问题?https://stackoverflow.com/questions/66684292/r-plot-individual-predictions 谢谢! - stats_noob
答案与问题不相关。问题是什么是“预测”值,而不是如何获得预测值。答案应该是“预测中位生存时间”还是“在某个时间点上预测生存概率”,或者其他什么? - Katelynn ruan
根据randomForestSRC手册,森林(predicted和predicted.oob)预测的生存值如下: 一个死亡率向量,代表每个个体的估计风险,校准为事件数量的比例(例如,如果i具有100的死亡率值,则如果所有个体具有与i相同的x值,则我们预计平均发生100次事件)。 - Ryan SY Kwan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接