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:
-
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?
-
¿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