与其他机器学习方法一样,我划分了原始数据集(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”是什么意思。
请让我知道此软件包中的“预测”功能是什么。
感谢您阅读我的长问。
答案 0 :(得分:2)
这种类型的模型predict
的{{1}}的工作原理与您将predict.rfsrc
与predict
,{{ 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