Modelos Univariados aplicados a séries temporais

No post de hoje, vamos abordar os modelos lineares univariados, apresentando conceitos importantes por meio de simulações e gráficos criados por meio das linguagens R e Python. Nosso objetivo é proporcionar uma compreensão clara e acessível desses modelos, de modo que seja fácil de entender e acompanhar.

Para obter todo o código do processo de criação dos gráficos abaixo, faça parte do Clube AM, o repositório de códigos da Análise Macro, contendo exercícios semanais.

Introdução aos modelos lineares univariados

Há, basicamente, duas formas de se entender uma série temporal, do ponto de vista econométrico. Modelos de série temporal podem ser:

  • Modelos Univariados: as características da série de interesse são explicadas exclusivamente a partir do comportamento da própria série;
  • Modelos Multivariados: as características da série de interesse são explicadas não apenas em função da própria série, mas também por outras séries. Os modelos multivariados podem ser escalares, quando há apenas uma única equação, ou vetoriais, quando há múltiplas equações.

Quando se utilizará uma ou outra forma de modelagem vai depender muito das características da nossa série de interesse, como veremos ao longo do nosso curso. Em termos simples, o objetivo da econometria de séries temporais univariada é encontrar a dependência dinâmica de uma série X_{t}, isto é, a dependência de X_{t} em relação aos seus valores passados (X_{t-1}, X_{t-2},...).

Focaremos nos modelos univariados lineares, onde X_{t} depende linearmente dos seus valores passados, como abaixo:

(1)   \begin{equation*} y_{t} = \mu + \sum_{i=1}^{\infty}\phi_{i}\varepsilon_{t-i} \end{equation*}

Como veremos, modelos univariados podem ser uma boa forma de gerar previsões simples e rápidas para séries que, a priori, nós não temos maiores informações sobre variáveis exógenas que podem influenciar o seu comportamento.

Nesse contexto, para termos condições de modelar e gerar previsões nessa abordagem, vamos ver alguns conceitos básicos e importantes para prosseguirmos. Aprenderemos a analisar as famosas funções de autocorrelação, reconheceremos os termos AR e MA de um processo ARMA, aprenderemos a identificar o problema da não estacionariedade.

Ruído branco

Suporemos que os resíduos dos nossos modelos, isto é, a diferença entre os valores observados e aqueles preditos,

(2)   \begin{equation*} \varepsilon_{t} = y_{t} - \hat{y}_{t} \end{equation*}

são o que chamamos na literatura de ruídos brancos porque consideraremos que

(3)   \begin{eqnarray*} E(\varepsilon_{t}) = 0 \\ E(\varepsilon_{t})^2 = \sigma^2 \\ E(\varepsilon_{t}\varepsilon_{\tau}) = 0, \forall t \neq \tau \end{eqnarray*}

Em outras palavras, uma série {y_{t}: t = 1, 2, 3, ..., m} qualquer, e não apenas os resíduos, será considerada um ruído branco se y_{1}, y_{2}, ..., y_{n} forem independentes e identicamente distribuídos com média igual a zero e variância constante. Assumindo covariância igual a zero, temos, ademais, um ruído branco Gaussiano. Estamos assumindo, claro, uma distribuição normal.

Passeio aleatório

Suponha que uma série y_{t} possa ser modelada como

(4)   \begin{equation*} y_{t} = y_{t-1} + \varepsilon_{t}  \end{equation*}

Onde \varepsilon_{t} segue um ruído branco. Substituindo y_{t-1} = y_{t-2} + \varepsilon_{t-1} na equação acima e depois substituindo por y_{t-2}, y_{t-3} e assim por diante, temos:

(5)   \begin{equation*} y_{t} = \sum_{t=1}^{n} \varepsilon_{t} \end{equation*}

Passeio aleatório com drift

A equação do Passeio Aleatório pode ser modificada ao adicionarmos um intercepto, como abaixo:

(6)   \begin{equation*} y_{t} = \alpha + y_{t-1} + \varepsilon_{t} \end{equation*}

. Podemos observar visualmente a série abaixo.

 

