O problema com o qual estou lidando é prever valores de séries temporais. Estou analisando uma série temporal por vez e, com base em, por exemplo, 15% dos dados de entrada, gostaria de prever seus valores futuros. Até agora me deparei com dois modelos:
- LSTM (memória de longo prazo; uma classe de redes neurais recorrentes)
- ARIMA
Eu tentei os dois e li alguns artigos sobre eles. Agora, estou tentando entender melhor como comparar os dois. O que eu encontrei até agora:
- O LSTM funciona melhor se estivermos lidando com uma quantidade enorme de dados e dados de treinamento suficientes estiverem disponíveis, enquanto o ARIMA é melhor para conjuntos de dados menores (isso está correto?)
- O ARIMA requer uma série de parâmetros
(p,q,d)
que devem ser calculados com base nos dados, enquanto o LSTM não exige a configuração desses parâmetros. No entanto, existem alguns hiperparâmetros que precisamos ajustar para o LSTM. - EDIT: Uma grande diferença entre as duas que notei ao ler um ótimo artigo aqui , é que o ARIMA só poderia ter um bom desempenho em séries temporais estacionárias (onde não há sazonalidade, tendência e etc.) e você precisa cuidar disso se quer usar ARIMA
Além das propriedades acima mencionadas, não encontrei outros pontos ou fatos que pudessem me ajudar a selecionar o melhor modelo. Ficaria muito grato se alguém pudesse me ajudar a encontrar artigos, papéis ou outras coisas (até agora não tive sorte, apenas algumas opiniões gerais aqui e ali e nada baseado em experimentos).
Devo mencionar que, originalmente, estou lidando com dados de streaming, no entanto, por enquanto, estou usando conjuntos de dados NAB, que incluem 50 conjuntos de dados com o tamanho máximo de 20k pontos de dados.
fonte
Respostas:
A instrução 1 está correta, a instrução 2 está correta, mas requer elaboração e a instrução 3 está incorreta para o ARIMA sazonal:
A seguir, você pode apontar na direção certa, mas espero que obtenha mais algumas respostas com mais profundidade na arena do LSTM.
Você mencionou que tentou os dois algoritmos e que está simplesmente tentando descobrir qual é o melhor, o que me leva a pensar que você pode estar tendo mais problemas com o processo de ciência de dados e a validação cruzada do que com as especificidades dos modelos.
Séries temporais em geral:
Séries temporais, em geral, são difíceis de prever. Se fossem fáceis de prever, todos os cientistas de dados seriam ricos, prevendo com precisão o valor de todas as ações. A realidade é que os fundos de hedge, em média, não superam o mercado e que as previsões de séries temporais geralmente são muito ruins e se aplicam apenas a durações muito curtas. Os principais problemas são que há muito barulho, há muitas influências ocultas, os modelos são excessivamente simplistas, os influenciadores não se comportam como pensamos que deveriam, a interação entre linearidade e não linearidade é sutil e confusa, ... ad infinitum.
ARIMA
Você está incorreto em sua avaliação de que o ARIMA exige que séries temporais estacionárias sejam previstas. O ARIMA não sazonal possui três valores de entrada para ajudar a controlar o ARIMA de suavização, estacionariedade e previsão (p, d, q), onde:
Por outro lado, o ARIMA sazonal possui seis valores de entrada ARIMA (p, d, q, P, D, Q), onde:
Sujeito às declarações de qualificação acima, sugiro que você jogue com o ARIMA sazonal para ter uma idéia dos meandros envolvidos na suavização, desaceleração, desaceleração, redução do ruído e previsão.
LSTM
Eu não sei o suficiente sobre LSTM para adicionar muito aqui. Acrescentarei que as bandeiras vermelhas tendem a ser levantadas quando alguém começa no exercício de ciência de dados com aprendizado profundo. Sugiro que você aprenda o máximo possível usando o ARIMA e, em seguida, aplique alguns dos seus conhecimentos em ARIMA para ajudá-lo a aprender LSTM. As redes neurais podem ser uma ferramenta muito poderosa, mas elas:
Validação cruzada e modelos de comparação:
As séries temporais são divertidas, pois todos os dados de treinamento geralmente podem ser transformados em conjuntos de treinamento de aprendizado supervisionado. O Once pode simplesmente tomar uma série temporal e reverter o tempo. Ou seja, escolha um momento e finja que não possui dados adicionais, depois produza uma previsão e veja como se saiu. Você pode percorrer as séries cronológicas fazendo isso vezes, a fim de obter uma avaliação do desempenho do seu modelon e comparar modelos, tomando as precauções necessárias para evitar o ajuste excessivo .
Espero que isso ajude e boa sorte!
fonte
Adicionando à resposta do @ AN6U5.
De uma perspectiva puramente teórica, este artigo mostrou que os RNN são aproximadores universais. Como não li o artigo em detalhes, não sei se a prova também pode ser aplicada ao LSTM, mas suspeito que sim. O maior problema com a RNN em geral (incluindo LSTM) é que eles são difíceis de treinar devido à exploração do gradiente e ao problema de desaparecimento do gradiente. O limite prático para LSTM parece estar em torno de 200 ~ etapas com descida de gradiente padrão e inicialização aleatória. E, como mencionado, em geral, para que qualquer modelo de aprendizado profundo funcione bem, você precisa de muitos dados e muitos ajustes.
O modelo ARIMA é mais restrito. Se o seu sistema subjacente é muito complexo, é simplesmente impossível obter um bom ajuste. Mas, por outro lado, se o modelo subjacente é bastante simples, é muito mais eficiente do que a abordagem de aprendizado profundo.
fonte
Os modelos ARIMA são lineares e os modelos LSTM não são lineares. Alguns outros modelos paramétricos não-lineares de séries temporais estudados pelos estatísticos são os modelos autoregressivos de limite (TAR) e modelos autoregressivos de transição suave (STAR). O pacote R tsDyn implementa esses modelos.
Gostaria de saber como os modelos STAR se comparam ao LSTM.
fonte
Cheguei à mesma conclusão que você e outros, a previsão tradicional ainda é provavelmente a mais aplicável e talvez confiável para séries temporais de valores numéricos. Há um pouco de sangramento no aprendizado profundo em discussão, onde séries temporais de valores numéricos se misturam ao aprendizado profundo, onde o aprendizado profundo (atualmente) se aplica aos desafios modernos no reconhecimento de padrões para detecção de imagem, som, texto limpo ou anomalia. Geralmente, tenho bons resultados com o VAR / VECM para dados transacionais diários, que provavelmente podem ser aplicados ao seu caso de uso de processamento de sinal.
fonte
Como um caso extremo, tive a chance de estudar as previsões de Forex (Taxa de Câmbio) e comparar intensamente os desempenhos de LSTM, MLP com janela e ARIMA. Como muitos artigos dizem, as séries temporais de Forex são próximas das séries de passeio aleatório (são completamente não estacionárias). Nenhum desses algoritmos pode prever a taxa spot do dia seguinte. Por exemplo, se não houver (ou pouca) alteração, ele manterá o valor atual e parecerá adequado. No entanto, se houver uma mudança repentina (substancial) na taxa à vista de amanhã, ela sempre falha em prever. O problema é que não há nada a aprender com os dados de treinamento (digamos, nos últimos 10 anos de histórico de taxas à vista) se eles são grandes o suficiente ou não, porque são completamente aleatórios (talvez devido aos sentimentos dos negociantes de câmbio ...) .
De fato, o LSTM com apenas 1 'atraso, ou o ARIMA com (1,0,0) terá o melhor desempenho, pois armazenar dados com mais de 1 intervalo de tempo não ajuda em nada. Para esse tipo de série temporal, eu diria, em termos de desempenho de rastreamento, 1) ARIMA, 2) LSTM, 3) MLP. Último comentário ... MLP com parâmetros macro / microeconômicos (por exemplo, diferença de PIB, taxas de títulos, preço do petróleo bruto, índice do dólar etc.), pois recursos adicionais também não funcionaram.
fonte