Estou tentando prever as vendas de produtos na máquina de venda automática. O problema é que a máquina é preenchida em intervalos irregulares e, a cada preenchimento, só podemos registrar as vendas agregadas desde o último preenchimento da máquina (ou seja, não temos dados diários de vendas). Então, basicamente, temos dados para vendas agregadas em intervalos irregulares. Os intervalos geralmente são entre 2 dias e 3 semanas. Aqui estão dados de exemplo para uma máquina de venda automática e um produto:
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
Nosso atual algoritmo ingênuo é calcular as vendas médias por dia, dividindo a quantidade total vendida nos últimos 90 dias por 90.
Você tem alguma ideia de como melhorar a previsão das vendas por dia? Preciso prever o que será vendido na próxima visita da máquina. É possível usar algum tipo de algoritmo de suavização exponencial, dada a natureza de nossos dados?
Desde já, obrigado!
ATUALIZAÇÃO: Muito obrigado por todas as respostas e comentários. Deixe-me tentar dar um pouco mais de contexto (o caso de negócios por trás da pergunta - muito simplificado, é claro). Temos centenas de máquinas de venda automática. Todos os dias temos que decidir quais 20 deles devem ser reabastecidos. Para isso, estamos tentando prever qual é o status atual das máquinas e selecionar as 20 máquinas mais "vazias". Para cada máquina e produto, calculamos a média de vendas por dia (SPD) usando o ingênuo algoritmo descrito acima. Em seguida, multiplicamos o SPD pelo número de dias desde o último preenchimento da máquina e o resultado é a quantidade prevista vendida.
fonte
Respostas:
Vamos nos concentrar no problema comercial, desenvolver uma estratégia para resolvê-lo e começar a implementá-la de uma maneira simples. Mais tarde, pode ser melhorado se o esforço o justificar.
O problema dos negócios é maximizar os lucros, é claro. Isso é feito aqui, equilibrando os custos das máquinas de recarga com os custos de vendas perdidas. Na sua formulação atual, os custos de reabastecimento das máquinas são fixos: 20 podem ser reabastecidos a cada dia. O custo das vendas perdidas, portanto, depende da frequência com que as máquinas estão vazias.
Um modelo estatístico conceitual para esse problema pode ser obtido através da criação de uma maneira de estimar os custos para cada uma das máquinas, com base em dados anteriores. O esperadoO custo de não reparar uma máquina hoje em dia é aproximadamente igual à chance de esgotar o tempo em que é usada. Por exemplo, se uma máquina tem 25% de chance de ficar vazia hoje e, em média, vende 4 garrafas por dia, seu custo esperado é igual a 25% * 4 = 1 garrafa em vendas perdidas. (Transforme isso em dólares, sem esquecer que uma venda perdida incorre em custos intangíveis: as pessoas veem uma máquina vazia, aprendem a não confiar nela, etc. Você pode até ajustar esse custo de acordo com a localização de uma máquina; as máquinas ficam vazias por um tempo podem resultar em alguns custos intangíveis.) É justo supor que o reabastecimento de uma máquina redefinirá imediatamente a perda esperada para zero - deve ser raro que uma máquina seja esvaziada todos os dias (você não deseja. ..) Conforme o tempo passa,
Os pontos vermelhos mostram a sequência de vendas; os pontos azuis são estimativas com base na estimativa de probabilidade máxima da taxa de vendas típica.
Dado um gráfico como esse para cada máquina (das quais parece haver algumas centenas), é possível identificar facilmente as 20 máquinas que atualmente estão enfrentando a maior perda esperada: a manutenção é a melhor decisão comercial. (Observe que cada máquina terá sua própria taxa estimada e estará em seu próprio ponto ao longo de sua curva, dependendo da última vez em que foi reparada.) automatizado com um programa simples ou mesmo com uma planilha.
Isto é apenas o começo. Com o tempo, dados adicionais podem sugerir modificações nesse modelo simples: você pode considerar fins de semana e feriados ou outras influências previstas nas vendas; pode haver um ciclo semanal ou outros ciclos sazonais; pode haver tendências de longo prazo a serem incluídas nas previsões. Você pode rastrear valores externos que representam execuções únicas inesperadas nas máquinas e incorporar essa possibilidade nas estimativas de perda, etc. Duvido, porém, que seja necessário se preocupar muito com a correlação serial de vendas: é difícil pensar de qualquer mecanismo para causar uma coisa dessas.
para Excel (
A2
é uma célula que contém o tempo desde a última recarga eTheta
é a taxa diária estimada de vendas) epara R.)
Os modelos mais sofisticados (que incorporam tendências, ciclos, etc.) precisarão usar a regressão de Poisson para suas estimativas.
fonte
Eu acho que você normalmente terá o primeiro passo para converter em uma série temporal regular. Você disse que leva em média 90 dias. Como você tem dados mais frequentes do que isso, acho que faz mais sentido usar ao máximo o que você tem, aproveitando os dias entre cada observação e dividindo-os pelo número de itens vendidos para esse período (assumindo que é esse o seu segunda coluna é).
Como isenção de responsabilidade, sou totalmente amador, então você quer seguir o conselho de um especialista como o IrishStat sobre o código a seguir (por exemplo, ele disse que o ETS é um modelo ruim, portanto, trate-o apenas como um exemplo de brinquedo), mas na esperança Para economizar tempo, aqui está um código R com o qual você pode jogar:
O gráfico resultante é:
fonte
O que você tem é um "problema de demanda intermitente". Resolvemos isso convertendo a demanda em uma taxa, dividindo a demanda real pelo número de dias no intervalo entre a manutenção. Essa taxa pode ser modelada como uma função de transferência para prever uma taxa, dada a previsão do intervalo. Essa taxa prevista pode ser convertida em demanda. Deve-se tomar cuidado para detectar mudanças estruturais na taxa via Detecção de Intervenção. Tente pesquisar "Abordagem de modelagem de demanda intermitente usando uma metodologia de função de transferência". Mantenha-se muito claro das abordagens presumidas do modelo de Croston ou da suavização exponencial, pois são bastante deficientes.
ANÁLISE ADICIONAL:
Quando modelei Rate como uma função do Intervalo, obtive o seguinte. Usando uma previsão de INTERVAL usando o passado, essa equação pode prever a taxa, que pode ser usada para prever a demanda. Esse tipo de modelo permite que a estrutura autoregressiva na taxa seja incorporada, além de permitir pulsos, mudanças de nível e / ou tendências da hora local na taxa.
VALOR DE VALOR DE ERRO # (BOP)
INTERVALO DE ENTRADA SÉRIE X1
SÉRIE DE ENTRADA X2 I ~ P00002 12/03/11 PULSO
SÉRIE DE ENTRADA X3 I ~ P00007 12/08/11 PULSO
SÉRIE DE ENTRADA X4 I ~ P00010 12/11/11 PULSO
fonte