15 votos

Rendimiento del modelo en la modelización cuantílica

Estoy utilizando la regresión cuantílica (por ejemplo mediante gbm o quantreg en R), sin centrarse en la mediana, sino en un cuantil superior (por ejemplo, el 75). Como tengo experiencia en modelización predictiva, quiero medir el grado de ajuste del modelo en un conjunto de pruebas y ser capaz de describirlo a un usuario comercial. Mi pregunta es: ¿cómo? En un entorno típico con un objetivo continuo, podría hacer lo siguiente:

  • Calcular el RMSE global
  • Decile el conjunto de datos según el valor predicho y compare la media real con la media prevista en cada decil.
  • Etc.

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

He aquí 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ñade:

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

  1. Calcular el valor medio 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 cuantílica, pero ¿cómo interpretamos el valor?

  2. ¿Debemos esperar que si, por ejemplo, calculamos el percentil 75, en un conjunto de pruebas, el valor predicho sea mayor que el valor real alrededor del 75% de las veces?

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

0 votos

Sección 3 en este documento puede ser útil.

0 votos

@tchakravarty Creo que ese enlace ha muerto

5voto

Wickethewok Puntos 2212

Una referencia útil puede ser Haupt, Kagerer y Schnurbus (2011) discutir el uso de medidas de precisión predictiva específicas de los cuantiles, basadas en validaciones cruzadas para varias clases de modelos de regresión cuantílica.

0voto

Eric Puntos 24

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

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

Para responder a su pregunta (2): Si modela el cuantil del 75%, ajustará la frontera dividiendo la masa de datos ¡puntualmente! en una proporción de 75:25. Entonces, aproximadamente el 25% de sus datos de prueba deberían estar por encima de su predicción.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X