randomForestSRC软件包中有关预测功能的问题

时间:2018-07-05 15:27:10

标签: r

与其他机器学习方法一样,我划分了原始数据集(7个训练数据集:3个测试数据集)。

这是我的代码。

install.packages(randomForestSRC)
library(randomForestSRC)
data(pbc, package="randomForestSRC")
data <- na.omit(pbc)

train <- sample(1:nrow(data), round(nrow(data) * 0.70))

data.grow <- rfsrc(Surv(days, status) ~ ., 
                   data[train, ], 
                   ntree = 100,
                   tree.err=T,
                   importance=T,
                   nsplit=1,
                   proximity=T)

data.pred <- predict(data.grow, 
                     data[-train , ],
                     importance=T,
                     tree.err=T)

我有一个问题是该代码中的预测功能。

最初,我想构建一个基于随机生存森林的预测模型来预测疾病的发展。

例如,在用训练数据集建立预测模型之后,我想使用测试数据来了解疾病的发生概率,而测试数据却没有关于每个人的疾病发生率的信息,因为我想知道疾病的发生概率根据对象的一般特征,例如年龄,bmi,性别等。

但是,与我如上所述要构建谓词模型的意图不同,此程序包中的“预测”功能不能基于没有状态信息(事件/审查)的数据工作。

“预测”功能必须与结果信息一起使用(事件/审查)。

因此,我无法理解“预测”功能的含义。

如果“精确”功能仅适用于既有信息,那么将来如何根据受试者的一般特征来预测疾病的发展?

此外,如果此模型中的预测是根据结果信息构建的,那么随机生存森林模型中的“ predct”是什么意思。

请让我知道此软件包中的“预测”功能是什么。

感谢您阅读我的长问。

1 个答案:

答案 0 :(得分:2)

这种类型的模型predict的{​​{1}}的工作原理与您将predict.rfsrcpredict,{{ 1}},glm或其他模型。

lm语句不需要您知道预测数据集的结果。我试图了解您为什么这么认为。 您的示例RRF语句不起作用,因为它引用了不在示例数据集中的列。

我认为最好的计划是,我将使用下面的reproducible示例向您展示。如果您还有其他问题,可以在评论中问我。

predict
rfsrc
# Train a RFSRC model
mtcars.mreg <- rfsrc(Surv(mpg, cyl) ~., data = mtcars[1:30,],
                     tree.err=TRUE, importance = TRUE)

# Simulate new data
new_data <- mtcars[31:32,]


# predict
predicted <-predict(mtcars.mreg, new_data)
predicted
  Sample size of test (predict) data: 2
                Number of grow trees: 1000
  Average no. of grow terminal nodes: 4.898
         Total no. of grow variables: 9
                            Analysis: RSF
                              Family: surv-CR
                 Test set error rate: NA