Eu ajustei o modelo ARIMA (5,1,2) usando a auto.arima()
função em R e, observando a ordem, podemos dizer que este não é o melhor modelo para prever. Se existirem outliers na série de dados, qual é o método para ajustar um modelo a esses dados?
Eu ajustei o modelo ARIMA (5,1,2) usando a auto.arima()
função em R e, observando a ordem, podemos dizer que este não é o melhor modelo para prever. Se existirem outliers na série de dados, qual é o método para ajustar um modelo a esses dados?
Respostas:
Michael Chernick aponta você na direção certa. Eu também consideraria o trabalho de Ruey Tsay como aquele adicionado a esse conjunto de conhecimentos. Veja mais aqui .
Você não pode competir contra os algoritmos automatizados de computador de hoje. Eles examinam várias maneiras de abordar as séries cronológicas que você não considerou e nem sempre documentou em nenhum artigo ou livro. Quando alguém pergunta como fazer uma ANOVA, pode-se esperar uma resposta precisa ao comparar com diferentes algoritmos. Quando alguém faz a pergunta: como faço para reconhecer padrões, muitas respostas são possíveis à medida que a heurística está envolvida. Sua pergunta envolve o uso de heurísticas.
A melhor maneira de ajustar um modelo ARIMA, se existirem discrepâncias nos dados, é avaliar possíveis estados da natureza e selecionar a abordagem que é considerada ideal para um conjunto de dados específico. Um possível estado da natureza é que o processo ARIMA é a principal fonte de variação explicada. Nesse caso, seria possível "identificar provisoriamente" o processo ARIMA por meio da função acf / pacf e, em seguida, examinar os resíduos quanto a possíveis discrepâncias. Os valores discrepantes podem ser pulsos, ou seja, eventos únicos OU pulsos sazonais que são evidenciados por valores discrepantes sistemáticos com alguma frequência (por exemplo, 12 para dados mensais). Um terceiro tipo de outlier é o local onde se tem um conjunto contíguo de pulsos, cada um com o mesmo sinal e magnitude, a que se chama mudança de nível ou passo. Depois de examinar os resíduos do processo experimental ARIMA, pode-se adicionar, provisoriamente, a estrutura determinística empiricamente identificada para criar um modelo combinado experimental. Nem se a fonte primária de variação for um dos 4 tipos ou "outliers", seria melhor identificá-los ab initio (primeiro) e depois usar os resíduos desse "modelo de regressão" para identificar a estrutura estocástica (ARIMA) . Agora, essas duas estratégias alternativas ficam um pouco mais complicadas quando se tem um "problema" em que os parâmetros do ARIMA mudam ao longo do tempo ou a variação do erro muda ao longo do tempo devido a várias causas possíveis, possivelmente a necessidade de mínimos quadrados ponderados ou uma transformação de energia como registros / recíprocos, etc. Outra complicação / oportunidade é como e quando formar a contribuição das séries de preditores sugeridas pelo usuário para formar um modelo perfeitamente integrado que incorpore memória, causais e séries fictícias identificadas empiricamente. Esse problema é agravado ainda mais quando se tem uma série de tendências melhor modelada com séries de indicadores do formulário, Ou 1 , 2 , 3 , 4 , 5 , . . . ne combinações de séries de deslocamento de nível como 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1. Você pode tentar escrever esses procedimentos em R, mas a vida é curta. Ficaria feliz em resolver o seu problema e demonstrar neste caso como o procedimento funciona, publique os dados ou envie para sales@autobox.com
Comentário adicional após o recebimento / análise dos dados / dados diários para uma taxa de câmbio / 18 = 765 valores a partir de 1/1/2007
Os dados tiveram um resultado de:
Ao identificar um modelo de arma da forma e vários valores discrepantes, o ACF dos resíduos indica aleatoriedade, pois os valores de ACF são muito pequenos. A AUTOBOX identificou vários outliers:
O modelo final:
incluiu a necessidade de um aumento da estabilização da variância à la TSAY, onde mudanças de variação nos resíduos foram identificadas e incorporadas. O problema que você teve com sua execução automática foi que o procedimento que você estava usando, como um contador, acredita nos dados em vez de desafiá-los por meio da Detecção de intervenção (também conhecida como Detecção de outlier). Publiquei uma análise completa aqui .
Não existe uma contraparte robusta pronta para usar a função arima em R (ainda) ; Se aparecer, ele será listado aqui . Talvez uma alternativa seja diminuir o peso dessas observações que são distantes em relação a uma regra simples de detecção de outlier univariada, mas também não estou pronto para usar pacotes para executar a regressão ARMA ponderada. Outra alternativa possível seria Winsorize os pontos mais afastados:
#parameters
para <- list(ar=c(0.6,-0.48), ma=c(-0.22,0.24))
#original series
y1 <- y0 <- arima.sim(n=100, para, sd=sqrt(0.1796))
#outliers
out <- sample(1:100, 20)
#contaminated series
y1[out] <- rnorm(20, 10, 1)
plot( y1, type="l")
lines(y0, col="red")
#winsorized series
y2 <- rep(NA, length(y1))
a1 <- (y1-median(y1)) / mad(y1)
a2 <- which(abs(a1)>3)
y2[-a2] <- y1[-a2]
for(i in 2:length(y2)){
if(is.na(y2[i])){ y2[i] <- y2[i-1] }
}
Existe uma literatura considerável sobre modelos robustos de séries temporais. Martin e Yohai estão entre os principais colaboradores. Seu trabalho remonta à década de 1980. Eu próprio trabalhei na detecção de outliers em séries temporais, mas Martin foi realmente um dos muitos contribuidores para a detecção de outliers e estimativa de parâmetros na presença de outliers ou resíduos de cauda pesada em séries temporais.
Qual é o objetivo do seu modelo para prever ou analisar o histórico? se isso não é para previsão, e você sabe que esses são os valores discrepantes, basta adicionar a variável dummy, que é 1 nessas datas e 0 nas outras datas. dessa maneira, os coeficientes fictícios cuidarão dos valores extremos e você poderá interpretar os outros coeficientes no modelo.
se isso é para previsão, é preciso fazer duas perguntas a si mesmo: esses valores extremos acontecerão novamente? se eles precisassem, eu tenho que dar conta deles?
Por exemplo, digamos que sua série de dados tenha discrepâncias quando os irmãos Lehman caíram. é um evento que você não tem como prever, obviamente, mas não pode simplesmente ignorá-lo, porque algo assim está prestes a acontecer no futuro. se você lançar o manequim para outliers, removerá efetivamente a incerteza desse evento da variação de erro. sua previsão subestima o risco final - talvez não seja uma boa coisa para o gerenciamento de riscos. no entanto, se você deseja produzir a previsão de linha de base das vendas, o manequim funcionará, porque você não está interessado na cauda, está interessado nos cenários mais prováveis - para que não precise prestar contas do evento imprevisível de este propósito.
Portanto, o objetivo do seu modelo afeta a maneira como você lida com discrepantes.