¿Cómo calcular las puntuaciones de confianza en la regresión (con bosques aleatorios / XGBoost) para cada predicción en R?


11

¿Hay alguna manera de obtener un puntaje de confianza (podemos llamarlo también valor de confianza o probabilidad) para cada valor pronosticado cuando se usan algoritmos como Bosques aleatorios o Incremento de gradiente extremo (XGBoost)? Digamos que este puntaje de confianza iría de 0 a 1 y mostraría cuán seguro estoy de una predicción en particular .

Por lo que he encontrado en Internet sobre la confianza, generalmente se mide por intervalos. Aquí hay un ejemplo de intervalos de confianza calculados con confpredfunción de la lavabiblioteca:

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

La salida del código solo da intervalos de confianza:

gráfico que muestra puntos, predicción e intervalo de confianza

También hay una biblioteca conformal, pero también se usa para intervalos de confianza en regresión: "conforme permite el cálculo de errores de predicción en el marco de predicción conforme: (i) valores p. Para clasificación, y (ii) intervalos de confianza para regresión. "

Entonces, ¿hay alguna manera?

  1. ¿Para obtener valores de confianza para cada predicción en cualquier problema de regresión?

  2. Si no hay una manera, ¿sería significativo usarlo para cada observación como puntaje de confianza?

    la distancia entre los límites superior e inferior del intervalo de confianza (como en el ejemplo de salida anterior). Entonces, en este caso, cuanto más amplio es el intervalo de confianza, más incertidumbre existe (pero esto no tiene en cuenta en qué parte del intervalo está el valor real)


1
Mire el randomForestCIpaquete de Stephan Wager y el documento asociado con Susan Athey. Tenga en cuenta que solo proporciona CI ', pero puede hacer un intervalo de predicción a partir de él calculando la varianza residual.
generic_user

Respuestas:


4

Lo que se refiere como un puntaje de confianza se puede obtener de la incertidumbre en las predicciones individuales (por ejemplo, tomando el inverso de la misma).

Cuantificar esta incertidumbre siempre fue posible con el ensacado y es relativamente sencillo en bosques aleatorios, pero estas estimaciones fueron sesgadas. Wager y col. (2014) describieron dos procedimientos para llegar a estas incertidumbres de manera más eficiente y con menos sesgos. Esto se basó en versiones con corrección de sesgo de jackknife-after-bootstrap y la navaja infinitesimal. Puede encontrar implementaciones en los paquetes R rangery grf.

Más recientemente, esto se ha mejorado mediante el uso de bosques aleatorios construidos con árboles de inferencia condicional. Basado en estudios de simulación (Brokamp et al.2018), el estimador de navaja infinitesimal parece estimar con mayor precisión el error en las predicciones cuando se usan árboles de inferencia condicional para construir bosques aleatorios. Esto se implementa en el paquete RFinfer.


Wager, S., Hastie, T. y Efron, B. (2014). Intervalos de confianza para bosques aleatorios: la navaja y la navaja infinitesimal. The Journal of Machine Learning Research, 15 (1), 1625-1651.

Brokamp, ​​C., Rao, MB, Ryan, P. y Jandarov, R. (2017). Una comparación de los métodos de remuestreo y partición recursiva en bosque aleatorio para estimar la varianza asintótica utilizando la navaja infinitesimal. Stat, 6 (1), 360-372.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.