Uma série estacionária de tendência pode ser modelada com o ARIMA?

12

Tenho uma dúvida / confusão sobre séries estacionárias necessárias para modelagem com o ARIMA (X). Estou pensando nisso mais em termos de inferência (efeito de uma intervenção), mas gostaria de saber se previsão versus inferência faz alguma diferença na resposta.

Questão:

Todos os recursos introdutórios que li afirmam que a série precisa ser estacionária, o que faz sentido para mim e é aí que entra o "eu" em arima (diferenciação).

O que me confunde é o uso de tendências e desvios no ARIMA (X) e implicações (se houver) para requisitos estacionários.

O uso de um termo constante / desvio e / ou variável de tendência como uma variável exógena (ou seja, adicionar 't' como um regressor) nega a exigência de que a série seja estacionária? A resposta é diferente dependendo se a série tem uma raiz unitária (por exemplo, teste adf) ou tem uma tendência determinística, mas nenhuma raiz unitária?

OU

Uma série sempre precisa ser estacionária, feita através de diferenciação e / ou depreciação antes de usar o ARIMA (X)?

B_Miner
fonte

Respostas:

12

Observando os comentários, parece que não abordamos a questão sobre como escolher entre uma tendência determinística ou estocástica. Ou seja, como proceder na prática, em vez das consequências ou propriedades de cada caso.

Uma maneira de proceder é a seguinte: Comece aplicando o teste do ADF.

  • Se o nulo de uma raiz unitária for rejeitado, estamos concluídos. A tendência (se houver) pode ser representada por uma tendência linear determinística.
  • Se o nulo do teste do ADF não for rejeitado, aplicaremos o teste KPSS (onde a hipótese nula é o oposto, estacionariedade ou estacionariedade em torno de uma tendência linear).

    o Se o nulo do teste KPSS for rejeitado, concluímos que existe uma raiz unitária e trabalhamos com as primeiras diferenças dos dados. Após as primeiras diferenças da série, podemos testar a significância de outros regressores ou escolher um modelo ARMA.

    o Se o nulo do teste KPSS não for rejeitado, teríamos que dizer que os dados não são muito informativos, porque não fomos capazes de rejeitar nenhuma das hipóteses nulas. Nesse caso, pode ser mais seguro trabalhar com as primeiras diferenças da série.

Conforme mencionado em uma resposta anterior, lembre-se de que esses testes podem ser afetados pela presença de discrepantes (por exemplo, discrepantes em um único momento devido a um erro ao gravar os dados ou uma mudança de nível devido, por exemplo, a uma alteração na política que afeta o séries a partir de um determinado momento). Portanto, é aconselhável verificar essas questões e repetir a análise anterior depois de incluir os regressores para alguns discrepantes em potencial.

javlacalle
fonte
Impressionante! Minha pergunta de comentário acima estava correta: se vemos o que parece ser uma tendência, usamos o teste do ADF que inclui uma tendência (opção nº 3 no link que publiquei)?
B_Miner
Última pergunta - o que você acha da situação em que você ajusta um ARIMA, diga ARIMA (0,1,1) a uma série e a média da diferença é diferente de zero? Isso significa que acredito que você adiciona uma constante ao modelo - o que também representa uma tendência linear na série original. O que esse caso significa? A tendência na série original é determinística porque diferenciar a série não a removeu?
B_Miner
@B_Miner Em relação ao seu primeiro comentário, começaria incluindo apenas uma interceptação. Se a tendência parecer um pouco exponencial, você também pode adicionar o parâmetro de inclinação da tendência linear e ver se é significativo. Em geral, é melhor começar com um modelo com poucos parâmetros e, se o diagnóstico dos resíduos não for satisfatório, considere adicionar outros elementos.
Javlacalle
@B_Miner Tomar as primeiras diferenças remove uma tendência determinística e uma estocástica. Se você vir uma tendência na série diferenciada em um modelo com interceptação, considere fazer diferenças novamente (por exemplo, teste para uma segunda raiz unitária).
Javlacalle
1
A falta de concordância entre o @pidosaurus e os testes do ADF e do KPSS pode ser devida ao pequeno tamanho da amostra, presença de outliers, tendência não linear, ... se após uma inspeção adicional ainda não estiver claro qual é o mais apropriado, pode ser mais seguro considerar a presença de uma raiz unitária. Uma rápida visualização dos seus dados sugeriu a presença de uma tendência não linear; uma tendência quadrática da forma pode ser apropriada. a1t+a2t2
Javlacalle # 22/17
5

