Tag

previsão da inflação Archives - Análise Macro

Modelos SARIMA

By | Comentário de Conjuntura

Modelos SARIMA são modelos da classe de modelos univariados de séries temporais. O acrônimo SARIMA significa modelos AutoRegressivos Integrados de Médias Móveis com Sazonalidade. São modelos bastante úteis para gerar previsão de séries temporais quando, em geral, não estão disponíveis variáveis preditoras. O aspecto mais interessante desse tipo de abordagem é justamente colocar a parte sazonal da série dentro do modelo.

Um processo autorregressivo de ordem p pode ser representado como

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

Ou, alternativamente, utilizando o operador defasagem L^{k}y_{t} = y_{t-k} como

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

Ou ainda em notação polinomial

(3)   \begin{equation*} \beta_{p}(L)y_{t} = c + \varepsilon_{t}  \end{equation*}

Onde c=\beta_{0}.  Abaixo simulamos alguns processos autorregressivos de ordem 1 no R, com diferentes valores para \beta_{1}.

Considerando, assim, um processo AR(1), como

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

teremos um \emph{ruído branco} quando \beta_{1} = 0, um \emph{passeio aleatório} quando \beta_{1} = 1 e c=0 ou, quando c \neq 0, um \emph{passeio aleatório com drift}. Analogamente, podemos representar um processo de média móvel MA(q) como

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

Ou, alternativamente, utilizando o operador defasagem, como

(6)   \begin{equation*} y_{t} = \mu + (1 + \theta_{1}L + \theta_{2}L^2 + ... \theta_{q}L^q)\varepsilon_{t}  \end{equation*}

Ou ainda em notação polinomial

(7)   \begin{equation*} y_{t} = \mu + \theta_{q}(L)\varepsilon_{t}  \end{equation*}

Utilizando o mesmo código acima, a propósito, podemos gerar alguns processos MA(1), modificando apenas o valor de \theta_{1}. Ademais, como vimos, podemos combinar as equações 1 e 5, construindo assim um processo ARMA(p,q), que pode ser representado como

(8)   \begin{equation*} y_{t} = c + \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*}

Onde, novamente, c=\beta_{0}. Alternativamente, utilizando o operador defasagem

(9)   \begin{equation*} (1-\beta_{1}L - \beta_{2}L^2 - ... \beta_{p}L^p)y_{t} = c + (1 + \theta_{1}L + \theta_{2}L^2 + ... \theta_{q}L^q)\varepsilon_{t}  \end{equation*}

Ou ainda, em notação polinomial

(10)   \begin{equation*} \beta_{p}(L)y_{t} = c + \theta_{q}(L)\varepsilon_{t}  \end{equation*}

Podemos, enfim, generalizar nossa análise para um modelo ARIMA(p,d,q), onde d será a ordem de integração do processo. Ele pode ser representado em termos de notação polinomial como

(11)   \begin{equation*} \beta_{p}(L)(1 - L)^{d} y_{t} = c + \theta_{q}(L)\varepsilon_{t}  \end{equation*}

A equação 11 faz referência aos modelos ARIMA não sazonais. Os modelos ARIMA também são capazes de modelar uma ampla gama de dados sazonais. Um modelo ARIMA sazonal é formado pela inclusão de termos sazonais adicionais, na forma ARIMA (p,d,q) (P,D,Q)_m, onde o segundo componente faz referência à parte sazonal e m significa o número de períodos por estação. Em termos formais,

(12)   \begin{equation*} \phi_{P}(L^s) \beta_{p}(L) (1 - L^s)^D (1 - L)^{d} y_{t} = c + \theta_{q}(L) \Theta_{Q} (L^s) \varepsilon_{t}  \end{equation*}

_______________________________

(*) Para aprender mais, conheça nosso Curso de Análise de Séries Temporais.

Gerando Previsões Combinadas para a Inflação a partir dos grupos do IPCA

By | Comentário de Conjuntura

A inflação cheia medida pelo IPCA em um período t qualquer nada mais é do que a soma da contribuição da inflação em cada um dos seus nove grupos, de acordo com os pesos dos mesmos no índice. Em outros termos,

(1)   \begin{align*} \pi_t = \sum_{i=1}^{9} \pi_{t,i}^{g} p_{t,i}^{g} \end{align*}

