Tag

curso de R Archives - Análise Macro

Análise do IPCA com o R

By | Inflação

O Índice de Preços ao Consumidor Amplo (IPCA) se consolidou como o principal índice de preços do país. Ele é utilizado, inclusive, como referência para o regime de metas para inflação administrado pelo Banco Central. O IPCA faz parte do Sistema Nacional de Índices de Preços ao Consumidor (SNIPC), sendo divulgado mensalmente pelo IBGE. A análise completa do índice faz parte do nosso Curso de Análise de Conjuntura usando o R.

O IPCA tem por objetivo medir a inflação de um conjunto de produtos e serviços comercializados no varejo, referentes ao consumo pessoal das famílias. Ele é construído de forma hierarquizada, sendo dividido em grupos, subgrupos, itens e subitens. Desde agosto de 1999, são nove os grupos: alimentos e bebidas, habitação, artigos de residência, vestuário, transportes, comunicação, saúde e cuidados pessoais, despesas pessoais e educação.

Para ilustrar a contribuição desses grupos para a inflação mensal, vamos coletar os dados da variação deles e o peso de cada grupo no índice diretamente do SIDRA/IBGE com o pacote sidrar.

O script começa, como de praxe, com os pacotes que utilizo.


library(tidyverse)
library(sidrar)

Na sequência, pegamos a variação e o peso dos nove grupos.


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)

A contribuição de cada grupo para a inflação mensal será dada pela multiplicação do peso pela variação, como abaixo.


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

De posse dos dados da contribuição, podemos construir o gráfico abaixo.

A partir desse gráfico, é possível ver que a inflação mensal tem se acelerado (a linha branca) e que a principal contribuição para isso vem do grupo Alimentação e bebidas (a parte verde).

_______________

(*) A análise completa está disponível no nosso Curso de Análise de Conjuntura usando o R.

Análise da violência no Rio com o R

By | Hackeando o R

O Instituto de Segurança Pública (ISP) disponibiliza uma série de dados relacionados à violência no Rio de Janeiro. Nesse post, mostro como coletar e visualizar alguns desses dados com o R. A seguir, baixamos os dados mensais referentes à várias métricas de violência no Estado.


#####################################################
##### Segurança Pública no Rio de Janeiro ###########
#####################################################

library(readr)
library(lubridate)
library(magrittr)
library(dplyr)
library(ggplot2)
library(scales)
library(BMR)

url = 'http://www.ispdados.rj.gov.br/Arquivos/DOMensalEstadoDesde1991.csv'
download.file(url, destfile='basededados.csv', mode='wb')
data = read_csv2('basededados.csv') %>%
mutate(date = make_datetime(vano, mes))

Uma vez que baixamos e lemos os dados do ISP, nós também criamos um vetor de datas a partir do próprio dataset. A seguir, visualizamos alguns dados referentes a homicídios e outros crimes relacionados.

A seguir, visualizamos crimes associados a roubos.

Por fim, visualizamos os homicídios associados a intervenções policiais.

Como mostra o bloxplot abaixo, os dados de homicídios por intervenção policial na ponta estão bem acima da mediana histórica. É realmente um número preocupante.

____________________________

Aprenda a fazer isso e muito mais com o R com o nosso Curso de Introdução ao R para Análise de Dados.

Implementando regressões simples no R

By | Hackeando o R

Regredir um variável x contra uma variável y é um poderoso recurso estatístico. De modo a explicar o método, suponha que estamos interessados em estimar os parâmetros populacionais \beta_0 e \beta_1 de um modelo de regressão simples

(1)   \begin{align*} y = \beta_0 + \beta_1 x + u  \end{align*}

a partir de uma amostra aleatória de y e x. Os estimadores de Mínimos Quadrados Ordinários (MQO) serão

(2)   \begin{align*} \hat{\beta}_0 &= \hat{y} - \hat{\beta_1} \bar{x} \\ \hat{\beta_1} &= \frac{Cov(x,y)}{Var{x}}. \end{align*}

Baseado nos parâmetros estimados, a reta de regressão será

(3)   \begin{align*} \hat{y} = \hat{\beta}_0 + \hat{\beta}_1 x. \end{align*}

Para uma dada amostra, nós precisaremos calcular as quatro estatísticas \bar{y}, \bar{x}, Cov(x,y) e Var(x) e colocá-las nessas equações. Para ilustrar, vamos considerar o exemplo 2.3 de Wooldridge (2013) sobre Salários de CEOs e Retornos sobre o patrimônio. Para isso, considere o seguinte modelo

