10 votos

Cómo pronóstico basado en datos agregados sobre intervalos irregulares?

Estoy tratando de previsión de las ventas de los productos en la máquina expendedora. El problema es que la máquina se llena, a intervalos irregulares, y en cada llenar sólo podemos registrar las ventas totales desde el último relleno de la máquina (es decir, no tenemos datos de ventas diarias). Así que, básicamente, tenemos los datos de ventas totales a intervalos irregulares. Los intervalos son generalmente entre 2 días y 3 semanas. Aquí es un ejemplo de los datos de una máquina expendedora y un producto:

27/02/2012 48
17/02/2012 24
09/02/2012 16
02/02/2012 7
25/01/2012 12
16/01/2012 16
05/01/2012 16
23/12/2011 4
16/12/2011 14
09/12/2011 4
02/12/2011 2

Nuestro actual ingenuo algoritmo para calcular el promedio de ventas por día dividiendo el total de la cantidad vendida durante los últimos 90 días 90.

¿Tiene usted alguna idea de cómo mejorar el pronóstico de las ventas por día? Necesito para pronosticar lo que va a ser vendido en la próxima visita de la máquina. Es posible el uso de algún tipo de algoritmo de suavizado exponencial dada la naturaleza de nuestros datos?

Gracias de antemano!

ACTUALIZACIÓN: muchas Gracias por todas las respuestas y comentarios. Permítanme tratar de dar un poco más de contexto (el caso de negocio detrás de la pregunta - muy simplificada de curso). Tenemos cientos de máquinas expendedoras. Cada día tenemos que decidir que 20 de ellos para visitar para recarga. Para ello estamos tratando de predecir cuál es el estado actual de las máquinas y seleccionar la opción "emptiest" 20 máquinas. Para cada máquina y el producto que estamos calculando el promedio de ventas por día (SPD), utilizando el ingenuo algoritmo descrito anteriormente. Luego multiplicamos el SPD por el número de días desde la última de relleno de la máquina y el resultado es la predicción de la cantidad vendida.

11voto

jldugger Puntos 7490

Vamos a centrarnos en el problema de la empresa, desarrollar una estrategia para la dirección de la misma, y comenzar a implementar la estrategia de una manera sencilla. Más tarde, puede ser mejorado si el esfuerzo se justifica.

El problema de la empresa es maximizar los beneficios, por supuesto. Que se hace aquí por un equilibrio entre los costos de rellenar las máquinas contra los costos de la pérdida de ventas. En su formulación actual, los costos de recarga de las máquinas son fijos: 20 puede ser recargado cada día. El costo de las ventas perdidas por lo tanto depende de la frecuencia con la que las máquinas están vacías.

Un concepto en el modelo estadístico para este problema puede ser obtenida mediante la elaboración de alguna manera para estimar los costos para cada una de las máquinas, con base en los datos anteriores. El espera que el costo de no realizar el mantenimiento de una máquina hoy en día es aproximadamente igual a la probabilidad que tiene de ejecutar fuera de tiempo la velocidad a la que se utiliza. Por ejemplo, si una máquina tiene un 25% de probabilidad de estar vacío el día de hoy, y en promedio se vende 4 botellas por día, su costo estimado es igual a 25% * 4 = 1 botella en la pérdida de ventas. (Que traducen a dólares como usted, no hay que olvidar que uno de ellos perdió la venta incurre en costos intangibles: la gente ve un vacío de la máquina, que aprender a no depender de ella, etc. Usted puede incluso ajustar este costo de acuerdo a una máquina de ubicación; tener algún oscuro que las máquinas funcionen en vacío por un tiempo podría incurrir en unos costos intangibles.) Es justo suponer que rellenar una máquina de restablecer de inmediato que la pérdida esperada a cero--no debería ser raro que una máquina se vacía cada día (no lo deseo...). Como pasa el tiempo, la pérdida esperada comienza a subir hasta que finalmente se alcanza un valor límite igual a la espera de las ventas diarias: un ejemplo se muestra en la segunda figura a continuación.

Un simple modelo estadístico a lo largo de estas líneas se propone que las fluctuaciones en una máquina de uso que aparecen al azar. Esto sugiere un modelo de Poisson. En concreto, podemos plantear que una máquina tiene un subyacente de las ventas diarias de la tasa de $\theta$ botellas y que el número de vendidos durante un período de duración $x$ días tiene una distribución de Poisson con parámetro de $\theta x$. (Otros modelos pueden ser formulados para controlar la posibilidad de grupos de ventas; esto se supone que las ventas son individuales, de manera intermitente, y son independientes uno del otro.)

