Introdução ao R e Aplicações Econométricas

CAEN-MESP

Gerson Ribeiro

June 21, 2023

Introdução ao R

O que é o …

R?

R é um ambiente de software livre para computação estatística e gráficos. (https://www.r-project.org/)

RStudio?

RStudio é uma IDE (integrated development environment) da Linguagem R, ou seja, um ambiente de desenvolvimento que utilizamos para editar e executar os códigos em R.

RStudio Cloud?

É a IDE RStudio que podemos utilizar diretamente do navegador (sem que seja necessário instalar nada).

Por quê usar o R?

  • É uma linguagem de programação que possui muitas ferramentas para análise de dados

  • É código aberto (open source)

  • Possui uma comunidade ativa de pessoas desenvolvedoras

  • É flexível, permite desenvolver funções e pacotes para facilitar o trabalho

  • Está disponível, gratuitamente, em diferentes plataformas: Windows, Linux e Mac

  • Mantido pela R Development Core Team

E o Excel?

Resposta: nem todas as bases abrem no Excel

Os limites do Excel

Limite do Excel: 1.048.576 linhas e 16.384 colunas

Para efeito de comparação…

  • Base de SRAG do Sivep-Gripe só do ano de 2021 (atualizado até fev/2022): 1.715.835 linhas

  • Base do Enem 2018: 5,5 milhões de linhas (uma linha por pessoa inscrita)

  • Base de beneficiários do Auxílio Emergencial: 40 milhões de linhas novas a cada mês

As bases de dados e o R

Podemos usar bases que tenham formato de “tabela”:

  • cada linha é um registro (chamamos de observação), e cada coluna traz algum detalhe sobre aquele registro (chamamos de variável)

  • as colunas ou linhas não estão mescladas ou agrupadas

  • muitas vezes são os arquivos do poder público salvos no formato .csv (mas nem sempre)

Breve glossário

  • Data frame: sinônimo para “tabela” ou “planilha”

  • Tibble: idem acima

  • Objeto: é uma forma em que guardamos valores, um exemplo de objeto é um data frame.

  • Observação: é sinônimo de “linha” na sua tabela

  • Variável: é sinônimo de “coluna” na sua tabela

Potencial do R

  • Abrir uma base de dados

  • Limpar a base de dados (ex: formatar uma data ou tirar os acentos dos nomes)

  • Transformar a base de dados (ex: a partir da coluna de data, criar uma coluna nova só com o mês)

  • Visualizar os dados em formatos de gráficos ou mapas (ou mesmo relatórios em PDF ou websites)

  • E muito mais!

Conceitos Iniciais de Programação em R

Comandos Básicos

2 + 2  # Adição
[1] 4
5 * 5 + 2  # Multiplicação e adição
[1] 27
5/5 - 3  # Divisão e subtração
[1] -2
log(exp(pi))  # log, exponentcial, pi
[1] 3.141593
exp(1)^(-2)  # Potência
[1] 0.1353353
1:5  # Sequências
[1] 1 2 3 4 5
seq(1, 10, by = 2)  # Sequências
[1] 1 3 5 7 9

Executando códigos

  • O atalho Ctrl + Enter é um dos mais úteis! Executa o código selecionado, ou o trecho de código onde o cursor está.

  • O atalho Ctrl + Shift + S executa todos os códigos do script!

O que é um obejto?

  • Um objeto é onde nossos dados são armazenados dentro do R.

  • Um objeto sempre tem uma classe e um tipo

  • Geralmente chamamos de “valor” tudo o que está dentro de um objeto, porém: Valores não precisam ser necessariamente números.

Criando objetos

  • Podemos criar objetos (e guardar resultados) usando o operador de atribuição <-, e a estrutura a seguir:
``` {{r}}
nome_do_objeto <- valor
```

Exemplo:

x <- 3 * 4

Podemos ver o conteúdo do objeto escrevendo o nome e executando:

x
[1] 12
pessoa <- "Bruna"
pessoa 
[1] "Bruna"

As classes dos objetos

  • Os objetos podem conter dados de diferentes naturezas (um texto, um número, um booleano). É o quê estamos armazenando. Principais:
CLASSE SINÔNIMO
character texto, string, caractere
integer números inteiros
numeric números racionais (número representado por uma fração
logic lógico, booleano, valor TRUE/FALSE
factor variáveis categóricas

Os tipos de objetos

É como armazenamos os dados dentro do R. Principais neste momento:

Vector: armazena elementos de mesma classe.

Matrix vetores de duas dimensões que armazenam elementos de mesma classe.

Data.frame: são tabelas de dados com linhas e colunas, como uma tabela do Excel. C ada coluna pode ser de classe diferente. Dentro de cada coluna, teremos sempre a mesma classe!

Operadores relacionais

Operador Descrição
== igual
!= diferente
> maior
< menor
>= maior ou igual a
<= menor ou igual que

Operadores lógicos

Operador Descrição
! significa NÃO
& significa E
| significa OU
%in% significa “contém”

O que é uma função?

  • Função: uma palavra que, no código, dá um comando ao computador.
  • Ela é escrita seguida de parênteses.
  • Nos parênteses incluímos os argumentos.
  • O output vai ser a informação que o computador retorna após rodar a função.

(pense nela como um verbo!)

altura_carol <- 1.54
altura_lucas <- 1.89
altura_media <- mean(c(altura_carol, altura_lucas))
altura_media
[1] 1.715


  • mean = função para calcular a média
  • argumentos = informações que vão entre parênteses para indicar o que a função deve fazer
  • c() = para criar um vetor (uma lista com mais de um item a ser aplicado no cálculo)

O que é um pacote de R?

  • Conjunto de funções úteis pra determinada análise.

  • Eles são disponibilizados em repositórios. Os dois principais repositórios são o CRAN e o GitHub.

  • Os pacotes são instalados apenas uma vez e devem ser carregados sempre que queremos utilizá-los.

Instalar e carregar pacotes

  • Para instalar um pacote que está no CRAN, usamos a função install.packages:
install.packages("tidyverse")
  • Caso o pacote esteja no GitHub, é possível fazer a instalação via função install_github do pacote devtools:
install.packages("devtools")

devtools::install_github('rfsaldanha/microdatasus')
  • Para carregar o pacote usamos a função library:
library(tidyverse)

Introdução ao tidyverse

O que é?

  • Um conjunto de pacotes que compartilham a mesma gramática e estrutura.

  • Quando você instala/carrega o tidyverse, todos esses pacotes vêm junto de uma vez.

  • Serve pra fazer o trabalho de análise mais rápido e fácil

Pacotes dentro do Tidyverse

São vários os pacotes (https://www.tidyverse.org/packages/)

Conseguem imaginar a utilidade dos pacotes abaixo?

  • readr: abrir arquivos (bases de dados) e salvar tabelas

  • dplyr: manipular a base (filtrar, criar colunas, agrupar, resumir, ordenar etc.)

  • stringr: arrumar textos (string) identifcando padrões (regex)

  • lubridate: ajusta datas e horas (ex: AAAA-MM-DD)

  • ggplot2: visualização de dados

  • tidyr: para organizar/arrumar os dados

‘Verbos úteis’ do dplyr

Saber poucos comandos já basta pra começar a analisar!

FUNÇÃO O QUE FAZ
select seleciona só algumas colunas da base
filter seleciona só algumas linhas da base
mutate cria colunas ou altera valores de uma coluna
group_by agrupa linhas de valores iguais em uma coluna
summarise par do group_by, cria o resumo desses grupos
arrange ordena a forma de visualizar a tabela

Mais ‘verbos úteis’

FUNÇÃO O QUE FAZ
read_csv abre o seu arquivo separado por vírgula
read_csv2 arquivo separado por ponto e vírgula
write_csv salva a tabela num arquivo no computador
rename renomeia uma coluna
replace_* troca um valor p/ outro quando ele aparece
pivot_* transforma linhas em colunas e vice-versa
bind_rows* junta as linhas de duas tabelas diferentes
str_sub* puxa só parte do valor de uma coluna

O operador pipe: %>% ou |>

  • pipe = cano, encanamento, fazer a informação fluir

  • o valor do lado esquerdo do pipe vira argumento para a função do lado direito e assim por diante

  • Atalho: CTRL + SHIFT + M

Exercício

Utilizando as funções do pacote tidyverse carregue a base de dados disponibilzada e responda as questões abaixo:

Perguntas:

  1. Quais mulheres foram eleitas em 2022?

  2. Qual foi a média de votos em 2022 por raça?

  3. Qual é o ranking de votos totais por partido em 2022?

  4. Qual pessoa reeleita ganhou mais votos de 2018 para 2022?

Aplicações econométricas

Desempenho em matemática de estudantes e o programa de merenda escolar

  • Seja \(math10\) a proporção de alunos do primeiro ano do ensino médio aprovados em um exame de matemática.

  • Suponha que desejamos estimar o efeito do programa de merenda escolar financiado pelo governo sobre o desempenho dos alunos.

  • Seja \(lnchprg\) a proporção de estudantes que estão aptos para participar do programa de merenda escolar. Portanto, o modelo de regressão simples é:

\[math10 = \beta_{0} + \beta_{1}lnchprg + u\].

Questões

  • Utilizando os dados da base meap93 e de acordo com os conteúdos abordados em aula, faça o que se pede a seguir:
  1. Aplique as fórmulas derivadas em sala para obter os estimadores de MQO.

  2. Calcule o valor médio dos resíduos.

  3. Calcule a Soma Total dos Quadrados (STQ) e a Soma dos Quadrados dos Resíduos (SQR)

  4. Encontre o \(R^2\)