Processos estacionários

Os modelos utilizados para descrever séries temporais (conjunto de observações ordenadas no tempo) são processos estocásticos, isto é, processos controlados por leis probabilísticas.

Um processo é estacionário se todas as características do comportamento do processo não são alterados no tempo, ou seja, o processo se desenvolve aleatoriamente no tempo em torno da média, de modo que a escolha de uma origem dos tempos não é importante (suas propriedades não dependem do momento em que foi observada). A série estacionária (ou convergente) é o oposto da série não estacionária (ou divergente), onde ocorrem tendências ascendentes e descendentes e portanto a média e a variância são funções do tempo.

A classe dos modelos ARIMA é capaz de descrever de maneira satisfatória séries estacionárias e séries não estacionárias, desde que não apresentem um comportamento explosivo. Os processos estacionários homogêneos possuem o nível e/ou inclinação mudando com o decorrer do tempo ou também flutuando ao redor de um nível em um certo período, mas depois muda de nível e flutua ao redor de outro nível, e assim por diante.

Testes

Para verificar se uma série é estacionária, realiza-se um estudo da existência de alguma raiz dos operadores de retardos (utilizados em modelos de médias móveis) dentro do círculo unitário (denominada raiz unitária ou unit root). Um processo não-estacionário tem uma raiz unitária se 1 é raiz da equação característica do processo. Se as outras raízes da equação característica ocorrem dentro do círculo unitário – ou seja, têm um módulo (valor absoluto) menor que um –, então a primeira diferença do processo é estacionária.

Existem testes de raiz unitária que baseiam-se no seguinte teste de hipóteses:

  • H0 (hipotese nula): Existe pelo menos uma raiz dentro do círculo unitário
  • H1: Não existem raízes dentro do círculo unitário

No R, o pacote URCA possui as funções ur.df() e ur.kpss() que realizam os testes ADF e KPSS, respectivamente.

O teste de Dickey-Fuller Aumentado (ADF) testa a hipótese nula de se uma raiz unitária está presente em um modelo autorregressivo. A hipótese alternativa é diferente dependendo de qual versão do teste é usada: geralmente é estacionário, estacionário com intercepto (“drift”) ou estacionário com tendência (“trend”). Considerando que seja possível decompor a série em componentes de intercepto, tendência, número de defasagens e o coeficiente de presença de raiz unitária (delta), pode-se definir um estimador baseado em delta.

A função ur.df() realiza o cálculo dessa estatística. Ela recebe os parâmetros “type” (“none”, “drift” ou “trend”) e “selectlags”, que define a forma de seleção da defasagem (“Fixed”, “AIC” ou “BIC”) – no caso de “fixed”, deve-se usar o parâmetro “lags” com um número inteiro. A defasagem (ou lag) funciona da seguinte forma: para lag = 2, são calculadas as diferenças entre o terceiro e o primeiro valor, entre o quarto e o segundo valor, entre o quinto e o terceiro valor etc. Utilizando o comando dentro das funções print(summary()), são impressos na tela mais detalhes e o valor da estatística.

O resultado é um número negativo. Quanto mais negativo for, mais forte a rejeição da hipótese de que existe uma raiz unitária em algum nível de confiança – ou seja, mais distante de ser um processo estacionário.

Os valores críticos da estatística foram tabelados por Dickey e Fuller através de simulação Monte Carlo e variam nos casos de presença somente de intercepto (caso A), presença somente de tendência (caso B) e presença de ambos (caso C). Deve-se comparar o valor obtido com uma tabela com valores críticos conforme o caso, número de amostras (linhas) e as probabilidades de rejeição da hipótese nula (colunas) – fonte:

n 1% 5% 10% 90% 95% 99%
Caso A 25 -2.66 -1.95 -1.60 0.92 1.33 2.16
(sem constante 50 -2.62 -1.95 -1.61 0.91 1.31 2.08
sem tendência) 100 -2.60 -1.95 -1.61 0.90 1.29 2.03
250 -2.58 -1.95 -1.61 0.89 1.29 2.01
500 -2.58 -1.95 -1.61 0.89 1.28 2.00
>500 -2.58 -1.95 -1.61 0.89 1.28 2.00
Caso B 25 -3.75 -3.00 -2.62 -0.37 0.00 0.72
(constante 50 -3.58 -2.93 -2.60 -0.40 -0.03 0.66
sem tendência) 100 -3.51 -2.89 -2.58 -0.42 -0.05 0.63
250 -3.46 -2.88 -2.57 -0.42 -0.06 0.62
500 -3.44 -2.87 -2.57 -0.43 -0.07 0.61
>500 -3.43 -2.86 -2.57 -0.44 -0.07 0.60
Caso C 25 -4.38 -3.60 -3.24 -1.14 -0.80 -0.15
(constante 50 -4.15 -3.50 -3.18 -1.19 -0.87 -0.24
tendência) 100 -4.04 -3.45 -3.15 -1.22 -0.90 -0.28
250 -3.99 -3.43 -3.13 -1.23 -0.92 -0.31
500 -3.98 -3.42 -3.13 -1.24 -0.93 -0.32
>500 -3.96 -3.41 -3.12 -1.25 -0.94 -0.33

