[et_pb_section admin_label="section"][et_pb_row admin_label="row"][et_pb_column type="1_2"][et_pb_text admin_label="Texto" background_layout="light" text_orientation="left" use_border_color="off" border_color="#ffffff" border_style="solid"]
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.
1 | 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.
[/et_pb_text][/et_pb_column][et_pb_column type="1_2"][et_pb_image admin_label="Imagem" src="https://analisemacro.com.br/wp-content/uploads/2016/11/macroeconometria.png" show_in_lightbox="off" url="https://analisemacro.com.br/cursos-de-r/macroeconometria/" url_new_window="off" use_overlay="off" animation="left" sticky="off" align="left" force_fullwidth="off" always_center_on_mobile="on" use_border_color="off" border_color="#ffffff" border_style="solid"] [/et_pb_image][/et_pb_column][/et_pb_row][et_pb_row admin_label="Linha"][et_pb_column type="4_4"][et_pb_text admin_label="Texto" background_layout="light" text_orientation="left" use_border_color="off" border_color="#ffffff" border_style="solid"]
1 2 3 | 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.
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.
Agora, antes de gerarmos previsões, precisamos completar os missing values no hiato do produto. Isso é feito abaixo.
1 2 | 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ### 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.
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.
[/et_pb_text][et_pb_button admin_label="Botão" button_url="https://analisemacro.com.br/cursos-de-r/macroeconometria/" url_new_window="off" button_text="Curso de Macroeconometria usando o R" button_alignment="center" background_layout="light" custom_button="off" button_letter_spacing="0" button_use_icon="default" button_icon_placement="right" button_on_hover="on" button_letter_spacing_hover="0"] [/et_pb_button][/et_pb_column][/et_pb_row][/et_pb_section]