Como criar defasagens de uma variável no R

Análise de séries temporais frequentemente exige tratamentos e transformações dos dados, como a criação de defasagens (lag, no inglês) de uma variável. Podemos representar esse procedimento envolvendo o operador lag como:

Ou seja, quando aplicamos a defasagem em um elemento de yt o que obtemos é o valor anterior da série temporal.

No R este procedimento é bastante simples, sendo possível fazê-lo de mais de uma maneira diferente. Vamos a um exemplo prático!

Para reproduzir o exercício a seguir você precisará dos seguintes pacotes:


library(magrittr) # CRAN v2.0.1
library(dplyr) # CRAN v1.0.7
library(timetk) # CRAN v2.6.2
library(tsibbledata) # CRAN v0.2.0

Vamos usar a série temporal do crescimento anual do PIB brasileiro como exemplo. Esses dados estão disponíveis no pacote tsibbledata. Primeiro uma rápida visualização da série:


pib_br <- tsibbledata::global_economy %>%
dplyr::filter(Country == "Brazil") %>%
dplyr::select(Year, Growth)

pib_br %>%
timetk::plot_time_series(
.date_var = Year,
.value = Growth,
.title = "Brasil: crescimento anual do PIB",
.y_lab = "%",
.line_size = 2,
.smooth = FALSE,
.interactive = FALSE
)

O objeto que temos é do tipo data.frame com características de série temporal (tsibble), muito vantajoso para procedimentos de tratamento de dados usando tidyverse. Neste formato, para criar uma defasagem da variável podemos simplesmente adicionar uma coluna aplicando a função dplyr::lag na variável de interesse. Simples, não?


pib_br %>% dplyr::mutate(growth_lag1 = dplyr::lag(Growth))

Caso o usuário precise criar múltiplas defasagens de uma variável, não há problema. O pacote timetk possui a função tk_augment_lags() que facilita o trabalho, basta apontar uma sequência de lags a serem criados, por exemplo de 1 até 10:


pib_br %>% timetk::tk_augment_lags(Growth, .lags = 1:10)

 

Saiba mais:

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Criando operações SQL com IA Generativa no R com querychat

No universo da análise de dados, a velocidade para obter respostas é um diferencial competitivo. Frequentemente, uma simples pergunta de negócio — “Qual foi nosso produto mais vendido no último trimestre na região Nordeste?” — inicia um processo que envolve abrir o RStudio, escrever código dplyr ou SQL, executar e, finalmente, obter a resposta. E se pudéssemos simplesmente perguntar isso aos nossos dados em português, diretamente no nosso dashboard Shiny?

Dashboard Financeiro com IA e Shiny Python: Análise de Dados Abertos da CVM

Este artigo apresenta um tutorial completo sobre como construir uma ferramenta de análise financeira de ponta. Utilizando Shiny for Python, demonstramos a automação da coleta de dados das Demonstrações Financeiras Padronizadas (DFP) da CVM e o tratamento dessas informações com Pandas. O ponto alto do projeto é a integração da IA Generativa do Google Gemini, que atua como um assistente de análise, interpretando os dados filtrados pelo usuário e fornecendo insights contábeis e financeiros em tempo real. O resultado é um dashboard dinâmico que democratiza a análise de dados complexos e acelera a tomada de decisão.

Econometria, ML ou IA para previsão da PMS?

Prever a Pesquisa Mensal de Serviços (PMS/IBGE) é um desafio por natureza: trata-se de uma série mensal, sujeita a volatilidade e choques que vão de fatores sazonais a mudanças estruturais no setor. Para enfrentar esse problema, realizamos um exercício de comparação entre três abordagens de modelagem: econometria tradicional (ARIMA), machine learning (XGBoost) e inteligência artificial (TimeGPT).

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

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.