Previsão de séries temporais usando LSTMs: importância de tornar estacionárias as séries temporais

21

Neste link sobre estacionariedade e diferenciação , foi mencionado que modelos como o ARIMA requerem uma série temporal estacionária para previsão, pois suas propriedades estatísticas como média, variação, autocorrelação etc. são constantes ao longo do tempo. Como as RNNs têm uma capacidade melhor de aprender relacionamentos não lineares ( conforme apresentado aqui: A Promessa de Redes Neurais Recorrentes para Previsão de Séries Temporais ) e de um desempenho melhor do que os modelos de séries temporais tradicionais quando os dados são grandes, é essencial entender como estacionarizado dados afetariam seus resultados. As perguntas das quais preciso saber a resposta são as seguintes:

  1. No caso dos modelos tradicionais de previsão de séries temporais, a estacionariedade nos dados de séries temporais facilita a previsão, por que e como?

  2. Ao construir um modelo de previsão de séries temporais usando LSTMs , é importante tornar os dados das séries temporais estacionários? Se sim, então por quê?

Abhijay Ghildyal
fonte

Respostas:

29

Em geral, as séries temporais não são realmente diferentes de outros problemas de aprendizado de máquina - você deseja que o seu conjunto de testes 'se pareça' com o seu conjunto de treinamento, porque deseja que o modelo que você aprendeu no seu conjunto de treinamento ainda seja apropriado para o seu conjunto de teste. Esse é o importante conceito subjacente em relação à estacionariedade. As séries temporais têm a complexidade adicional de que pode haver uma estrutura de longo prazo em seus dados que seu modelo pode não ser sofisticado o suficiente para aprender. Por exemplo, ao usar um atraso autoregressivo de N, não podemos aprender dependências em intervalos maiores que N. Portanto, ao usar modelos simples como ARIMA, queremos que os dados também sejam localmente estacionários.

  1. Como você disse, estacionário significa apenas que as estatísticas do modelo não mudam ao longo do tempo (estacionário 'local'). Os modelos ARIMA são essencialmente modelos de regressão em que você usa os valores N anteriores como entrada para a regressão linear para prever o valor N + 1º. (Pelo menos, é isso que a parte AR faz). Quando você aprende o modelo, está aprendendo os coeficientes de regressão. Se você possui uma série temporal em que aprende o relacionamento entre os N pontos passados ​​e o próximo ponto e aplica-o a um conjunto diferente de N pontos para prever o próximo valor, está implicitamente assumindo que o mesmo relacionamento se mantém entre os N pontos preditores e o seguinte N + 1º ponto que você está tentando prever. Isso é estacionariedade. Se você separou seu conjunto de treinamento em dois intervalos e treinou neles separadamente, e tem dois modelos muito diferentes - o que você conclui disso? Você acha que se sentiria confiante ao aplicar esses modelos para prevernovos dados? Qual você usaria? Esses problemas surgem se os dados forem 'não estacionários'.

  2. Minha opinião sobre as RNNs é essa: você ainda está aprendendo um padrão de um segmento de uma série temporal e ainda deseja aplicá-lo a outra parte da série temporal para obter previsões. O modelo aprende uma representação simplificada da série temporal - e se essa representação se aplicar ao conjunto de treinamento, mas não ao conjunto de testes, não terá um bom desempenho. No entanto, diferentemente do ARIMA, os RNNs são capazes de aprender não-linearidades, e nós especializados como nós LSTM são ainda melhores nisso. Em particular, LSTMs e GRUs são muito bons em aprender dependências de longo prazo. Veja, por exemplo, esta postagem no blog . Efetivamente, isso significa que o que se entende por 'estacionariedade' é menos frágil com as RNNs; portanto, é um pouco menos preocupante. Para poder aprender dependências de longo prazo, no entanto, você precisa de MUITOS dados para treinar.

Em última análise, a prova está no pudim. Ou seja, faça a validação do modelo como faria com qualquer outro projeto de aprendizado de máquina. Se seu modelo prevê bem dados de espera, você pode se sentir um pouco confiante em usá-los. Mas, como qualquer outro projeto de ML - se seus dados de teste forem significativamente diferentes dos dados de treinamento, seu modelo não terá um bom desempenho.

tom
fonte
2
Esta resposta é excelente. Bem considerado e completo.
StatsSorceress
1
Faz algum tempo. Alguém já testou essa suposição?
compguy24