Desempenho do modelo na modelagem quantílica

14

Estou usando regressão quantílica (por exemplo, via gbmou quantregem R) - não focando na mediana, mas em um quantil superior (por exemplo, 75º). Vindo de um histórico de modelagem preditiva, quero medir o quão bem o modelo se encaixa em um conjunto de testes e poder descrevê-lo para um usuário comercial. Minha pergunta é como? Em uma configuração típica com um destino contínuo, eu poderia fazer o seguinte:

  • Calcular o RMSE geral
  • Decile os dados configurados pelo valor previsto e compare a média real com a média prevista em cada decil.
  • Etc.

O que pode ser feito neste caso, onde realmente não há valor real (acho que pelo menos) para comparar a previsão?

Aqui está um código de exemplo:

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)

Agora o que - já que não observamos o percentil da distribuição condicional?

Adicionar:

Eu propus vários métodos e gostaria de saber se eles estão corretos e se existem melhores - também como interpretar o primeiro:

  1. Calcule o valor médio das funções de perda:

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

    Essa é a função de perda para regressão quantílica - mas como interpretamos o valor?

  2. Deveríamos esperar que, por exemplo, calculemos o 75º percentil que, em um conjunto de testes, o valor previsto deve ser maior que o valor real em cerca de 75% das vezes?

Existem outros métodos formais ou heurísticos para descrever quão bem o modelo prevê novos casos?

B_Miner
fonte
A seção 3 deste documento pode ser útil.
Tchakravarty 23/03
@tchakravarty Acho que apontam passou mortos
alexpghayes

Respostas:

3

Uma referência útil pode ser Haupt, Kagerer e Schnurbus (2011) discutindo o uso de medidas específicas de quantil de precisão preditiva com base em validações cruzadas para várias classes de modelos de regressão quantil.

Ardiloso
fonte
0

Eu usaria a perda de pinball (definida no início da segunda página de https://arxiv.org/pdf/1102.2101.pdf ) e a interpretaria como o erro absoluto médio (MAE) para o quantil que você está modelando, por exemplo , digamos, para um erro de 100: "O erro absoluto médio do nosso modelo em relação à quantidade real de 75% em nossos dados de teste é 100".

Lembre-se de que isso não é comparável ao RMSE, pois os discrepantes são muito menos influentes.

Para responder à sua pergunta (2): Se você modelar o quantil de 75%, ajustará a borda que divide a massa de dados! para uma proporção de 75:25. Então, aproximadamente 25% dos seus dados de teste devem estar acima da sua previsão.

Sebastian Gruber
fonte