Observe, leitor, que a diferença entre um ruído branco e um passeio aleatório com ou sem drift é que o primeiro é uma série estacionária, no sentido discutido na seção anterior e o segundo, não. A estacionariedade será um conceito extremamente importante na hora de modelarmos a nossa série. Isto porque, é muito mais fácil modelar uma série com média e variância constantes do que uma série onde esses momentos são dependentes do tempo.

Modelos lineares univariados

Estaremos interessados em modelos que possam ser representados da forma

(7)   \begin{equation*} y_{t} = \beta_{0} + \sum_{k=1}^{n}\beta_{k}y_{t-k} + \varepsilon_{t} \end{equation*}

Onde \varepsilon_{t} é um ruído branco. Para o caso em que n=1, teremos modelos como

(8)   \begin{equation*}y_{t} = \beta_{0} + \beta_{1} y_{t-1} + \varepsilon_{t} \end{equation*}

Onde quem irá dizer se o processo y_{t} é ou não estacionário será o valor de \beta_{1}: (i) se |\beta_{1}| < 1, o processo é estacionário; (ii) se |\beta_{1}| \geq 1, o processo será não estacionário.

Funções de autocorrelação

Vimos anteriormente que uma série será estacionária se sua média e todas as suas autocovariâncias não são afetadas por mudanças na origem do tempo. A média, como vimos, será o valor esperado, E, de y_{t}, que supomos ser igual a \mu. Fazendo E(y_{t} - \mu)^{2}, teremos a média dos desvios quadrados ao redor de \mu, também conhecido como variância \sigma^{2} de y_{t}. A covariância de y_{t}, aqui chamada de autocovariância, já que se refere a mesma série, será então dada por E\left [(y_{t} - \mu) (y_{t-k} - \mu)\right ], com k representando a defasagem da série temporal que estamos lidando. Para uma série covariância estacionária, nós podemos definir uma Função de Autocovariância como

(9)   \begin{equation*} \gamma_{k} = E\left [(y_{t} - \mu) (y_{t-k} - \mu)\right ] \end{equation*}

Onde \gamma_{k} naturalmente não depende de t, dado que o valor esperado será o mesmo, independente de t. Assim, a Função de Autocorrelação, denominada como FAC (português) ou ACF (inglês) para uma defasagem k qualquer será dada por

(10)   \begin{equation*} \rho_{k} = \frac{\gamma_{k}}{\sigma^{2}} \end{equation*}

A partir da construção dessa função, em termos gráficos, nós podemos obter informações úteis sobre a natureza do processo em questão, verificando o grau de associação entre as defasagens do mesmo. Da definição, observa-se que \rho_{0} = 1.} Para ilustrar no R, considere os retornos simples mensais da ação da Amazon, entre janeiro de 2014 e dezembro de 2018. O código abaixo ilustra o gráfico da série, a função de autocorrelação e função de autocorrelação parcial.

Modelos autorregressivos

Conforme vimos anteriormente, suponha que tenhamos um processo como

(11)   \begin{equation*} y_{t} = \beta_{0} + \beta_{1} y_{t-1} + \varepsilon_{t}  \end{equation*}