(4)   \begin{align*} salary = \beta_0 + \beta_1 roe + u \end{align*}

onde salary é o salário anual de CEO em milhares de dólares e roe é o retorno médio sobre o patrimônio em percentual. O parâmetro \beta_1 irá medir a variação no salário anual quando o retorno médio sobre o patrimônio aumentar em um ponto percentual. Para estimar esse modelo, podemos utilizar o conjunto de dados ceosal1. Podemos dar uma olhada nas variáveis do conjunto de dados cesal1 a partir do pacote wooldridge como abaixo.


data(ceosal1, package='wooldridge')
attach(ceosal1)

Uma vez que tenhamos carregado o conjunto de dados, podemos calcular manualmente os parâmetros \beta_0 e \beta_1, como abaixo.


# Cálculo manual dos parâmetros
b1hat = cov(roe,salary)/var(roe)
b0hat = mean(salary) - b1hat*mean(roe)

Isto é, a reta de regressão será dada por

(5)   \begin{align*} \hat{salary} = 963,191 + 18,501 * roe \end{align*}

o que pode ser facilmente obtido com o código abaixo:


lm(salary ~ roe)

Implicando que para um roe = 0, teremos um salário previsto de 963,19 ou US$ 963.191, que é o intercepto. Ademais, se \Delta roe = 1, então \Delta salary = 18,5 ou US$ 18.501. Podemos, por fim, desenhar a reta de regressão com o código abaixo.


CEOregress = lm(salary ~ roe)
plot(roe, salary, ylim=c(0,4000))
abline(CEOregress, col='red')

Vamos continuar nossa revisão de modelos de regressão simples com o conjunto de dados wage1. Estamos interessados agora em estudar a relação entre educação e salários, de modo que o nosso modelo de regressão será

(6)   \begin{align*} wage = \beta_0 + \beta_1 education + u. \end{align*}

O que pode ser obtido com o código abaixo.


modelo = lm(wage ~ educ, data=wage1)
modelo

Isto é, teremos a seguinte reta de regressão

(7)   \begin{align*} \hat{wage} = -0,9 + 0,54 * education \end{align*}

de modo que um ano adicional de estudo implica em mais 54 centavos à hora de trabalho. O objeto obtido com a função lm contém todas as informações relevantes de uma regressão. Abaixo, acessamos os elementos do objeto CEOregress:


names(CEOregress)
CEOregress$coefficients

Podemos obter os valores ajustados:


plot(CEOregress$fitted.values)

E os resíduos:


plot(CEOregress$residuals)

Por fim, podemos ainda obter um sumário de todas as estatísticas relevantes da regressão com a função abaixo.


summary(CEOregress)

O que podemos gerar como tabela com o pacote stargazer como abaixo.

Dependent variable:
salary
roe 18.501*
(11.123)
Constant 963.191***
(213.240)
Observations 209
R2 0.013
Adjusted R2 0.008
Residual Std. Error 1,366.555 (df = 207)
F Statistic 2.767* (df = 1; 207)
Note: *p<0.1; **p<0.05; ***p<0.01

Gostou? Isso e muito mais você aprende em nosso Curso de Introdução à Econometria usando o R.

__________________

(*) Wooldridge, J. M. Introductory Econometrics: A Modern Approach. Editora Cengage, 2013.

Curso de Análise de Conjuntura usando o R abre inscrições

By | Cursos da Análise Macro

O nosso Curso de Análise de Conjuntura usando o R - Versão 3.0 está com inscrições abertas para a 2ª Turma. O 1º lote de inscrições está com 30% de desconto para os primeiros que se inscreverem. As inscrições para esse lote são limitadas e devem acabar em breve. O Curso foi totalmente reformulado em relação à versão anterior, adicionando o que há de mais avançado na linguagem para coleta, tratamento e apresentação de dados macroeconômicos. Clique aqui para conhecer o programa e garantir sua inscrição!

Curso de R para Análise de Dados abre inscrições

By | Cursos da Análise Macro

O nosso Curso de Introdução ao R para Análise de Dados está com inscrições abertas para a 2ª Turma. O 1º lote de inscrições está com 30% de desconto para os primeiros que se inscreverem. As inscrições para esse lote são limitadas e devem acabar em breve. O programa do Curso está alinhado com o que há de mais moderno na linguagem e busca preparar o aluno para cumprir as etapas de coleta, tratamento, análise e apresentação de dados com o RMarkdown. Clique aqui para conhecer o programa e garantir sua inscrição!

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

Assinar Gratuitamente