Canivete com modelos de séries temporais


8

Introdução

objetivo é prever as taxas de crescimento anual para vários indicadores macroeconômicos (denotar um por ). Uma das tarefas é testar o desempenho da previsão de modelos de séries temporais rivais com e sem variáveis ​​exógenas ( , uma matriz ). A lista de modelos rivais inclui:X t T × kYtXtT×k

  1. Modelo AR (I) MA (é improvável que as taxas de crescimento anuais tenham "unidade Roo", embora este último seja assumido ou testado)
    A(L)Yt=μ+B(L)εt
  2. modelo de regressão linear com erros de ARMA
    Yt=Xtβ+ηt,  A(L)ηt=B(L)εt
  3. modelo de variável dependente defasada (modelo autorregressivo com variáveis ​​exógenas)
    A(L)Yt=Xtβ+εt
  4. modelo de regressão linear
    Yt=Xtβ+εt

Onde é assumido como sendo um ruído branco forte, variação constante zero-média iid; e são polinômios de regressão automática (da ordem ) e média móvel (da ordem ) com - um operador de retrocesso (lag). A ( L ) B ( L ) p q LεtA(L)B(L)pqL

Observe que o objetivo principal e o único é prever desempenho, portanto, quaisquer propriedades "boas" das estimativas de parâmetros são uma preocupação secundária. Tudo o que preciso é testar o mais parcimonioso, robusto às condições de partida, previsor. A decisão será tomada com uma das accuracy()opções, mas primeiro eu preciso obter o material para a comparação.

Os modelos 1. e 2. são estimados pelo método de estimativa auto.arima()padrão "CSS-ML". Os modelos 3. e 4. são estimados por mínimos quadrados comuns ( lm()). é de cerca de quartos.40T40

Abordagens tentadas até agora

Para tornar os resíduos de facas de jack, a primeira abordagem indicada por "rolling" foi implementada. A partir de uma subamostra viável de dados de séries temporais, os parâmetros são estimados e uma previsão é feita pela função (EDIT: é a mesma sugestão que na primeira parte da resposta de Rob à segunda pergunta). Depois disso, um ponto é adicionado e as etapas de estimativa \ previsão são repetidas.hpredict()

Um ponto fraco de tais experiências é que o número de tempos (tamanho da amostra) usado para estimar os parâmetros é diferente. Embora eu queira testar a robustez das condições iniciais, mantendo o tamanho da amostra para estimativa fixo.

Tendo isso em mente, tentei definir os vários valores subsequentes (EDIT: para o intervalo ) em com valores ausentes (NA). Nos modelos 2.-4. isso também implica descartar as linhas subsequentes correspondentes na matriz de dados . A previsão para 3. e 4. é direta (o mesmo com as linhas de dados omitidas funciona bem). Todas as minhas preocupações são sobre os modelos 1. e 2.Y t X t X tk+p+q<t0<t1<Th+1YtXtpredict()Xt

Com apenas a parte AR ( ), as previsões são feitas seqüencialmente . Mas com a presença de MA ( ) não se pode (?) Usar os parâmetros estimados diretamente. Do capítulo 3.3 de Brockwell e "Introdução às séries temporais e às previsões", segue-se que é necessário um algoritmo de inovação para estimar recursivamente o do sistema específico de equações que envolve parâmetros médios autoregressivos e médios móveis estimados. EDIT: esses são usados ​​para fazer a previsão do ARMA, não os parâmetros originalmente estimados . No entanto, é observado no mesmo capítulo quepYt+1|t=A^(L)Ytqθn,jθn,jθjθn,jse aproxima assintoticamente de se o processo é invertível. Não é evidente que 30-40 pontos sejam suficientes para que o resultado assintótico seja utilizado mesmo que seja invertível.θj

Notas: não quero restringir a zero, pois não faço isso em previsões reais fora da amostra. EDIT: também não que não esteja faltando um problema de imputação de valor, mas um experimento de previsão, que a trajetória não deve colmatar duas subamostras por isso imputando os valores ausentes.q

Questões

  1. Será que auto.arima()executa corretamente com a presença de valores em falta dentro da amostra? [Já respondeu por Rob.]
  2. (A parte realmente crucial deste post) Como prever corretamente (NÃO imputar) esses pontos perdidos do modelo ARMA quando e ? (Espero que haja maneiras já implementadas na linguagem R, mas simplesmente falta algo.)p>0q>0

EDIT: como os parâmetros para as peças ARMA são estimados corretamente, eu poderia legalmente reorganizar o objeto arima para incluir os parâmetros estimados e os dados apenas para a primeira subamostra e usar uma função de previsão?

EDIT2: Tentei modificar a modestrutura estimada - a previsão resultante predict.Arimaé idêntica (diferenças de precisão dupla) à previsão em que uso os coeficientes MA e AR estimados que prevêem diretamente como , sem . Isso era esperado, já que a representação do espaço de estado é fornecida com a mesma estimativa , não . Portanto, a única questão que resta é a diferença entre e significativa para influenciar as previsões pontuais? Espero que a resposta seja negativa.A ( G ) ( Y t - X t β ) + X t β + B ( G ) ε t θ j θ n , j θ j θ n , jYt+1|tA^(L)(YtXtβ^)+Xtβ^+B^(L)ε^tKalmanForecast()θjθn,jθjθn,j


Na itsmrbiblioteca que implementa a previsão da peça ARMA do processo para os modelos 1. e 2., o tem média zero (uma vez que assume-se como média zero). No entanto, a saída de sugere que o resíduo não é de média zero, ou seja, não é de média zero. Preciso aumentar o termo de interceptação no objeto estimado , antes de fazer a previsão em facas? Preciso fazer o mesmo para as previsões comuns ? ε t Y t - X t βηtεtarimaYtXtβ^ArimaArima
Dmitrij Celov

PS as estimativas são quase idênticos (no duplo sentido desvios de precisão), se qualquer conjunto I em ou interceptar augment em assegurar que os resíduos são zero-média. μ=0itsmrArima
Dmitrij Celov

Respostas:


4

Não entendo por que você acha é um problema de previsão. É fácil prever usando um modelo ARIMA com termos de MA e você não precisa usar o algoritmo de inovações de Brockwell e Davis. Esse algoritmo é útil para estimativa ; em particular, na obtenção de valores iniciais ao otimizar a probabilidade.q>0

Para responder suas perguntas específicas:

  1. auto.arima()chamadas arima()que usam uma representação do espaço de estados para calcular a probabilidade. Os valores ausentes são manipulados naturalmente em um formato de espaço de estado. Então, sim, eles são tratados corretamente.

  2. Os valores históricos ausentes não são estimados por arima(). Se você deseja prevê-los (ou seja, usando apenas dados passados), basta ajustar um modelo até o início da sequência ausente e, em seguida, prever a partir dele. Se você quiser calculá-los (usando dados antes e depois), será necessário usar um Kalman mais suave com base no modelo de espaço de estado equivalente. Um fudge alternativo que fornece quase os mesmos resultados é calcular a média das previsões usando dados até os últimos dados não ausentes, com os backcasts usando dados até os primeiros dados não ausentes após a sequência ausente.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.