Construindo sua primeira análise de dados do ZERO com o R

Um tema que os economistas sempre estudam é a inflação. A inflação é conhecida como a taxa de crescimento do nível geral de preços entre dois períodos distintos. No post de hoje, iremos aprender passo a passo a como construir uma análise de dados do zero do indicador, iniciando pela etapa de importação, seguindo para limpeza e tratamento, exploração e visualização e iremos finalizar criando um modelo de regressão de forma a entender a inflação com a ajuda da teoria econômica.

Averiguar a inflação de um país é uma tarefa dificultosa, imagine, medir o preços de todos os produtos? Apesar disso, o IBGE realiza uma árdua tarefa que visa tentar replicar o valor da inflação através do Índice de Preço dos Consumidor Amplo - IPCA , criando pesquisas que visam entender o consumo dos brasileiros, ponderando os produtos e calculando as variações dos mesmos ao longo do tempo.

E o interessante é que o instituto disponibiliza os dados do indicador através de sua plataforma: SIDRA.

Conseguimos acessar os dados do SIDRA através de uma API disponibilizada pelo instituto, entretanto, seria um pouco dificultoso aprender a como utilizar a API e consultar os dados, não?

Por isso, a comunidade do R fez a questão de criar um pacote que auxilia no processo: {sidrar}. Vamos utilizar o pacote para buscar os dados.

Para buscar os dados do SIDRA, devemos acessar a plataforma, encontrar a tabela dos dados do IPCA que desejamos, selecionar os parâmetros (as informações que desejamos importar) e em seguida copiar a chave API. Para mais detalhes veja os posts de como importar os dados: Como importar dados do Banco Central, IPEADATA e Sidra no R?Coletando dados do SIDRA com o Python.

Vamos utilizar a tabela 1737, referente aos dados do IPCA Acumulado em 12 meses. O objetivo de utilizar o acumulado é que desta forma podemos entender a variação em um período de maior longo prazo e que possibilita tirar informações mais interessante sobre a conjuntura se comparado com a variação mensal ou mesmo o número índice.

Com a chave API em mãos, podemos utilizar a função do pacote {sidrar}, get_sidra(), e salvar o resultado da consulta em um objeto.

Coleta

Agora já temos uma forma de importar os dados do IPCA direto no R! Entretanto, vamos analisar o que importamos:

Limpeza e Tratamento

Há diversas colunas, com dados que não possuem importância para a nossa análise, bem como possuem colunas em que os tipos de dados estão totalmente errados! Devemos criar uma forma do R conseguir ler corretamente. Partimos para o processo de limpeza e tratamento.

Veja o código acima, parece um pouco complicado, certo? Vamos explicar um pouco o que está acontecendo.

Em primeiro lugar, colocamos o nome do objeto ipca_raw, em seguida um símbolo |> e depois uma função. O que aconteceu aqui? Estamos utilizando o operador pipe do R, que permite colocarmos tudo o que está do lado esquerdo (isto é, o resultado) dentro do primeiro argumento da função da próxima linha.

O primeiro argumento da função select() é um argumento que especifica qual o objeto com dados deverá ser utilizado, no caso, ipca_raw. O operador ajuda a criarmos uma sequência de códigos limpa e fácil de ler.

Seguindo o processo, iremos utilizar a função select() do pacote dplyr, que vai permitir escolhermos quais as colunas que queremos selecionar do data frame importado. No caso, selecionamos 2 colunas: Mês (Código) e Valor, veja que selecionamos utilizando aspas e também colocando "data" e "ipca" como valores iguais as colunas. Utilizamos isso para encurtar o caminho: estamos alterando o nome das colunas selecionadas para data e ipca, ou seja, além de selecionar colunas a função select permite alterar o nome das mesmas.

Em seguida, utilizamos pipe novamente, colocando o resultado da linha dentro da função da próxima linha: mutate(). A função mutate() permite alterar as observações das colunas do data frame. Aqui, utilizaremos a função ym do pacote lubridate para alterar os dados da coluna data para o tipo date (está em formato character).

Logo após, vamos aplicar um filtro de dados no data frame com a função filter(). Queremos dados a partir de 2004-01-01, que está salvo no objeto data_inicio. Para isso, dentro da função filter() colocamos que queremos os valores da coluna data >= (maior e igual) que data_inicio (2004-01-01).

Por fim, utilizamos a função as_tibble para alterar a estrutura de dados (a classe) do objeto para tibble, que é uma classe similar ao data frame usual, entretanto com mais informações.

Exploração dos Dados

Agora que realizamos a limpeza dos dados, podemos realizar a exploração dos dados.

Devemos começar com algumas perguntas para a nossa análise:

Como a inflação se comportou no Brasil?

Qual o período com menores e maiores taxas de inflação?

Qual o valor médio da inflação do Brasil e como é a distribuição de seus valores?

O que afeta a inflação? Com qual variável ela se relaciona?

Vamos começar com a função summary(), que permite calcular os cinco números dos valores do IPCA. Vemos que o valor mínimo do IPCA Acumulado em 12 meses foi de 1,880%, enquanto o valor máximo foi de 12,13%. A mediana dos valores durante o período está em  5,832%.