onde \pi_t é a inflação cheia, \pi_{t,i}^{g} é a inflação em t no grupo i e p_{t,i}^{g} é o peso em t do grupo i no índice cheio. De modo a ilustrar, podemos baixar com o pacote sidrar, as variações e os pesos desses nove grupos do IPCA, conforme o código abaixo.


## Pacotes
library(sidrar)
library(ggplot2)
library(forecast)
library(timetk)
library(zoo)
library(scales)
library(tidyverse)

## Baixar e tratar os dados
tab1 = get_sidra(api='/t/2938/n1/all/v/63,66/p/all/c315/7170,7445,7486,7558,7625,7660,7712,7766,7786/d/v63%202,v66%204')
tab2 = get_sidra(api='/t/1419/n1/all/v/63,66/p/all/c315/7170,7445,7486,7558,7625,7660,7712,7766,7786/d/v63%202,v66%204')
tab3 = get_sidra(api='/t/7060/n1/all/v/63,66/p/all/c315/7170,7445,7486,7558,7625,7660,7712,7766,7786/d/v63%202,v66%204')

series = c(7170, 7445, 7486, 7558, 7625, 7660,
7712, 7766, 7786)

names = c('Alimentos', 'Habitação', 'Art de Resid',
'Vestuário', 'Transporte', 'Saúde e cuid pessoais',
'Despesas Pessoas', 'Educação', 'Comunicação')

var1 <- matrix(NA, ncol=length(series),
nrow=nrow(tab1)/length(series)/2)

peso1 <- matrix(NA, ncol=length(series),
nrow=nrow(tab1)/length(series)/2)

var2 <- matrix(NA, ncol=length(series),
nrow=nrow(tab2)/length(series)/2)

peso2 <- matrix(NA, ncol=length(series),
nrow=nrow(tab2)/length(series)/2)

var3 <- matrix(NA, ncol=length(series),
nrow=nrow(tab3)/length(series)/2)

peso3 <- matrix(NA, ncol=length(series),
nrow=nrow(tab3)/length(series)/2)

for(i in 1:length(series)){

var1[,i] <- tab1Valor[tab1`Variável (Código)`==63&
tab1`Geral, grupo, subgrupo, item e subitem (Código)`==series[i]]  var2[,i] <- tab2Valor[tab2`Variável (Código)`==63& tab2`Geral, grupo, subgrupo, item e subitem (Código)`==series[i]]

var3[,i] <- tab3Valor[tab3`Variável (Código)`==63&
tab3`Geral, grupo, subgrupo, item e subitem (Código)`==series[i]]  peso1[,i] <- tab1Valor[tab1`Variável (Código)`==66& tab1`Geral, grupo, subgrupo, item e subitem (Código)`==series[i]]

peso2[,i] <- tab2Valor[tab2`Variável (Código)`==66&
tab2`Geral, grupo, subgrupo, item e subitem (Código)`==series[i]]  peso3[,i] <- tab3Valor[tab3`Variável (Código)`==66& tab3`Geral, grupo, subgrupo, item e subitem (Código)`==series[i]]
}

variacao = ts(rbind(var1, var2, var3), start=c(2006,07), freq=12)
peso = ts(rbind(peso1, peso2, peso3), start=c(2006,07), freq=12)

Assim, a inflação medida pelo IPCA nada mais será do que a variação vezes o respectivo peso do grupo. Com isso em mente, nós podemos gerar a previsão para cada grupo e depois recuperar a previsão da inflação cheia a partir dessas previsões individuais. O resultado é exposto no gráfico abaixo.

A previsão para a inflação em janeiro, por essa metodologia, é de 0,47%.

________________

(*) Para aprender a fazer esse tipo de projeção, veja nossos cursos de Previsão Macroeconométrica e Modelos Preditivos aplicados à Macroeconomia.

(**) Os códigos completos do exercício estão disponíveis no Clube AM.

Raio-X da inflação brasileira usando o R

By | Comentário de Conjuntura

Na próxima quinta-feira, às 20h, eu farei uma aula ao vivo sobre estratégias de previsão da inflação mensal medida pelo IPCA. A aula faz parte do lançamento do nosso novo Curso de Previsão Macroeconométrica usando o R. Para garantir sua presença na aula, coloque seu nome na lista aqui para ser avisado. Nesse Comentário de Conjuntura, a propósito, fazemos um raio-x da inflação brasileira, tendo por foco o IPCA. O código completo está disponível para os membros do Clube AM.