Lembre-se de que existem diferentes tipos de não estacionariedade e maneiras diferentes de como lidar com elas. Quatro comuns são:

1) Tendências determinísticas ou estacionariedade de tendências. Se sua série for desse tipo, retire a tendência ou inclua uma tendência temporal na regressão / modelo. Você pode verificar o teorema de Frisch-Waugh-Lovell neste.

2) Mudanças de nível e quebras estruturais. Se for esse o caso, você deve incluir uma variável fictícia para cada intervalo ou se sua amostra for suficientemente longa para modelar cada regime separadamente.

3) Mudança de variação. Modele as amostras separadamente ou modele a variação variável usando a classe de modelagem ARCH ou GARCH.

4) Se sua série contém uma raiz unitária. Em geral, você deve verificar se há relações de cointegração entre as variáveis, mas como se preocupa com a previsão univariada, deve diferenciá-la uma ou duas vezes, dependendo da ordem da integração.

Para modelar uma série temporal usando a classe de modelagem ARIMA, as seguintes etapas devem ser apropriadas:

1) Observe o ACF e o PACF juntamente com um gráfico de séries temporais para ver se a série é ou não estacionária ou não estacionária.

2) Teste a série para obter uma raiz unitária. Isso pode ser feito com uma ampla gama de testes, alguns dos mais comuns são o teste ADF, o teste Phillips-Perron (PP), o teste KPSS que possui nulo de estacionariedade ou o teste DF-GLS, que é o mais eficiente dos testes mencionados. NOTA! No caso de sua série conter uma quebra estrutural, esses testes são tendenciosos para não rejeitar o nulo de uma raiz unitária. Caso você queira testar a robustez desses testes e se suspeitar de uma ou mais quebras estruturais, use testes endógenos de quebras estruturais. Dois comuns são o teste de Zivot-Andrews, que permite uma quebra estrutural endógena, e o Clemente-Montañés-Reyes, que permite duas quebras estruturais. Este último permite dois modelos diferentes.

3) Se houver uma raiz unitária na série, você deve diferenciá-la. Depois, verifique o ACF, PACF e o gráfico de séries temporais e provavelmente verifique se há uma segunda raiz da unidade no lado seguro. O ACF e o PACF ajudarão você a decidir quantos termos de AR e MA você deve incluir.

4) Se a série não contiver uma raiz unitária, mas o gráfico da série temporal e o ACF mostrarem que a série possui uma tendência determinística, você deve adicionar uma tendência ao ajustar o modelo. Algumas pessoas argumentam que é completamente válido apenas diferenciar a série quando ela contém uma tendência determinística, embora as informações possam ser perdidas no processo. No entanto, é uma boa ideia diferenciá-lo para ver muitos termos de RA e / ou MA que você precisará incluir. Mas uma tendência temporal é válida.

5) Ajuste os diferentes modelos e faça a verificação de diagnóstico usual; talvez você queira usar um critério de informação ou o MSE para selecionar o melhor modelo, dependendo da amostra em que você o encaixa.

6) Faça uma amostra de previsão nos modelos mais bem ajustados e calcule funções de perda como MSE, MAPE, MAD para ver qual deles realmente apresenta melhor desempenho ao usá-los para previsão, porque é isso que queremos fazer!

7) Faça sua previsão fora da amostra como um chefe e fique satisfeito com seus resultados!

Plissken
fonte
E para responder sua pergunta rapidamente. Sim pode.
Plissken 11/07
Não me foi permitido comentar o exposto, pois não tenho reputação suficiente, mas quero ressaltar que um processo de ruído branco é estacionário. Sua média e variância não mudam com o tempo, portanto, são estacionárias!
Plissken
Dan, ótima resposta! Em relação ao seu último comentário aqui, você está dizendo que, se você acabar com ruído branco residual, que é estacionário ... então ele diz que você modelou a série adequadamente (ou seja, lidou com questões de estacionariedade de maneira adequada / adequada)?
B_Miner
1
Sim, exatamente. Freqüentemente, o teste Ljung-Box Q é usado para testar os resíduos, a fim de verificar se eles são aleatórios ou não. Caso sejam, o modelo é uma representação adequada dos dados. Algo que esqueci de mencionar na resposta acima também é que, depois de montar o modelo, você pode observar o gráfico da ACF e da série temporal dos resíduos da série montada. Isso fornecerá uma boa indicação se seus resíduos são ou não ruído branco (o ACF não deve ter atrasos significativos). De qualquer forma, a maioria dos pacotes estatísticos possui um comando para o teste Q de Ljung-Box.
Plissken
Aqui está o link wiki para o teste Q de Ljung-Box: en.wikipedia.org/wiki/Ljung%E2%80%93Box_test
Plissken
5