Por exemplo, se o valor obtido para 50 observações com tendência (caso C) for de -4.57, ao comparar com a tabela, observa-se que é mais negativo que -3.50. Então, no nível de 95% a hipótese nula de uma raiz unitária será rejeitada, ou seja, é pouco provável possuir uma raiz e portanto pouco provável ser estacionário.

Série temporal (exemplo A)

Série temporal (exemplo A)

Outro exemplo, utilizando os dados da série temporal do exemplo A: considerando o mesmo valor de n, caso o valor do teste for de 0.23 no caso B, têm-se no nível entre 1% e 5% de que a hipótese nula seja rejeitada, ou seja, como é pouco provável rejeitar a hipótese nula, é muito provável existir uma raiz unitária e portanto é muito provável ser um processo estacionário.

O teste de Phillips-Perron (PP) é uma generalização do teste de Dickley-Fuller para os casos em que os erros são correlacionados e, possivelmente, heterocedásticos.

O teste KPSS (criado por Denis Kwiatkowski , Peter C. B. Phillips, Peter Schmidt e Yongcheol Shin) possui hipóteses diferentes dos testes anteriores:

  • H0: “A série é estacionária”
  • H1: “A série apresenta raiz unitária”

Além disso, a ausência de uma raiz unitária não é uma prova de estacionariedade, e sim de que possui uma tendência somente em função do tempo que pode ser removida para restar apenas um processo estacionário.

Supondo que seja possível decompor a série em componentes de tendência, passeio aleatório e erro, considerando seus resíduos em uma regressão, é possível determinar um estimador para a variância dos erros nesta regressão.

A função ur.kpss() realiza o cálculo dessa estatística. Ela recebe os parâmetros “type” com o tipo da parte determinística (constante “mu” ou constante com tendência “tau”) e opcionalmente “lags”, com o número máximo de defasagens usadas para a correção do termo de erro: “short”, “long” ou “nil” (sem correção de erro). Utilizando o comando dentro das funções print(summary()), são impressos na tela mais detalhes e o valor da estatística.

Aqui também existe uma tabela com os valores críticos para o teste KPSS, considerando os valores para mu e tau – fonte:

1% 2.5% 5% 10%
mu 0.739 0.574 0.463 0.347
tau 0.216 0.176 0.146 0.119

Por exemplo, considerando o caso “tau” e valor da estatística em 0.3544, este é maior que os valores críticos tabelados para esse caso. Assim, deve-se rejeitar a hipótese nula, ou seja, é pouco provável a série ser estacionária.

Voltando à série temporal do exemplo A: para o caso mu e valor de teste 0.2203, como é menor que os valores tabelados, não se deve rejeitar a hipótese nula, ou seja, é muito provável que a série seja estacionária.

Note que, em todos os testes, deve-se saber se existe tendência – veja mais sobre esse tópico clicando no link.

Transformação

A maioria dos procedimentos de análise estatística de séries temporais supõe que estas sejam estacionárias. Assim, será necessário transformar os dados originais se estes não formam uma série estacionária. A transformação mais comum consiste em tomar diferenças sucessivas da série original, até se obter uma série estacionária – geralmente uma ou duas diferenças são suficientes. Esse procedimento é normalmente utilizado para remover tendências.

Uma primeira diferença é definida com a subtração entre o valor em um momento e no momento anterior. Se um processo for estacionário de segunda ordem, ele será dito estritamente estacionário. A n-ésima diferença de uma série temporal Z(t) é:

diferencas

Para tornar a série estacionária deve-se tomar diferenças quantas vezes for necessário, até atingir estacionariedade – são chamadas de séries não estacionárias homogêneas. Um modelo é estacionário se, para todo t, tem-se os valores de média, variância e covariâncias constantes. Por exemplo, quando a série oscila ao redor de um nível e salta para outro, basta uma diferença para torná-la estacionária; se a série oscila em uma direção e depois muda, são necessárias duas diferenças para ficar estacionária.

No R, uma ou mais diferenças podem ser realizadas através da função diff(). Como argumentos, usar a série temporal, mas é possível também definir o número de diferenças (parâmetro “differences”) e o lag (parâmetro “lags”) – o padrão é usar uma diferença e lag igual a 1. Conforme a opção de modelo utilizado, esse cálculo de diferenças já está incluso como um parâmetro de entrada da função que calcula o modelo (por exemplo, a função Arima do pacote forecast recebe os parâmetros p, d e q, referentes à auto-regressão, diferenças e médias móveis, respectivamente).

Modelos

Para tentar representar os dados através de uma função matemática, existem os modelos paramétricos para séries temporais, ou seja, modelos que o número de parâmetros é finito. Os mais frequentemente usados são os modelos de erro (ou de regressão), os modelos autorregressivos e de médias móveis (ARMA) e os modelos autorregressivos integrados e de médias móveis (ARIMA). A função de autocorrelação é utilizada para identificarmos um modelo adequado para a série temporal – veja mais no post sobre modelo ARIMA.

Fontes

Compartilhe o link desse texto, mas se for copiar algum trecho, cite a fonte. Valorize nosso trabalho.
Mais informações na licença de uso do site.

2 Pingbacks/Trackbacks