Para começar, nós carregamos os pacotes de R que utilizaremos.


library(tidyverse)
library(readxl)
library(sidrar)
library(forecast)
library(tstools)
library(scales)
library(ggrepel)
library(BETS)
library(xtable)
library(lubridate)
library(RcppRoll)
library(knitr)
library(fpp3)
library(xts)
library(reshape2)
library(rbcb)

Com os pacotes carregados, podemos coletar os dados diretamente do SIDRA/IBGE para o RStudio com o código abaixo. Já aproveito para criar a inflação mensal e a inflação acumulada em 12 meses.


## Criar Inflação mensal e acumulada em 12 meses
ipca_indice = 
'/t/1737/n1/all/v/2266/p/all/d/v2266%2013' %>%
get_sidra(api=.) %>%
mutate(date = ymd(paste0(`Mês (Código)`, '01'))) %>%
select(date, Valor) %>%
mutate(mensal = round((Valor/lag(Valor, 1)-1)*100, 2),
anual = round((Valor/lag(Valor, 12)-1)*100, 2))

Como o índice pega toda a hiperinflação da década de 80, nós pegamos uma janela a partir de 2007 com o código a seguir.


## Criar amostra
ipca_subamostra = ipca_indice %>%
filter(date >= as.Date('2007-06-01'))

Uma tabela com os últimos resultados é colocada abaixo.

date Valor mensal anual
159 2020-08-01 5357.46 0.24 2.44
160 2020-09-01 5391.75 0.64 3.14
161 2020-10-01 5438.12 0.86 3.92
162 2020-11-01 5486.52 0.89 4.31
163 2020-12-01 5560.59 1.35 4.52
164 2021-01-01 5574.49 0.25 4.56

Os gráficos do número índice e da inflação mensal e acumulada em 12 meses são colocados abaixo.


Podemos dar um zoom na inflação mensal, como abaixo.

Uma análise estatística da inflação pode ser feita, a começar pelas estatísticas descritivas do nosso dataset.

date Valor mensal anual
Min. :2007-06-01 Min. :2669 Min. :-0.3800 Min. : 1.880
1st Qu.:2010-10-24 1st Qu.:3169 1st Qu.: 0.2500 1st Qu.: 4.190
Median :2014-03-16 Median :3911 Median : 0.4300 Median : 5.250
Mean :2014-03-17 Mean :4017 Mean : 0.4522 Mean : 5.473
3rd Qu.:2017-08-08 3rd Qu.:4855 3rd Qu.: 0.6025 3rd Qu.: 6.492
Max. :2021-01-01 Max. :5574 Max. : 1.3500 Max. :10.710

A seguir, podemos ver uma característica bastante conhecida da inflação que é a sua sazonalidade.

A seguir, nós vemos o boxplot e o histograma da inflação mensal medida pelo IPCA.

Na sequência, nós podemos importar os núcleos de inflação criados e acompanhados pelo Banco Central.


## Pegar núcleos
series = c(ipca_ex2 = 27838,
ipca_ex3 = 27839,
ipca_ms = 4466,
ipca_ma = 11426,
ipca_ex0 = 11427,
ipca_ex1 = 16121,
ipca_dp = 16122)

nucleos = get_series(series, start_date = '2006-07-01') %>%
purrr::reduce(inner_join)

Com os dados dos núcleos disponíveis, nós podemos criar um gráfico como abaixo.

A despeito do avanço da inflação cheia, a média dos sete núcleos do Banco Central ainda se situa abaixo da meta de inflação. A seguir, ilustramos todos os sete núcleos.

Como é possível ver pelo gráfico, todos os sete núcleos situam-se abaixo da meta de inflação, que esse ano é de 3,75%. Na sequência, vemos cada um dos sete grupos, na sua variação mensal.

E a variação acumulada em 12 meses.

Os núcleos de inflação são importantes para expurgar choques que ocorrem sobre o índice cheio. O que se vê pelos gráficos acima é que, de fato, os núcleos ainda estão mais comportados do que a inflação cheia, mas na margem, houve sim uma contaminação.