Determinar se a tendência (ou outro componente, como a sazonalidade) é determinística ou estocástica faz parte do quebra-cabeça na análise de séries temporais. Vou acrescentar alguns pontos ao que foi dito.

1) A distinção entre tendências determinísticas e estocásticas é importante porque, se uma raiz unitária estiver presente nos dados (por exemplo, uma caminhada aleatória), as estatísticas de teste usadas para inferência não seguem a distribuição tradicional. Veja este post para alguns detalhes e referências.

Podemos simular uma caminhada aleatória (tendência estocástica onde as primeiras diferenças devem ser tomadas), testar a significância da tendência determinística e ver a porcentagem de casos em que o nulo da tendência determinística é rejeitado. Em R, podemos fazer:

require(lmtest)
iter <- 10000
cval <- 0.05
n <- 120
rejections <- 0
set.seed(123)
for (i in seq.int(iter))
{
  x <- cumsum(rnorm(n)) # random walk
  fit <- lm(x ~ seq(n))
  if (coeftest(fit)[2,"Pr(>|t|)"] < cval)
    rejections <- rejections + 1
}
100 * rejections / iter
#[1] 88.67

No nível de significância de 5%, esperaríamos rejeitar o nulo em 95% dos casos, no entanto, neste experimento, ele foi rejeitado apenas em ~ 89% dos casos em 10.000 caminhadas aleatórias simuladas.

Podemos aplicar testes de raiz de unidade para testar se uma raiz de unidade está presente. Mas devemos estar cientes de que uma tendência linear pode levar à falha em rejeitar o nulo de uma raiz unitária. Para lidar com isso, o teste KPSS considera o nulo de estacionariedade em torno de uma tendência linear.

2) Outra questão é a interpretação dos componentes determinísticos em um processo em níveis ou primeiras diferenças. O efeito de uma interceptação não é o mesmo em um modelo com tendência linear e em uma caminhada aleatória. Veja este post para ilustração.

yt=μ+yt-1+ϵt,ϵtNEuD(0 0,σ2).

yt-Euyt

yt=μ+yt-1μ+yt-2+ϵt-1+ϵt=2μ+yt-2μ+yt-3+ϵt-2+ϵt-1+ϵt=3μ+yt-3+ϵt-2+ϵt-1+ϵt...

Chegamos a:

yt=y0 0+μt+Eu=1tϵEu

y0 0μμμ

Se a representação gráfica de uma série mostra uma tendência linear relativamente clara, não podemos ter certeza se é devido à presença de uma tendência linear determinística ou a uma deriva em um processo de caminhada aleatória. Gráficos e estatísticas de testes complementares devem ser aplicados.

Há algumas ressalvas a serem lembradas, pois uma análise baseada na raiz da unidade e em outras estatísticas de teste não é infalível. Alguns desses testes podem ser afetados pela presença de observações distantes ou mudanças de nível e requerem a seleção de uma ordem de atraso que nem sempre é direta.

Como solução alternativa para esse quebra-cabeça, acho que a prática comum é levar as diferenças dos dados até a série parecer estacionária (por exemplo, observar a função de autocorrelação, que deve chegar a zero rapidamente) e depois escolher um modelo ARMA.

javlacalle
fonte
Greta post- você é claramente um grande trunfo para este site! Fiquei curioso olhando aqui e suas outras postagens - é possível usar um teste ADF ou KPSS para determinar se o que parece ser uma tendência da série em níveis é determinístico ou estocástico? Achei o seguinte: faculty.smu.edu/tfomby/eco6375/BJ%20Notes/ADF%20Notes.pdf, o que faz parecer que você vê uma tendência visual na série, use a opção nº 3 do teste e se não rejeitar o nulo, você tem evidências de uma tendência determinística.
B_Miner
Baseado no comentário de Dan, eu acho que se você receber resíduos de ruído branco, nada disso importa :)
B_Miner
5

Pergunta muito interessante, também gostaria de saber o que os outros têm a dizer. Sou engenheiro de treinamento e não estatístico, para que alguém possa verificar minha lógica. Como engenheiros, gostaríamos de simular e experimentar, por isso fiquei motivado a simular e testar sua pergunta.

