一种选择是为均方误差创建置信区间。由于两个模型的分母相同,因此我将使用均方误差而不是。Dudoit和van der Laan的论文(文章和工作论文)为构建任何风险估计量的置信区间提供了一个一般性定理。使用虹膜数据中的示例,以下是一些R代码,使用该方法创建了95%的置信区间:R2
library(randomForest)
data(iris)
set.seed(42)
# split the data into training and testing sets
index <- 1:nrow(iris)
trainindex <- sample(index, trunc(length(index)/2))
trainset <- iris[trainindex, ]
testset <- iris[-trainindex, ]
# with species
model1 <- randomForest(Sepal.Length ~ Sepal.Width + Petal.Length +
Petal.Width + Species, data = trainset)
# without species
model2 <- randomForest(Sepal.Length ~ Sepal.Width + Petal.Length +
Petal.Width, data = trainset)
pred1 <- predict(model1, testset[, -1])
pred2 <- predict(model2, testset[, -1])
y <- testset[, 1]
n <- length(y)
# psi is the mean squared prediction error (MSPE) estimate
# sigma2 is the estimate of the variance of the MSPE
psi1 <- mean((y - pred1)^2)
sigma21 <- 1/n * var((y - pred1)^2)
# 95% CI:
c(psi1 - 1.96 * sqrt(sigma21), psi1, psi1 + 1.96 * sqrt(sigma21))
psi2 <- mean((y - pred2)^2)
sigma22 <- 1/n * var((y - pred2)^2)
# 95% CI:
c(psi2 - 1.96 * sqrt(sigma22), psi2, psi2 + 1.96 * sqrt(sigma22))
该方法还可以扩展为在交叉验证中工作(不仅仅是如上所示的样本分割)。