Outra informação importante é a difusão da inflação, isto é, o percentual de subitens que teve variação positiva no mês. Pelo gráfico acima, é possível ver que na margem há um avanço da difusão, já considerando uma média móvel de 12 meses dos dados.

Na sequência, nós podemos ver a contribuição dos 9 grupos para a inflação cheia. Os dados são coletados diretamente do SIDRA/IBGE.


## Baixar e tratar os dados
variacao =
'/t/7060/n1/all/v/63/p/all/c315/7170,7445,7486,7558,7625,7660,7712,7766,7786/d/v63%202' %>%
get_sidra(api=.) %>%
mutate(date = parse_date(`Mês (Código)`, format='%Y%m')) %>%
select(date, "Geral, grupo, subgrupo, item e subitem", Valor) %>%
pivot_wider(names_from = "Geral, grupo, subgrupo, item e subitem",
values_from = Valor)

peso =
'/t/7060/n1/all/v/66/p/all/c315/7170,7445,7486,7558,7625,7660,7712,7766,7786/d/v66%204' %>%
get_sidra(api=.) %>%
mutate(date = parse_date(`Mês (Código)`, format='%Y%m')) %>%
select(date, "Geral, grupo, subgrupo, item e subitem", Valor) %>%
pivot_wider(names_from = "Geral, grupo, subgrupo, item e subitem",
values_from = Valor)

contribuicao = (variacao[,-1]*peso[,-1]/100) %>%
mutate(date = variacao$date) %>%
select(date, everything())

Na sequência, geramos um gráfico com a variação mensal dos nove grupos.

Como se vê, houve um aumento considerável do grupo Alimentação e bebidas ao longo de 2020, o que contribuiu de forma peremptória para o avanço da inflação ao longo daquele ano. Na sequência, colocamos a contribuição de cada um dos grupos para a inflação mensal.

O gráfico acima ilustra a contribuição do grupo Alimentação e bebidas para a inflação mensal ao longo de 2020. A seguir, baixamos as classificações do IPCA diretamente do Banco Central.


series = c('Comercializáveis' = 4447,
'Não Comercializáveis' = 4448,
'Monitorados' = 4449,
'Não Duráveis' = 10841,
'Semi-Duráveis' = 10842,
'Duráveis' = 10843,
'Serviços' = 10844,
'Livres' = 11428)

classificacoes_ipca = get_series(series, start_date = '2007-01-01') %>%
purrr::reduce(inner_join)

Um gráfico com a variação acumulada em 12 meses é colocado abaixo.

Há uma assimetria entre as classificações do IPCA. Enquanto os preços livres tiveram um avanço nos últimos anos, os monitorados e não comercializáveis seguiram trajetória contrária. Na margem, contudo, essas classificações também mostram algum repique.

Para terminar esse `Raio-x da inflação brasileira`, vamos passar rapidamente pelos Índices Gerais de Preço (IGPs), construídos e divulgados mensalmente pela Fundação Getúlio Vargas. Os (IGPs) são formados por três índices: Índice de Preços por Atacado (IPA), Índice de Preço ao Consumidor (IPC) e Índice Nacional de Custo da Construção Civil (INCC). São divididos por período de coleta em IGP-10, IGP-M e IGP-DI.

Os números-índices do IGP-10, IGP-M e IGP-DI podem ser obtidos aplicando a seguinte fórmula no \mathbf{R}:

(1)   \begin{equation*} IGP_{i,t}=0,6*IPA_{i,t}+0,3*IPC_{i,t}+0,1*INCC_{i,t} \end{equation*}

Onde i pode ser 10, M ou DI.

O código a seguir pega os dados diretamente do Banco Central.


series = list('IGP-M'=189, 'IGP-DI'=190, 'IGP-10'=7447, 'IPC-Br'=191,
'INCC'=192, 'IPA'=225)

indices_gerais = get_series(series, start_date = '2007-01-01') %>%
purrr::reduce(inner_join) %>%
gather(variavel, valor, -date)

Na sequência, colocamos um gráfico que mostra os índices gerais e seus componentes no acumulado em 12 meses.

Como se vê, houve um salto no IPA, o índice de preços no atacado. Como o mesmo representa 60% dos índices gerais, houve um salto grande nesses índices ao longo de 2020. A tabela abaixo mostra a correlação entre os índices gerais, seus componentes e o IPCA.