Podemos entender o comportamento do indicador ao longo do tempo através de uma gráfico de linha, com a data no eixo x e o IPCA no eixo y. Para construir, utilizamos o pacote {ggplot2}, com as suas funções. Primeiro criamos a camada do gráfico com ggplot(), em seguida, criamos a camada das coordenadas dos dados do gráfico com aes(), depois construído o gráfico de linha com geom_line(), e por fim, adicionamos geom_smooth() para criar uma linha que mensura a tendência do indicador ao longo da série.

Veja que no gráfico podemos entender os período em que houveram maior e menor inflação.

Com o Histograma podemos analisar a distribuição dos dados. Vemos que os valores se encontram próximo do valor 5% e 6%, com uma cauda alongada para a direita, com pontos extremos positivos, significando menores frequências de acontecimento.

E por fim, os cinco número em forma de gráfico: boxplot. Exibe exatamente o que temos na função summary().

Modelagem

Agora, vamos tentar entender algo sobre a inflação, o que afeta ela? Vamos recapitular a teoria econômica para isso.

Curva de Phillips

Em 1958, A. W. Phillips traçou um diagrama que mostrava a relação entre a taxa de inflação e a taxa de desemprego no Reino Unido para cada ano de 1861 a 1957. Logo após o trabalho de Phillips, Paul Samuelson e Robert Solow repetiram o exercício para o Estados Unidos e batizaram de curva de Phillips.

Rapidamente se tornou fundamental para o pensamento macroeconômico e para a política macroeconômica. Ela parecia implicar que os países poderiam escolher entre combinações diferentes de desemprego e inflação. Um país poderia ter um índice baixo de desemprego se estivesse disposto a tolerar uma inflação mais alta, ou atingir a estabilidade do nível de preços — inflação zero — se estivesse disposto a tolerar um desemprego mais alto.

A Curva de Phillips se tornou uma forma quase definitiva de entender a inflação em um país, entretanto, sofrendo diversas modificações ao longo do tempo, sendo aprimorada pela teoria econômica e por trabalhos empíricos.

Para manter a análise simples, vamos utilizar a Curva de Phillips original, traçando a relação entre Inflação e Desemprego no Brasil. Para isso, devemos obter os dados da Taxa de Desocupação do Brasil através do SIDRA. Repetimos o mesmo código de coleta e tratamento, entretanto, utilizando a chave API do indicador da tabela 6381.

Juntamos os dois indicadores através da função inner_join(), que permite que os dados da coluna 'data' sejam 'colados' e que os dois data frames se juntem.

Por fim, podemos entender a relação dos dois indicadores através de um gráfico. Vejam abaixo, podemos entender que há uma relação.

Utilizar gráficos podem nos ajudar a estabelecer a relação entre os dois indicadores, entretanto, podemos evoluir a análise utilizando uma regressão simples, em que a variável independente é a desocupação e variável dependente é o IPCA. O resultado vemos abaixo: o coeficiente é negativo, expressando a relação negativa entre os dois indicadores; temos uma relação estatística significante; e apesar disso, há pouca explicação da desocupação em relação a inflação, de acordo com o R²: apenas 0.09302..

Por fim, podemos entender a relação dos dois indicadores por meio de um gráfico de dispersão.


____________________________________________________

Quer aprender mais?

Veja nosso curso de Fundamentos de Análise de Dados, onde ensinamos todo o processo para aqueles que desejam entrar na área. O curso faz parte da trilha Ciência de Dados para Economia e Finanças.

___________________________________________________

Referências

BLANCHARD, Olivier. Macroeconomia. Pearson, 2017.

DORNBUSCH, Rudiger; FISCHER, Stanley; STARTZ, Richard. Macroeconomia. Bookman Editora, 2013.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Resultado IPCA-15 - Novembro/2024

A Análise Macro apresenta os resultados do IPCA-15 de Novembro de 2024, com gráficos elaborados em Python para coleta, tratamento e visualização de dados. Todo o conteúdo, disponível exclusivamente no Clube AM, foi desenvolvido com base nos métodos ensinados nos cursos da Análise Macro, permitindo aos assinantes acesso aos códigos e replicação das análises.

Resultado PNADc Trimestral - 3° Trimestre/2024

A Análise Macro apresenta os resultados da PNADc Trimestral do 3º trimestre de 2024, com gráficos elaborados em Python para coleta, tratamento e visualização de dados. Todo o conteúdo, disponível exclusivamente no Clube AM, foi desenvolvido com base nos métodos ensinados nos cursos da Análise Macro, permitindo aos assinantes acesso aos códigos e replicação das análises.

Análise exploratória para modelagem preditiva no Python

Antes de desenvolver bons modelos preditivos é necessário organizar e conhecer muito bem os dados. Neste artigo, damos algumas dicas de recursos, como gráficos, análises e estatísticas, que podem ser usados para melhorar o entendimento sobre os dados usando Python.

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.