Rendimiento del modelo en modelado cuantil


14

Estoy usando la regresión cuantil (por ejemplo, a través de gbmo quantregen R), sin centrarme en la mediana, sino en un cuantil superior (por ejemplo, 75º). Viniendo de un entorno de modelado predictivo, quiero medir qué tan bien se ajusta el modelo en un conjunto de prueba y poder describir esto a un usuario comercial. Mi pregunta es como? En un entorno típico con un objetivo continuo, podría hacer lo siguiente:

  • Calcule el RMSE general
  • Decile los datos establecidos por el valor predicho y compare el promedio real con el promedio predicho en cada decil.
  • Etc.

¿Qué se puede hacer en este caso, donde realmente no hay un valor real (al menos no creo) para comparar la predicción?

Aquí hay un código de ejemplo:

install.packages("quantreg")
library(quantreg)

install.packages("gbm")
library(gbm)

data("barro")

trainIndx<-sample(1:nrow(barro),size=round(nrow(barro)*0.7),replace=FALSE)
train<-barro[trainIndx,]
valid<-barro[-trainIndx,]

modGBM<-gbm(y.net~., # formula
            data=train, # dataset
            distribution=list(name="quantile",alpha=0.75), # see the help for other choices
            n.trees=5000, # number of trees
            shrinkage=0.005, # shrinkage or learning rate,
            # 0.001 to 0.1 usually work
            interaction.depth=5, # 1: additive model, 2: two-way interactions, etc.
            bag.fraction = 0.5, # subsampling fraction, 0.5 is probably best
            train.fraction = 0.5, # fraction of data for training,
            # first train.fraction*N used for training
            n.minobsinnode = 10, # minimum total weight needed in each node
            cv.folds = 5, # do 3-fold cross-validation
            keep.data=TRUE, # keep a copy of the dataset with the object
            verbose=TRUE) # don’t print out progress

best.iter<-gbm.perf(modGBM,method="cv")

pred<-predict(modGBM,valid,best.iter)

¿Y ahora qué, ya que no observamos el percentil de la distribución condicional?

Añadir:

Hipoteticé varios métodos y me gustaría saber si son correctos y si hay otros mejores, también cómo interpretar el primero:

  1. Calcule el valor promedio de las funciones de pérdida:

    qregLoss<-function(actual, estimate,quantile)
    {
       (sum((actual-estimate)*(quantile-((actual-estimate)<0))))/length(actual)
    
    }
    

    Esta es la función de pérdida para la regresión cuantil, pero ¿cómo interpretamos el valor?

  2. ¿Deberíamos esperar que si, por ejemplo, estamos calculando el percentil 75 que en un conjunto de prueba, el valor pronosticado debería ser mayor que el valor real alrededor del 75% del tiempo?

¿Existen otros métodos formales o heurísticos para describir qué tan bien el modelo predice nuevos casos?


La Sección 3 de este documento puede ser útil.
tchakravarty

@tchakravarty Creo que ese enlace se ha apagado
alexpghayes

Respuestas:



0

Usaría la pérdida de pinball (definida en el inicio de la segunda página de https://arxiv.org/pdf/1102.2101.pdf ) y la interpretaría como el error absoluto medio (MAE) para el cuantil que está modelando, por ejemplo , digamos para un error de 100: "El error absoluto medio de nuestro modelo con respecto al 75% real en nuestros datos de prueba es 100".

Tenga en cuenta que esto no es comparable al RMSE ya que los valores atípicos son mucho menos influyentes.

Para responder a su pregunta (2): ¡Si modela el cuantil del 75%, ajustará el borde que divide la masa de datos! a una proporción de 75:25. Luego, aproximadamente el 25% de los datos de su prueba deben estar por encima de su predicción.

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.