Onde \varepsilon_{t} \sim N(0, \sigma^2). Como vimos, a trajetória desse processo depende de \beta_{1}. Se |\beta_{1}| \geq 1, os choques se acumulam ao longo do tempo, formando assim um processo não estacionário. Por enquanto, entretanto, vamos considerar o caso em que |\beta_{1}| < 1, de modo que tenhamos um processo estacionário. Assim, aplicando o operador defasagem à equação acima, temos que: O operador defasagem é definido como L^{k}y_{t} = y_{t-k}. Ver sobre \href{https://en.wikipedia.org/wiki/Lag_operator}{aqui}.

(12)   \begin{equation*} (1-\beta_{1}L)y_{t} = \beta_{0} + \varepsilon_{t} \end{equation*}

O processo descrito pela equação anterior é conhecido na literatura como processo autoregressivo de primeira ordem, bastante útil na modelagem e previsão de séries onde a primeira defasagem possui significância estatística. Para ilustrá-lo, vejamos as séries abaixo:

Um processo autorregressivo de primeira ordem, por seu turno, pode ser generalizado para um AR(p) da forma abaixo:

(13)   \begin{equation*}</span> y_{t} = \beta_{0} + \beta_{1}y_{t-1} + \beta_{2}y_{t-2} + ... + \beta_{p}y_{t-p} + \varepsilon_{t}  \end{equation*}

Processos de Médias Móveis

Mostramos na seção anterior como inverter um processo AR(1) para um processo de média móvel entre choques contemporâneos e passados. Vamos considerar agora, com base em @pfaff, justamente esse tipo de processo. Como fizemos antes, vamos começar por um processo MA(1) como abaixo:

(14)   \begin{equation*} y_{t} = \mu + \varepsilon_{t} + \theta\varepsilon_{t-1} \end{equation*}

onde \varepsilon_{t} é um ruído branco e \mu e \theta podem ser quaisquer constantes. Os momentos do MA(1) podem ser expressos como

(15)   \begin{align*} \mu& = E(y_{t}) = E(\mu + \varepsilon_{t} + \theta\varepsilon_{t-1}) \\ \gamma_{0}& = E(y_{t} - \mu)^2 = (1 + \theta^2)\sigma^2 \\ \gamma_{1}& = E\left [(y_{t} - \mu)(y_{t-1} - \mu) \right ] = \theta\sigma^2 \end{align*}

Observe que nem a média, nem a autocovariância são dependentes do tempo, logo é possível estabelecer que o MA(1) é covariância estacionário para todos os valores de \theta. Assim como fizemos com o AR(1), podemos gerar um processo MA(1). Abaixo simulamos um MA(1) com \theta = 0.9.

Analogamente ao AR(1), também podemos generalizar um MA(1) para um MA(q) como abaixo:

(16)   \begin{equation*} y_{t} = \mu + \varepsilon_{t} + \theta_{1}\varepsilon_{t-1} + ... + \theta_{q}\varepsilon_{t-q} \end{equation*}

Processos ARMA(p, q)

Agora que temos uma noção do que são processos autoregressivos e de média móveis, podemos juntar os dois. Desta forma podemos analisar processos mistos, ou processos ARMA. Este processo, ARMA(p,q), mais geral pode ser formulado como a seguir

(17)   \begin{equation*} y_{t} = \beta_{0} + \beta_{1}y_{t-1} + \beta_{2}y_{t-2} + ... + \beta_{p}y_{t-p} + \varepsilon_{t} + \theta_{1}\varepsilon_{t-1} + ... + \theta_{q}\varepsilon_{t-q} \end{equation*}

Abaixo, vemos as funções de autocorrelação e autocorrelação parcial de um processo simulado ARMA(1,1):

_____________________

Quer saber mais?

Veja nossa trilha de cursos de Finanças Quantitativas

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Criando Tabelas com o Python: mostrando o poder da linguagem sobre o Excel

Nos dias atuais, pessoas que trabalham com dados estão constantemente confrontados com um dilema: criar uma tabela não tão genial no Excel ou manter em um formato ainda pior, como um dataframe, mas mantendo a flexibilidade de obtenção dos dados. Podemos resolver esse grande problema, unindo a flexibilidade e beleza ao usar a biblioteca great_tables do Python.

Análise do Censo Demográfico com o R

Como podemos analisar dados do Censo Demográfico para produzir pesquisas e implementar políticas públicas? Mostramos nesta postagem o resultado de uma breve análise dos dados preliminares do Censo Demográfico de 2022 usando o R.

Deploy de modelos com Python + Shinylive + GitHub gastando ZERO reais

Colocar modelos em produção pode ser um grande desafio. Lidar com custos monetários, infraestrutura operacional e complexidades de códigos e ferramentas pode acabar matando potenciais projetos. Uma solução que elimina todos estes obstáculos é a recém lançada Shinylive. Neste artigo mostramos um exemplo com um modelo de previsão para o preço do petróleo Brent.

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.