Como empiricamente mostrado abaixo, o uso de uma variável de tendência no ARIMAX negou a necessidade de diferenciação e torna a tendência da série estacionária. Aqui está a lógica que eu usei para verificar.

  1. Simulado um processo de recuperação garantida
  2. Adicionado uma tendência determinística
  3. Utilizando o ARIMAX modelado com tendência como variável exógena, as séries acima sem diferenciar.
  4. Verificou os resíduos quanto a ruído branco e é puramente aleatório

Abaixo está o código R e os gráficos:

set.seed(3215)

##Simulate an AR process
x <- arima.sim(n = 63,list(ar = c(0.7)));
plot(x)

## Add Deterministic Trend to AR
t <- seq(1, 63)
beta <- 0.8
t_beta <- ts(t*beta,frequency=1)
ar_det <- x+t_beta
plot(ar_det)

## Check with arima

ar_model <- arima(ar_det,order=c(1,0,0),xreg=t,include.mean=FALSE)

## Check whether residuals of fitted model is random

pacf(ar_model$residuals)

AR (1) Gráfico simulado insira a descrição da imagem aqui

AR (1) com tendência determinística insira a descrição da imagem aqui

PACIMA residual ARIMAX com tendência exógena. As residulas são aleatórias, sem nenhum padrão restante insira a descrição da imagem aqui

Como pode ser visto acima, a modelagem da tendência determinística como uma variável exógena no modelo ARIMAX nega a necessidade de diferenciação. Pelo menos no caso determinístico, funcionou. Eu me pergunto como isso se comportaria com uma tendência estocástica, que é muito difícil de prever ou modelar.

Para responder à sua segunda pergunta, SIM, todo o ARIMA, incluindo o ARIMAX, deve ser estacionário. Pelo menos é o que dizem os livros de texto.

Além disso, conforme comentado, consulte este artigo . Explicação muito clara sobre tendência determinística versus tendência estocástica e como removê-las para torná-la estacionária e também uma pesquisa de literatura muito boa sobre esse tópico. Eles o usam no contexto da rede neural, mas são úteis para problemas gerais de séries temporais. Sua recomendação final é quando é claramente identificada como tendência determinística, o que prejudica linearmente, e aplica diferenças para tornar a série temporal estacionária. O júri ainda está por aí, mas a maioria dos pesquisadores citados neste artigo recomenda a diferenciação em oposição ao prejuízo linear.

Editar:

Abaixo está a caminhada aleatória com o processo estocástico de deriva, usando variáveis ​​exógenas e arima de diferença. Ambos parecem dar a mesma resposta e, em essência, são os mesmos.

library(Hmisc)

set.seed(3215)

## ADD Stochastic Trend to simulated Arima this is AR(1) with unit root with non zero mean

y = rep(NA,63)
y[[1]] <- 2


for (i in 2:63)  {
y[i] <-3+1*y[i-1]+ rnorm(1, mean = 0, sd = 1)
} 

plot(y,type="l")

y_ts <- ts(y,frequency=1)

## Lag to create Xreg

y_1 <- Lag(y,shift=1)


## Start from 2 value to avoid NA and make it equal length with xreg

y <- window(y_ts,start =2,end=63)
xreg1 <- y_1[-1]

## Check the values with ARIMA and xreg

g <- arima(y,order=c(0,0,0),xreg=xreg1)

pacf(g$residuals)

## Check the values with ARIM

g1 <- arima(y,order=c(0,1,0))

pacf(g1$residuals)

## 

ARIMA(0,0,0) with non-zero mean 

Coefficients:
      intercept   xreg1
         3.1304  0.9976
s.e.     0.2664  0.0025

Espero que isto ajude!

previsor
fonte
Também estou interessado em outros pontos de vista - não tenho certeza, o ruído residual de branco atende aos requisitos para a série ser estacionária - ou seja, se você obtém ruído branco, pode ficar satisfeito? Ou será que a inclusão da variável exógena está realmente atuando para "desestimular" e tornar esta série estacionária? Gostaria de saber se uma verificação nesta questão posterior é se você obtém o mesmo modelo (coeficiente ar1, etc) se você desestimular com regressão linear e depois ajustar o arima (1,0,0) ... eu fiz isso e o os resultados estão próximos. Então, talvez adicionar a variável exógena seja o mesmo que prejudicar.
B_Miner
Sim, é a mesma coisa, alguns meses atrás eu me deparei com isso em um artigo de previsão de redes neurais. Fornecerei referência se a encontrar.
forecaster
Alguma idéia sobre o caso quando existe uma raiz unitária ou quando há uma constante no modelo?
B_Miner
Atualizei minha resposta com o artigo que estava referenciando.
forecaster
Eu acho que você pode não ter salvado.
B_Miner