En el presente ejemplo, la observación de las duraciones $x=(7, 7, 7, 13, 11, 9, 8, 7, 8, 10)$ y el de ventas correspondiente se $y=(4, 14, 4, 16, 16, 12, 7, 16, 24, 48)$. Maximizar la probabilidad de da $\hat{\theta} = 1.8506$: esta máquina ha sido la venta de cerca de dos botellas por día. Los datos de la historia no es suficiente para sugerir que la más complicada modelo es necesario; esto es, una descripción adecuada de lo que se ha observado hasta ahora.

Actual vs fit

Los puntos rojos muestran la secuencia de las ventas, los puntos azules son estimaciones basadas en la estimación de máxima verosimilitud de la típica ritmo de ventas.

Armado con un estimado de ventas, podemos calcular la probabilidad de que una máquina puede estar vacío después de $t$ días: está dada por el complemento de la función de distribución acumulativa (CCDF) de la distribución de Poisson, tal como se evaluó en la capacidad de la máquina (se presume que ser 50 en la siguiente figura y los ejemplos a continuación). Multiplicando por el estimado de ventas tasa da una parcela de la esperada pérdida diaria en ventas versus el tiempo desde la última recarga:

Loss over time

Naturalmente, esta curva está aumentando más rápidamente cerca de la hora a la $50/1.85 = 27$ días cuando la máquina es más probable que se ejecute. Lo que se agrega a nuestra comprensión es demostrar que un aumento apreciable en realidad comienza una semana antes. Otras máquinas con otras tarifas que se tienen más pronunciada o menos profundas, se levanta: que será de utilidad la información.

Dada una tabla como la siguiente para cada máquina (de la que parece que hay un par de cientos), usted puede fácilmente identificar el 20 de máquinas que actualmente experimentando el mayor pérdida esperada: el servicio es la mejor decisión de negocios. (Tenga en cuenta que cada máquina tiene su propia tasa estimada y estará en su punto a lo largo de su curva, dependiendo de cuándo fue la última revisión.) En realidad nadie tiene que mirar en estos gráficos: la identificación de las máquinas de servicio en base a esto es fácilmente automatizado con un simple programa o incluso con una hoja de cálculo.

Esto es sólo el comienzo. A lo largo del tiempo, los datos adicionales pueden sugerir modificaciones a este modelo simple: es posible que la cuenta para los fines de semana y los días festivos o de otros previstos influye en las ventas; puede ser un ciclo semanal o de otros ciclos estacionales; puede ser las tendencias a largo plazo para incluir en las previsiones. Puede realizar un seguimiento de la periferia valores que representan inesperada de un tiempo se ejecuta en las máquinas e incorporar esta posibilidad en los estimados de pérdida, etc. Dudo, sin embargo, que será necesario preocuparse mucho acerca de la correlación serial de ventas: es difícil pensar en algún mecanismo para hacer tal cosa.

Oh, sí: ¿cómo se obtiene la estimación ML? He utilizado un numérica optimizador, pero en general va a llegar muy cerca de simplemente dividiendo el total de ventas durante un período reciente por el largo periodo de tiempo. Para estos datos 163 venden botellas de 12/9/2011 a través de 2/27/2012, un período de 87 días: $\hat{\theta} = 1.87$ botellas por día. Lo suficientemente cerca como para $1.8506$, y muy sencillos de implementar, por lo que cualquier persona puede iniciar estos cálculos de inmediato. (R y Excel, entre otros, serán fácilmente calcular la distribución de Poisson CCDF: modelo de los cálculos después de

1-POISSON(50, Theta * A2, TRUE)

para Excel (A2 es una celda que contiene el tiempo desde la última recarga y Theta es el diario estimado de las ventas de la tasa) y

1 - ppois(50, lambda = (x * theta))

para R.)

Los más llamativos son los modelos que incorporan las tendencias, ciclos, etc) será necesario el uso de regresión de Poisson para sus estimaciones.

NOTA Para los aficionados: estoy propósito de evitar cualquier discusión de las incertidumbres en la estimación de las pérdidas. El manejo de estos pueden complicar significativamente los cálculos. Sospecho que directamente mediante el uso de estas incertidumbres no agregan valor apreciable para la decisión. Sin embargo, ser conscientes de la incertidumbre y sus tamaños pueden ser útiles; que puede ser representado por medio de bandas de error en la segunda figura. Para terminar, sólo quiero volver a enfatizar la naturaleza de esa figura: parcelas números que tienen una directa y clara de negocio significado; es decir, las pérdidas esperadas; no de la parcela más cosas abstractas, tales como los intervalos de confianza alrededor de $\theta$, lo que puede ser de interés para el estadístico, pero acaba de ser tanto ruido para la toma de decisiones.

