[Eu publiquei essa pergunta no Stack Overflow aqui, mas não recebi nenhuma resposta, então pensei em tentar aqui. Desculpas se a publicação não for permitida.]
Eu tenho tentado usar esta implementação do algoritmo Holt-Winters para previsão de séries temporais em Python, mas encontrei um obstáculo ... basicamente, para algumas séries de entradas (positivas), às vezes ela prevê números negativos, o que deve claramente não seja o caso. Mesmo que as previsões não sejam negativas, às vezes são extremamente imprecisas - ordens de magnitude maiores / menores do que deveriam. Fornecer ao algoritmo mais períodos de dados para trabalhar não parece ajudar e, de fato, muitas vezes piora a previsão.
Os dados que estou usando têm as seguintes características, que podem ser problemas:
Amostragem com muita frequência (um ponto de dados a cada 15 minutos, em oposição aos dados mensais como o exemplo usa) - mas pelo que li, o algoritmo Holt-Winters não deve ter problemas com isso. Talvez isso indique um problema com a implementação?
Possui várias periodicidades - há picos diários (ou seja, a cada 96 pontos de dados), além de um ciclo semanal de dados de fim de semana ser significativamente menor que os dados dos dias da semana - por exemplo, os dias da semana podem atingir o pico em torno de 4000, mas o pico nos fins de semana em 1000 - mas mesmo quando eu dou apenas nos dados do dia da semana, encontro o problema do número negativo.
Há algo que me falta na implementação ou no uso do algoritmo Holt-Winters em geral? Como não sou um estatístico, estou usando os valores 'padrão' de alfa, beta e gama indicados no link acima - é provável que esse seja o problema? Qual é a melhor maneira de calcular esses valores?
Ou ... existe um algoritmo melhor para usar aqui do que Holt-Winters? Por fim, só quero criar previsões sensatas a partir de dados históricos aqui. Eu tentei a suavização exponencial única e dupla, mas (tanto quanto eu entendi) nem suporta periodicidade nos dados.
Também procurei usar o pacote de previsão R por meio do rpy2 - isso me daria melhores resultados? Eu imagino que ainda precisaria calcular os parâmetros e assim por diante, então seria apenas uma boa idéia se meu problema atual residir na implementação do algoritmo ...?
Qualquer ajuda / entrada seria muito apreciada!
fonte
O problema pode ser que Holt-Winters é um formulário de modelo específico e pode não ser aplicável aos seus dados. O Modelo HW assume, entre outras coisas, o seguinte. a) uma e apenas uma tendência b) nenhuma mudança de nível nos dados, ou seja, nenhuma alteração de interceptação 3) que os parâmetros sazonais não variem ao longo do tempo 4) nenhum outliers 5) nenhuma estrutura autoregressiva ou estrutura de modelo adaptável 6) erros de modelo que apresentam variação constante E, é claro, 7) que a história causa o futuro, ou seja, nenhuma incorporação de preço / promoções. Eventos etc. como variáveis de ajuda
Pela sua descrição, parece-me que uma abordagem de frequência mista pode ser necessária. Vi problemas de séries temporais em que os efeitos da hora do dia e do dia da semana têm termos de interação significativos. Você está tentando forçar seus dados a uma estrutura insuficiente, isto é, não generalizada. Estimar parâmetros e escolher entre um pequeno conjunto de modelos não substitui a Identificação do modelo. Você pode ler um artigo sobre as diferentes abordagens da Modelagem Automática em www.autobox.com/pdfs/catchword.pdf. Em termos de uma abordagem mais geral, sugiro que você considere um modelo ARMAX, também conhecido como Função de Transferência, que relaxa as suposições mencionadas acima.
fonte