Jak obliczyć wyniki ufności w regresji (z losowymi lasami / XGBoost) dla każdej prognozy w R?

11

Czy istnieje sposób na uzyskanie wyniku ufności (możemy nazwać to również wartością ufności lub prawdopodobieństwa) dla każdej przewidywanej wartości, gdy stosuje się algorytmy takie jak Losowe Lasy lub Ekstremalne Zwiększanie Gradientu (XGBoost)? Powiedzmy, że ten wynik pewności wynosiłby od 0 do 1 i pokazuje, jak jestem pewny co do konkretnej prognozy .

Z tego, co znalazłem w Internecie na temat zaufania, zwykle mierzy się to w odstępach czasu. Oto przykład obliczonych przedziałów ufności z confpredfunkcją z lavabiblioteki:

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))
}

Dane wyjściowe kodu dają tylko przedziały ufności:

wykres pokazujący punkty, prognozy i przedział ufności

Istnieje również biblioteka conformal, ale ja również jest używana do przedziałów ufności w regresji: „konformalność pozwala na obliczenie błędów prognoz w ramach predykcyjnych konformacji: (i) wartości p. Dla klasyfikacji, oraz (ii) przedziały ufności dla regresji. „

Czy istnieje sposób:

  1. Aby uzyskać wartości ufności dla każdej prognozy w przypadku problemów z regresją?

  2. Jeśli nie ma sposobu, czy warto zastosować dla każdej obserwacji jako wynik pewności:

    odległość między górną i dolną granicą przedziału ufności (jak w powyższym przykładzie wyjściowym). Tak więc w tym przypadku im szerszy przedział ufności, tym większa jest niepewność (ale nie uwzględnia to, gdzie w tym przedziale jest rzeczywista wartość)

Marius
źródło
1
Zajrzyj do randomForestCIpaczki Stephana Wagera i powiązanego papieru z Susan Athey. Należy pamiętać, że zapewnia tylko elementy CI ”, ale można z niego zrobić przedział predykcji, obliczając resztkową wariancję.
generic_user

Odpowiedzi:

4

To, co określasz jako wynik pewności, można uzyskać z niepewności w poszczególnych prognozach (np. Biorąc odwrotność tego).

Określenie tej niepewności było zawsze możliwe przy workowaniu i jest stosunkowo proste w losowych lasach - ale te szacunki były stronnicze. Wager i in. (2014) opisali dwie procedury mające na celu uzyskanie tych niepewności bardziej efektywnie i przy mniejszym uprzedzeniu. Opierało się to na skorygowanych przez odchylenie wersjach paska po bootkapie i nieskończenie małym scyzoryku. Implementacje można znaleźć w pakietach R rangeri grf.

Ostatnio zostało to ulepszone dzięki wykorzystaniu losowych lasów zbudowanych z drzew wnioskowania warunkowego. Na podstawie badań symulacyjnych (Brokamp i in. 2018) wydaje się, że nieskończenie mały estymator scyzoryka dokładniej szacuje błąd w prognozach, gdy do tworzenia losowych lasów wykorzystywane są drzewa wnioskowania warunkowego. Jest to zaimplementowane w pakiecie RFinfer.


Wager, S., Hastie, T., i Efron, B. (2014). Przedziały ufności dla losowych lasów: scyzoryk i nieskończenie mały scyzoryk. The Journal of Machine Learning Research, 15 (1), 1625-1651.

Brokamp, ​​C., Rao, MB, Ryan, P., i Jandarov, R. (2017). Porównanie metod ponownego próbkowania i rekurencyjnych metod partycjonowania w losowym lesie w celu oszacowania asymptotycznej wariancji za pomocą nieskończenie małego scyzoryka. Stat, 6 (1), 360-372.

mkt - Przywróć Monikę
źródło