4voto

borrego Puntos 501

Creo que suele tener el primer paso de la conversión a una hora regular de la serie. Usted dijo que se toma el promedio de 90 días. Desde que se tienen datos de que es más frecuente que eso, creo que tiene más sentido utilizar la mayor parte de lo que tiene por tomar los días entre cada observación y dividiéndolo por el número de artículos vendidos para ese período (suponiendo que es lo que es su segunda columna).

Como un descargo de responsabilidad yo soy un total de aficionados, por lo que usted desea que tome el consejo de un experto como IrishStat sobre el siguiente código (por ejemplo, dijo ETS es un mal modelo, por lo que sólo tratan como un juguete ejemplo), pero con la esperanza de que esto te ahorra mucho tiempo, aquí es algunas código R se puede jugar con:

library("xts")
library("forecast")

x = read.table(text="27/02/2012 48
17/02/2012 24
09/02/2012 16
02/02/2012 7
25/01/2012 12
16/01/2012 16
05/01/2012 16
23/12/2011 4
16/12/2011 14
09/12/2011 4
02/12/2011 2")

#Convert the data into an XTS object which works with irregular time series 
x.xts = xts(x[,2], as.POSIXct(x[,1], format="%d/%m/%Y"))

#Conver to a daily rate by taking the observed data and dividing it by 
#the number of days between observations
daily_rate <- lag(x.xts) / diff(index(x.xts))

#Generate a daily time series for the dates
dummy_dates <- seq(from=index(x.xts)[1], to=tail(index(x.xts), 1), by="day")

#Combine daily series with observered daily rate
m.xts <- merge(daily_rate, dummy_dates)

#Interpolate the daily sales -- kind of evil because we "invent" data
m.xts.interpolate <- na.approx(m.xts)

#Convert to regular time series
m.ts <- ts(m.xts.interpolate, freq=365, start=c(2011, 336))
#Clean up dimnames in case of stl forecast (just an R thing when converting from dataframes)
dim(m.ts) <- NULL

#Fit TS to an ETS model (Rudely ignoring IrishStat's advice that it is a bad model, but this is just an example)
fit <- ets(m.ts)

#Forecast and Plot
plot(forecast(fit, h=30))

La gráfica resultante es:

enter image description here

1voto

Owen Fraser-Green Puntos 642

Lo que tienes es un "Intermitente de la Demanda de Problema". Hemos resuelto este por la conversión de la demanda a una tasa dividiendo la demanda real por el número de días en el intervalo entre el servicio de mantenimiento. Esta tasa puede entonces ser modelado como una Función de Transferencia con el fin de predecir una tasa dada la predicción del intervalo. Esta predicho tasa pueden ser convertidos a una demanda . Se debe tener cuidado para detectar los cambios estructurales en la tasa a través de la Intervención de Detección . Intente buscar en google "Intermitente de la modelación de la Demanda de enfoque utilizando una función de Transferencia de la metodología" . Sray muy clara de que el modelo de presunción enfoques de Croston, o de Suavizado Exponencial, ya que son bastante deficientes.

ANÁLISIS ADICIONAL:

Cuando yo Tasa de modelado como una función del Intervalo obtuve el siguiente. El uso de una predicción de INTERVALO utilizando el pasado de esta ecuación puede predecir la tasa , que puede ser utilizado para predecir la demanda. Este tipo de modelo permite autorregresivos estructura en la tarifa a ser incorporados, así como permitir las Legumbres , el Nivel de Turnos y/o Locales de la evolución temporal de la tasa.

      MODEL COMPONENT       LAG    COEFF     STANDARD      P       T        

# (BOP) ERROR VALOR VALOR

 Differencing                  1                                            
1CONSTANT                          .295       .840E-01   .0246     3.51

De ENTRADA de la SERIE X1 INTERVALO de

 Differencing                  1                                            
2Omega (input) -Factor #  1    0   .685E-01   .346E-01   .1193     1.98

De ENTRADA de la SERIE X2 I~P00002 12/03/11 PULSO

 Differencing                  1                                            
3Omega (input) -Factor #  2    0   1.43       .168       .0010     8.52

De ENTRADA de la SERIE X3~I P00007 12/08/11 PULSO

 Differencing                  1                                            
4Omega (input) -Factor #  3    0  -.935       .168       .0051    -5.57

De ENTRADA de la SERIE X4 I~P00010 12/11/11 PULSO

 Differencing                  1                                            
5Omega (input) -Factor #  4    0   1.37       .260       .0062     5.27

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