Gibt es eine Bootstrap-Technik, mit der Vorhersageintervalle für Punktvorhersagen berechnet werden können, die z. B. aus einer linearen Regression oder einer anderen Regressionsmethode (k-nächster Nachbar, Regressionsbäume usw.) stammen?
Irgendwie habe ich das Gefühl, dass die manchmal vorgeschlagene Methode, die Punktvorhersage nur zu booten (siehe z. B. Vorhersageintervalle für die kNN-Regression ), kein Vorhersageintervall, sondern ein Konfidenzintervall liefert.
Ein Beispiel in R
# STEP 1: GENERATE DATA
set.seed(34345)
n <- 100
x <- runif(n)
y <- 1 + 0.2*x + rnorm(n)
data <- data.frame(x, y)
# STEP 2: COMPUTE CLASSIC 95%-PREDICTION INTERVAL
fit <- lm(y ~ x)
plot(fit) # not shown but looks fine with respect to all relevant aspects
# Classic prediction interval based on standard error of forecast
predict(fit, list(x = 0.1), interval = "p")
# -0.6588168 3.093755
# Classic confidence interval based on standard error of estimation
predict(fit, list(x = 0.1), interval = "c")
# 0.893388 1.54155
# STEP 3: NOW BY BOOTSTRAP
B <- 1000
pred <- numeric(B)
for (i in 1:B) {
boot <- sample(n, n, replace = TRUE)
fit.b <- lm(y ~ x, data = data[boot,])
pred[i] <- predict(fit.b, list(x = 0.1))
}
quantile(pred, c(0.025, 0.975))
# 0.8699302 1.5399179
Offensichtlich entspricht das 95% -Basis-Bootstrap-Intervall dem 95% -Konfidenzintervall und nicht dem 95% -Vorhersageintervall. Also meine Frage: Wie macht man das richtig?
bootstrap
prediction-interval
Michael M
quelle
quelle
Antworten:
Die nachfolgend beschriebene Methode ist die in Abschnitt 6.3.3 von Davidson und Hinckley (1997), Bootstrap Methods and Their Application beschriebene . Vielen Dank an Glen_b und seinen Kommentar hier . Angesichts der Tatsache, dass es zu diesem Thema mehrere Fragen zu Cross Validated gab, hielt ich es für wert, darüber zu schreiben.
Hier ist
R
Code:quelle