Wie berechnet man die Konfidenzwerte in der Regression (mit zufälligen Wäldern / XGBoost) für jede Vorhersage in R?

11

Gibt es eine Möglichkeit, für jeden vorhergesagten Wert einen Konfidenzwert (wir können ihn auch als Konfidenzwert oder Wahrscheinlichkeit bezeichnen) zu erhalten, wenn Algorithmen wie Random Forests oder Extreme Gradient Boosting (XGBoost) verwendet werden? Angenommen, dieser Konfidenzwert reicht von 0 bis 1 und zeigt, wie sicher ich in Bezug auf eine bestimmte Vorhersage bin .

Nach dem, was ich im Internet über das Vertrauen gefunden habe, wird es normalerweise in Intervallen gemessen. Hier ist ein Beispiel für berechnete Konfidenzintervalle mit confpredFunktion aus der lavaBibliothek:

library(lava)
set.seed(123)
n     <- 200
x     <- seq(0,6,length.out=n)
delta <- 3
ss    <- exp(-1+1.5*cos((x-delta)))
ee    <- rnorm(n,sd=ss)
y     <- (x-delta)+3*cos(x+4.5-delta)+ee
d     <- data.frame(y=y,x=x)
newd  <- data.frame(x=seq(0,6,length.out=50))
cc    <- confpred(lm(y~poly(x,3),d),data=d,newdata=newd)
if (interactive()) { ##'
  plot(y~x,pch=16,col=lava::Col("black"), ylim=c(-10,15),xlab="X",ylab="Y")
  with(cc, lava::confband(newd$x, lwr, upr, fit,  lwd=3, polygon=T, 
                          col=Col("blue"), border=F))
}

Die Code-Ausgabe gibt nur Konfidenzintervalle an:

Grafik mit Punkten, Vorhersage und Konfidenzintervall

Es gibt auch eine Bibliothek conformal, die jedoch auch für Konfidenzintervalle bei der Regression verwendet wird: "Konform ermöglicht die Berechnung von Vorhersagefehlern im Rahmen der konformen Vorhersage: (i) p.Werte für die Klassifizierung und (ii) Konfidenzintervalle für die Regression. ""

Gibt es also einen Weg:

  1. Um Konfidenzwerte für jede Vorhersage bei Regressionsproblemen zu erhalten?

  2. Wenn es keinen Weg gibt, wäre es sinnvoll, für jede Beobachtung Folgendes als Vertrauensbewertung zu verwenden:

    der Abstand zwischen oberen und unteren Grenzen des Konfidenzintervalls (wie in der obigen Beispielausgabe). In diesem Fall ist die Unsicherheit umso größer, je breiter das Konfidenzintervall ist (dies berücksichtigt jedoch nicht, wo im Intervall der tatsächliche Wert liegt).

Marius
quelle
1
Schauen Sie sich das randomForestCIPaket von Stephan Wager und das dazugehörige Papier mit Susan Athey an. Beachten Sie, dass nur CIs bereitgestellt werden. Sie können jedoch ein Vorhersageintervall daraus erstellen, indem Sie die Restvarianz berechnen.
generic_user

Antworten:

4

Was Sie als Konfidenzbewertung bezeichnen, kann aus der Unsicherheit einzelner Vorhersagen erhalten werden (z. B. durch Umkehrung).

Die Quantifizierung dieser Unsicherheit war beim Absacken immer möglich und in zufälligen Wäldern relativ einfach - diese Schätzungen waren jedoch voreingenommen. Wager et al. (2014) haben zwei Verfahren beschrieben, um diese Unsicherheiten effizienter und mit weniger Verzerrung zu bewältigen. Dies basierte auf vorspannungskorrigierten Versionen des Jackknife-after-Bootstrap und des infinitesimalen Jackknife. Implementierungen finden Sie in den R-Paketen rangerund grf.

In jüngerer Zeit wurde dies durch die Verwendung zufälliger Wälder verbessert, die mit bedingten Inferenzbäumen erstellt wurden. Basierend auf Simulationsstudien (Brokamp et al. 2018) scheint der infinitesimale Jackknife-Schätzer den Fehler in Vorhersagen genauer abzuschätzen, wenn bedingte Inferenzbäume zum Erstellen der zufälligen Wälder verwendet werden. Dies ist im Paket implementiert RFinfer.


Wager, S., Hastie, T. & Efron, B. (2014). Konfidenzintervalle für zufällige Wälder: Das Klappmesser und das infinitesimale Klappmesser. The Journal of Machine Learning Research, 15 (1), 1625-1651.

C. Brokamp, ​​MB Rao, P. Ryan & R. Jandarov (2017). Ein Vergleich von Resampling- und rekursiven Partitionierungsmethoden in zufälligen Wäldern zur Schätzung der asymptotischen Varianz unter Verwendung des infinitesimalen Jackknife. Stat, 6 (1), 360 & ndash; 372.

mkt - Monica wieder einsetzen
quelle