5 votos

Regresión cuantílica para la previsión de ventas en R

Edición : No puedo pronosticar las ventas con precisión utilizando la regresión cuantílica en R. Estoy utilizando la función rq del paquete "quantreg" que me está dando la advertencia "El resultado podría tener soluciones no únicas"

Objetivo : Estoy tratando de pronosticar las ventas por hora de una tienda utilizando la regresión cuantílica.

A continuación se muestran las columnas de mi tabla de origen para la previsión.

  • fecha_de_transacción : fecha de venta (entrada)
  • hr1 a hr24 : columna con información de ventas por hora. (24 columnas) (entrada)
  • totala : total de 24 columnas hr1 a hr24 (no se utilizan actualmente)
  • ubicación, departamento, tipo_de_ventas La previsión se hará para cada ubicación, tipo de venta y departamento. (se utiliza para seleccionar los datos)
  • f1 a f24 : columnas que quiero pronosticar para cada hora (24 columnas) (salida)

Paquetes utilizados: forecast, quantreg, Metrics

Código : He extraído las características de fecha de transaction_date, por ejemplo, fin de semana, semana del mes y también días festivos (1 si es festivo 0 para días normales).

attach(train_data) 
Y <- cbind(hr) 
X <- cbind(transation_date, Years, Months, Days, WeekDay, WeekofYear, Weekend, WeekofMonth, holidays) 

quantreg.all <- rq(Y ~ X, tau = seq(0.05, 0.95, by = 0.05))
prediction_train <- data.frame(predict(quantreg.all))

Tengo 19 modelos en prediction_train para cada tau de 0.05 a 0.95, selecciono el mejor modelo basado en el valor rmse y luego pronostico usando ese tau.

rmse(actual, predicted)

transaction_date es de tipo Date, quantreg.all es de clase rqs y el resto son numéricos.

Nota: Las tiendas no están abiertas las 24 horas, por lo que muchas columnas de horas serán 0 (hora de cierre de la tienda). Actualmente, para la mayoría de estas horas, rq predice 0 o algunos valores negativos.

La climatología no tiene gran repercusión en las ventas.

0 votos

¿Cuál es el problema real? ¿Que sus predicciones no son muy precisas? O que estás recibiendo el aviso de rq ?

0 votos

Las predicciones de @scribbles no son precisas, y creo que puede ser por el mensaje de advertencia que dice que la solución puede ser no única.

2voto

Ivan Svetunkov Puntos 26

¿Puede definir "preciso"? ¿Qué espera obtener?

Sigue siendo una regresión y no le garantizará una precisión del 100%.

Además, las regresiones cuantílicas le darán el valor correspondiente al cuantil elegido de la distribución. Así, por ejemplo, la regresión con tau=0.25 y algún valor especificado de X le dará y_fit que sea superior al 25% de todas las observaciones de la muestra para el mismo X (el 25% de las observaciones estarán por debajo de y_fit ). Así que, en general, no debería esperar una gran precisión con las regresiones cuantílicas.

En cuanto a la advertencia, puede que no sea relevante para su problema de precisión en absoluto. Pero cambiar method parámetro en qr puede ayudarle a deshacerse de la advertencia. Por ejemplo, utilizando method="fn" debería ayudar en los casos con un elevado número de observaciones.

1 votos

Gracias por su respuesta. Por "preciso" quiero decir que la tasa de error ((real-predicho)/real*100) debería ser como mínimo del 5%. ¿Puedo esperar esta precisión de la regresión cuantílica? Gracias por la respuesta al mensaje de advertencia. Tienes razón, no era relevante para el tema de la precisión. Los mensajes de advertencia se debían a los mismos valores en los datos (en mi caso, se repetía el valor 0 para las ventas en las horas menos ocupadas).

1 votos

La medida de precisión que menciona se denomina en previsión "porcentaje de error" (PE). Supongo que se toman los valores absolutos medios de PE, lo que conduce al MAPE. El problema con el MAPE es que depende de la escala. Así que se puede obtener un 5% cuando los valores reales son altos (algo así como miles de unidades) o cuando el error es muy bajo. En general es difícil tener un 5% para algunos datos usando cualquier modelo, así que yo no apuntaría a eso. Y, de hecho, no deberías apuntar a un porcentaje. Todas las medidas de error están pensadas para comparar la precisión de las previsiones de los modelos, no para compararlas con algún valor.

0 votos

Gracias @Ivan Svetunkov, entendí que el uso de MAPE no es útil, por lo tanto, como usted sugirió, voy a utilizar el RMSE (utilizando el paquete R Metrics). Cualquier otra sugerencia es bienvenida.

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