IGP-10 IGP-DI IGP-M INCC IPA IPC-Br IPCA
IGP-10 1.0000000 0.9839832 0.9961309 0.4423330 0.9714577 0.2969412 0.3105496
IGP-DI 0.9839832 1.0000000 0.9947883 0.3984862 0.9930553 0.2648717 0.2771306
IGP-M 0.9961309 0.9947883 1.0000000 0.4198252 0.9855453 0.2778136 0.2909590
INCC 0.4423330 0.3984862 0.4198252 1.0000000 0.3182797 0.4864669 0.5081419
IPA 0.9714577 0.9930553 0.9855453 0.3182797 1.0000000 0.1571463 0.1702913
IPC-Br 0.2969412 0.2648717 0.2778136 0.4864669 0.1571463 1.0000000 0.9866917
IPCA 0.3105496 0.2771306 0.2909590 0.5081419 0.1702913 0.9866917 1.0000000

Para terminar, então, mostramos o gap entre o IPA e o IPCA no gráfico abaixo.

Membros do Clube AM têm acesso a todos os resultados dessas pesquisas, que contam com scripts automáticos ensinados no nosso Curso de Análise de Conjuntura usando o R.

_______________________

Gerando previsões combinadas para a inflação a partir dos grupos do IPCA

By | Macroeconometria

A inflação cheia medida pelo IPCA em um período t qualquer nada mais é do que a soma da contribuição da inflação em cada um dos seus nove grupos, de acordo com os pesos dos mesmos no índice. Em outros termos,

(1)   \begin{align*} \pi_t = \sum_{i=1}^{9} \pi_{t,i}^{g} p_{t,i}^{g} \end{align*}

onde \pi_t é a inflação cheia, \pi_{t,i}^{g} é a inflação em t no grupo i e p_{t,i}^{g} é o peso em t do grupo i no índice cheio.

Com o uso do R, podemos baixar com o pacote sidrar, as variações e os pesos desses nove grupos do IPCA diretamente do site do SIDRA/IBGE, conforme o código abaixo.


## Carregar pacotes
library(sidrar)
## Baixar e tratar os dados
tab1 = get_sidra(api='/t/2938/n1/all/v/63,66/p/all/c315/7170,7445,7486,7558,7625,7660,7712,7766,7786/d/v63%202,v66%204')
tab2 = get_sidra(api='/t/1419/n1/all/v/63,66/p/all/c315/7170,7445,7486,7558,7625,7660,7712,7766,7786/d/v63%202,v66%204')

Uma vez que tenhamos baixado os dados, é preciso organizá-los, transformando-os em uma matriz legível. Isso é feito com o código a seguir.


series = c(7170, 7445, 7486, 7558, 7625, 7660,
7712, 7766, 7786)

names = c('Alimentos', 'Habitação', 'Art de Resid',
'Vestuário', 'Transporte', 'Saúde e cuid pessoais',
'Despesas Pessoas', 'Educação', 'Comunicação')

var1 = matrix(NA, ncol=length(series), 
nrow=nrow(tab1)/length(series)/2)

peso1 = matrix(NA, ncol=length(series), 
nrow=nrow(tab1)/length(series)/2)

var2 = matrix(NA, ncol=length(series), 
nrow=nrow(tab2)/length(series)/2)

peso2 = matrix(NA, ncol=length(series), 
nrow=nrow(tab2)/length(series)/2)

for(i in 1:length(series)){

var1[,i] = tab1$Valor[tab1$`Variável (Código)`==63&amp;
tab1$`Geral, grupo, subgrupo, item e subitem (Código)`==series[i]]

var2[,i] = tab2$Valor[tab2$`Variável (Código)`==63&amp;
tab2$`Geral, grupo, subgrupo, item e subitem (Código)`==series[i]]

peso1[,i] = tab1$Valor[tab1$`Variável (Código)`==66&amp;
tab1$`Geral, grupo, subgrupo, item e subitem (Código)`==series[i]]

peso2[,i] = tab2$Valor[tab2$`Variável (Código)`==66&amp;
tab2$`Geral, grupo, subgrupo, item e subitem (Código)`==series[i]]
}

