Fala galera, nessa semana no Dicas de R vamos fazer um overview do pacote seasonal. Criado para a dessazonalização de séries, o pacote é uma interface em R para o X13-ARIMA-SEATS, permitindo que você possa utilizar as funcionalidades desse programa dentro do próprio R. Vamos testar utilizar ele para a série da variação mensal do IPCA, então começamos a análise importando os dados:
library(sidrar) library(tidyverse) library(lubridate) library(ggplot2) library(scales) ipca_base <- get_sidra(api = "/t/1737/n1/all/p/all/v/63") ipca <- ipca_base %>% #ipca trimestralizado mutate(date = parse_date_time(`Mês (Código)`, "ym")) %>% select(Valor, date) %>% filter(date > "2003-05-01") ggplot(ipca, aes(x=as.Date(date), y=Valor, color=factor(year(date))))+geom_line(size=1.05)+ scale_color_manual(values = rep(c("#36879c", "#26ed6c"), times = 10)) + scale_x_date(breaks = date_breaks("2 years"), labels = date_format("%Y")) + labs(x='', y='%', title = 'Variação mensal do IPCA', caption = 'Fonte: SIDRA e Análise Macro') + theme_light() + theme(axis.text.x=element_text(angle=45, hjust=1), legend.position = 'none', strip.text = element_text(size=10, face='bold'))
Como podemos ver no gráfico, a inflação aparenta apresentar uma sazonalidade forte, sendo mais alta nos meses iniciais e finais do ano. Isso indica que parte de sua trajetória é descrita por equações predeterminadas, logo se quisermos analisar o impacto de outras variáveis sobre a inflação, precisamos extrair os componentes idiossincráticos de cada período, ou seja, o "ruído" que realmente pode ter sido impactado por tais variáveis. A extração pode ser feita com diversos métodos, como a função decompose() do R base. Vamos agora fazer ela com o seasonal:
library(seasonal) ipcats <- ts(ipca$Valor, start = c(2003, 6), frequency = 12) dessaz <- seas(ipcats, x11 = "") plot(dessaz)
No código acima, importamos o pacote, transformamos os dados em série temporal, e rodamos a função seas() que faz o ajuste sazonal, utilizando o método X11. É possível converter quase toda especificação de código do X13-ARIMA-SEATS para o R, como apresentado na página de exemplos do site do pacote. Uma especificação interessante é o gráfico da sazonalidade estimada:
plot(dessaz$series$d10, xlab = "Sazonalidade", ylab="Ano", main = "Componente sazonal do IPCA")