常见问题解答
1、计算C指数
1-Error rate,或者
rsf.err <- get.cindex(yvar$Survival_months,yvar$OS,predicted=rf.grow$predicted)
2、模型中predicted和predicted.oob区别
predicted
和predicted.oob
是两个不同的属性,它们分别表示模型的预测结果和袋外(out-of-bag)预测结果。predicted
是指通过随机森林模型对训练数据的预测结果。当你使用模型来对训练数据进行预测时,predicted
会给出每个样本的预测值。predicted.oob
是指模型对袋外(out-of-bag)样本的预测结果。袋外样本是在随机森林的构建中没有被用于训练的样本。这些样本用于估计模型的泛化性能。predicted.oob
包含了对每个袋外样本的预测值,这些值可以用于评估模型在未见过的数据上的表现。在实际操作中如果bootstrap为"none",则只有predicted结果,若为"by.root"(默认值),则有predicted
和predicted.oob。
3、如何绘制随机生存森林的DCA曲线?
library(riskRegression)
library(dcurves)
`1 year`<-predictRisk(rf.grow,newdata=ss,time=12)#rf.grow为建立的随机生存森林模型
ss$`1 year`<-`1 year`
d<-dcurves::dca(Surv(Survival_months, OS) ~ `1 year`,
data = ss,
time = 12 # 时间选1年
)%>% dcurves::as_tibble()
library(ggplot2)
ggplot(d, aes(x=threshold, y=net_benefit,color=variable))+
stat_smooth(method = "loess", se = FALSE, formula = "y ~ x", span = 0.2) +
coord_cartesian(ylim = c(-0.01, 0.6)) +
scale_x_continuous(labels = scales::label_percent(accuracy = 1)) +
labs(x = "Threshold Probability", y = "Net Benefit", color = "") +
theme_bw()