Seleção de modelos de séries temporais: AIC vs. SSE fora da amostra e sua equivalência

9

A AIC é frequentemente recomendado como critério para comparar modelos para previsão de séries temporais. Veja, por exemplo, isso no contexto de modelos de regressão dinâmica :

O AIC pode ser calculado para o modelo final e esse valor pode ser usado para determinar os melhores preditores. Ou seja, o procedimento deve ser repetido para que todos os subconjuntos de preditores sejam considerados e o modelo com o menor valor de AICc selecionado.

Por que não comparar os modelos com base no desempenho fora da amostra? (por exemplo, escolha o modelo com menor SSE na previsão fora da amostra). Eu tenho lido vários livros e sites sobre previsão de séries temporais e não encontrei essa discussão. O mais próximo que cheguei foi desta entrada do blog sobre os fatos e falácias da AIC :

A AIC não é realmente uma medida "dentro da amostra". Sim, é calculado usando os dados de treinamento. Assintoticamente, porém, minimizar o AIC é equivalente a minimizar o MSE de validação cruzada de exclusão única para dados de seção transversal e equivalente a minimizar o MSE de previsão em uma etapa fora da amostra para modelos de séries temporais. Essa propriedade é o que a torna um critério tão atraente para uso na seleção de modelos para previsão.

Em um exemplo que estou trabalhando (embora não possa postar os gráficos aqui; preciso de mais reputação neste site), tentei as duas abordagens e, na maioria das vezes, o AIC e o SSE fora da amostra não produzem o mesmo resultado. O procedimento que usei foi o seguinte:

  1. Dividi os dados em amostras de treinamento e teste (em um ponto arbitrário; uma pergunta sobre isso abaixo)
  2. Estimei modelos concorrentes (ARIMA com regressores externos, alterando os parâmetros ARIMA e os regressores) usando a amostra de treinamento (primeiros 230 períodos; todos os modelos têm o mesmo número de observações para que o AIC seja comparável).
  3. Em seguida, previ a série para os mesmos períodos da amostra de teste (períodos 231-260).
  4. Para cada modelo, calculei o SSE simples como que é o valor observado da série (amostra de teste) e é o valor previsto pelo modelo.SSE=t=231260(yt^yt)2ytyt^
  5. Comparei o modelo indicado pela AIC (calculado usando dados de treinamento) com o modelo com menor SSE fora da amostra. Na maioria das vezes, os modelos selecionados são diferentes (e pelo menos visualmente, os selecionados pelo SSE têm melhor desempenho).

Se alguém pudesse me explicar o que está acontecendo por trás disso, ficaria muito grato. Eu claramente não sou especialista nisso. Estou apenas tentando me ensinar um pouco, então, desculpe se eu negligenciei algo importante nos livros que estava lendo.

Finalmente, uma pergunta sobre a divisão dos dados em amostras de treinamento e teste para séries temporais. Parece-me que há algo fundamentalmente diferente do que usar o mesmo procedimento para dados de seção transversal. Para dados transversais, você pode coletar duas amostras aleatórias de todo o conjunto de dados. Para séries temporais, isso não faz muito sentido. Portanto, você precisa adotar um ponto arbitrário para dividir a série em amostras de treinamento e teste. O fato é que geralmente o melhor modelo é diferente para cada ponto arbitrário. Talvez seja por isso que essa abordagem não pareça ser usada com frequência. É por isso que o AIC é preferido para a seleção de modelos? (Considerando que "assintoticamente, minimizar o AIC é ... equivalente a minimizar o MSE de previsão em uma etapa fora da amostra para modelos de séries temporais".)

elikesprogramming
fonte

Respostas:

6

Por que não comparar os modelos com base no desempenho fora da amostra?

Claro, você pode fazer isso. Suponho que a vantagem do AIC seja uma computação mais rápida e menos codificação (enquanto o AIC é frequentemente relatado automaticamente como parte do diagnóstico do modelo, a validação cruzada para séries temporais pode não estar prontamente disponível no seu software favorito).

Tentei as duas abordagens e, na maioria das vezes, o AIC e o SSE fora da amostra não produzem o mesmo resultado.

Parece que você não implementou a validação cruzada corretamente. Primeiro, você divide os dados apenas uma vez enquanto deveria dividi-los várias vezes. Segundo, você avaliou o desempenho da previsão com base em uma tentativa de prever vários horizontes diferentes, em vez de várias tentativas de prever um horizonte fixo. Talvez, portanto, você tenha discrepância entre a AIC e a validação cruzada

Ao implementar a validação cruzada em uma configuração de série temporal, você pode usar janelas rolantes. Você faria observações de a onde é o comprimento da janela e rolaria de 1 a onde é o tamanho da amostra. Você estimaria seu modelo em cada janela rotativa e preveria um período à frente. Você coletaria essas previsões e as compararia com os valores reais. Isso forneceria uma métrica fora de amostra do desempenho da previsão ao usar a validação cruzada em uma configuração de série temporal.tt+mmtTm1T

Veja também Hyndman e Athanasopoulos "Previsão: princípios e prática", seção 2.5 (role até o fim) e Bergmeir et al. "Uma nota sobre a validade da validação cruzada para avaliar a previsão de séries temporais" (2015, documento de trabalho).

pelo menos visualmente, os [modelos] selecionados pelo SSE têm melhor desempenho

Pode ser que os resíduos do modelo não tenham a distribuição assumida ou o modelo tenha outras falhas que invalidam sua AIC de alguma maneira. Esse é um argumento pelo qual a precisão da previsão fora da amostra pode ser preferida à AIC na seleção de modelos.

Richard Hardy
fonte
Obrigado, farei a validação cruzada como você sugere e publicarei o que encontrar. Muito obrigada #
elikesprogramming