variacao = ts(rbind(var1, var2), start=c(2006,07), freq=12)
peso = ts(rbind(peso1, peso2), start=c(2006,07), freq=12)

colnames(variacao) = names
colnames(peso) = names

Pronto! Agora, temos uma matriz que contém a variação dos nove grupos, desde julho de 2006; e outra que contém os pesos desses grupos para o mesmo período. Desse modo, a inflação cheia será a soma das variações vezes os respectivos pesos. Isto é,


ipca = ts(round(rowSums(variacao*peso/100),2), 
start=c(2006,07), freq=12)

O gráfico a seguir ilustra...

Uma vez entendido o processo, fica fácil agora gerar previsões para a inflação cheia a partir dos nove grupos, não é mesmo? Basta que se gere previsões de n passos para cada um dos grupos e depois some essas previsões, ponderando pelos respectivos pesos, de modo a obter uma previsão da inflação cheia. Legal, né? 🙂

Saiba mais sobre modelagem e previsão com o R em nossos cursos de Macroeconometria usando o R, Séries Temporais usando o R e Construção de Cenários e previsões usando o R.

Previsão da Inflação com um modelo SARIMAX

By | Clube AM, Inflação, Macroeconometria

Na edição 13 do Clube do Código, apresentamos um modelo SARIMA para a inflação medida pelo IPCA. Hoje, vamos extender esse modelo com a inclusão de algumas variáveis, o que dá origem a um modelo SARIMAX. Os dados estão no arquivo data.csv e são importados para o R abaixo.

data = ts(read.csv2('data.csv', header=T, dec=',', sep=';')[,-1], start=c(2001,11), freq=12)

 

Antes de visualizar os dados, precisamos criar o hiato do produto. Isso é feito abaixo, com a função hpfilter do pacote mFilter.

 

pib.hp = hpfilter(na.omit(data[,3]), type='lambda', freq=14400)
data = cbind(data[,c(1,2)], pib.hp$cycle, diff(data[,4]))
colnames(data) = c('ipca', 'expectativa', 'hiato', 'dcambio')

Agora, assim, podemos ver os gráficos.

grafico01

Para criar o modelo SARIMAX, vamos utilizar a base do modelo SARIMA que estimamos naquela edição. Com essa base, nós podemos adicionar nossos regressores adicionais. Ademais, para fins de comparação, vamos estimar o mesmo SARIMA. Uma vez feito isso, colocamos os modelos abaixo.

grafico02

Agora, antes de gerarmos previsões, precisamos completar os missing values no hiato do produto. Isso é feito abaixo.

hiato.forecast = forecast(auto.arima(data[,3], max.p=4, max.q=4, seasonal = F), h=17, level=40)
data[c(nrow(data),nrow(data)-1),3] = hiato.forecast$mean[1:2]

Agora, podemos organizar os cenários.

### Cenário Base
cen.base = ts(read.csv2('cenarios.csv', header=T, sep=';', dec=',')[,2:3], start=c(2016,10), freq=12)
cen.base = cbind(cen.base[,1], hiato.forecast$mean[3:17], cen.base[,2])
colnames(cen.base) = c('expectativa', 'hiato', 'dcambio')

### Cenário Pessimista
cen.pessim = ts(read.csv2('cenarios.csv', header=T, sep=';', dec=',')[,4:5], start=c(2016,10), freq=12)
cen.pessim = cbind(cen.pessim[,1], hiato.forecast$upper[3:17], cen.pessim[,2])
colnames(cen.pessim) = c('expectativa', 'hiato', 'dcambio')

### Cenário Otimista
cen.otim = ts(read.csv2('cenarios.csv', header=T, sep=';', dec=',')[,6:7], start=c(2016,10), freq=12)
cen.otim = cbind(cen.otim[,1], hiato.forecast$lower[3:17], cen.otim[,2])
colnames(cen.otim) = c('expectativa', 'hiato', 'dcambio')

 

Uma vez feito isso, podemos utilizar o pacote forecast para gerar as previsões. As previsões utilizadas com o cenário base são postas abaixo.

grafico03

Com os resultados, construímos também um cenário alternativo para a inflação acumulada em 12 meses. A trajetória de desinflação esperada é posta abaixo.

grafico04

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

Assinar Gratuitamente