library(wooldridge)
library(dplyr)
library(rstatix)Aula 1 - Introdução à Econometria
Econometria
Econometria é baseada no desenvolvimento de métodos estatísticos para estimar relações econômicas, testar teorias, avaliar e implementar políticas de governo e de negócios
O campo mais comum de uso da Econometria é a previsão de importantes variáveis macroeconômicas, como juros, inflação, PIB, etc.
Contudo, a Econometria pode ser utilizada em diversas outras áreas que não tem relação com previsão de variáveis macro. Um exemplo seria estimar os efeitos de gastos com educação sobre os índices de criminalidade em municípios de um estado.
Passos na análise econômica empírica
Análise empírica é aquela que usa dados para testar uma teoria ou estimar uma relação. Para realizar esta análise é preciso seguir alguns passos:
- Afirmação da teoria ou hipótese econômica
- Especificação do modelo matemático (equação)
- Especificação do modelo econométrico
- Obtenção dos dados
- Estimação dos parâmetros do modelo econométrico
- Teste de hipóteses
- Previsão
- Uso do Modelo para elaboração de Políticas públicas ou Empresas
As Estruturas de Dados
Corte transversal (seção cruzada): amostra de indivíduos, consumidores, empresas, países, etc., tomada em um instante do tempo;
Série Temporal: observações sobre uma variável ou muitas variáveis ao longo do tempo;
Cortes transversais independentes agrupados: tem características tanto de corte transversal quanto de série temporal. Ocorre quando se agrupa cortes transversais coletados em diferentes instantes do tempo;
Dados em Painel (longitudinais): consiste em uma série temporal para cada registro do corte transversal do conjunto de dados. Em outras palavras, modelos de regressão com dados em painel são os que estudam o mesmo grupo de “entidades” ao longo do tempo.
Exemplos no R
Carregamento dos Pacotes
Exemplo de uma base com Seção Cruzada
data('wage1')
dados1 <- wage1[,c(1:8)]
glimpse(dados1)Rows: 526
Columns: 8
$ wage <dbl> 3.10, 3.24, 3.00, 6.00, 5.30, 8.75, 11.25, 5.00, 3.60, 18.18,…
$ educ <int> 11, 12, 11, 8, 12, 16, 18, 12, 12, 17, 16, 13, 12, 12, 12, 16…
$ exper <int> 2, 22, 2, 44, 7, 9, 15, 5, 26, 22, 8, 3, 15, 18, 31, 14, 10, …
$ tenure <int> 0, 2, 0, 28, 2, 8, 7, 3, 4, 21, 2, 0, 0, 3, 15, 0, 0, 10, 0, …
$ nonwhite <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ female <int> 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1…
$ married <int> 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0…
$ numdep <int> 2, 3, 2, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 1, 1, 0, 0, 3, 0, 0…
kable(head(dados1, 10)) %>%
kable_styling(full_width=TRUE, position = "center")| wage | educ | exper | tenure | nonwhite | female | married | numdep |
|---|---|---|---|---|---|---|---|
| 3.10 | 11 | 2 | 0 | 0 | 1 | 0 | 2 |
| 3.24 | 12 | 22 | 2 | 0 | 1 | 1 | 3 |
| 3.00 | 11 | 2 | 0 | 0 | 0 | 0 | 2 |
| 6.00 | 8 | 44 | 28 | 0 | 0 | 1 | 0 |
| 5.30 | 12 | 7 | 2 | 0 | 0 | 1 | 1 |
| 8.75 | 16 | 9 | 8 | 0 | 0 | 1 | 0 |
| 11.25 | 18 | 15 | 7 | 0 | 0 | 0 | 0 |
| 5.00 | 12 | 5 | 3 | 0 | 1 | 0 | 0 |
| 3.60 | 12 | 26 | 4 | 0 | 1 | 0 | 2 |
| 18.18 | 17 | 22 | 21 | 0 | 0 | 1 | 0 |
Esta base de dados possui 526 observações e 8 variáveis no total.
Exemplo de uma base com Série Temporal
data('intdef')
dados2 <- intdef[,c(1:6)]
glimpse(dados2)Rows: 56
Columns: 6
$ year <int> 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958,…
$ i3 <dbl> 1.04, 1.10, 1.22, 1.55, 1.77, 1.93, 0.95, 1.75, 2.66, 3.27, 1.84,…
$ inf <dbl> 8.1, -1.2, 1.3, 7.9, 1.9, 0.8, 0.7, -0.4, 1.5, 3.3, 2.8, 0.7, 1.7…
$ rec <dbl> 16.2, 14.5, 14.4, 16.1, 19.0, 18.7, 18.5, 16.5, 17.5, 17.7, 17.3,…
$ out <dbl> 11.6, 14.3, 15.6, 14.2, 19.4, 20.4, 18.8, 17.3, 16.5, 17.0, 17.9,…
$ def <dbl> -4.6000004, -0.1999998, 1.2000008, -1.9000006, 0.3999996, 1.69999…
kable(head(dados2, 10), align='cccccc', col.names = c("Ano", "Taxa Tesouro 3 meses", "Taxa Inflação", "Receitas %PIB", "Despesas %PIB", "REC-DESP")) %>%
kable_styling(full_width=TRUE, position = "center")| Ano | Taxa Tesouro 3 meses | Taxa Inflação | Receitas %PIB | Despesas %PIB | REC-DESP |
|---|---|---|---|---|---|
| 1948 | 1.04 | 8.1 | 16.2 | 11.6 | -4.6000004 |
| 1949 | 1.10 | -1.2 | 14.5 | 14.3 | -0.1999998 |
| 1950 | 1.22 | 1.3 | 14.4 | 15.6 | 1.2000008 |
| 1951 | 1.55 | 7.9 | 16.1 | 14.2 | -1.9000006 |
| 1952 | 1.77 | 1.9 | 19.0 | 19.4 | 0.3999996 |
| 1953 | 1.93 | 0.8 | 18.7 | 20.4 | 1.6999989 |
| 1954 | 0.95 | 0.7 | 18.5 | 18.8 | 0.2999992 |
| 1955 | 1.75 | -0.4 | 16.5 | 17.3 | 0.7999992 |
| 1956 | 2.66 | 1.5 | 17.5 | 16.5 | -1.0000000 |
| 1957 | 3.27 | 3.3 | 17.7 | 17.0 | -0.7000008 |
Análise dos Dados
Estatística Descritiva
| Variáveis | Amostra | Média | Desvio Padrão |
|---|---|---|---|
| i3 | 56 | 4.908 | 2.868 |
| inf | 56 | 3.884 | 3.040 |
| rec | 56 | 17.923 | 1.203 |
| out | 56 | 19.525 | 2.308 |
| def | 56 | 1.602 | 2.109 |
Gráfico
dados2<-ts(dados2, start = 1948)
plot(dados2[,3], xlab='anos', ylab='Percentual', main='Evolução da Taxa de Inflação - EUA')Exemplo de uma base com Corte Transversal Agrupado
data('hprice3')
dados3 <- hprice3[,c(1:8)]
glimpse(dados3)Rows: 321
Columns: 8
$ year <int> 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978…
$ age <int> 48, 83, 58, 11, 48, 78, 22, 78, 42, 41, 78, 38, 18, 32, 18, 58, …
$ agesq <dbl> 2304, 6889, 3364, 121, 2304, 6084, 484, 6084, 1764, 1681, 6084, …
$ nbh <int> 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4…
$ cbd <dbl> 3000, 4000, 4000, 4000, 4000, 3000, 4000, 3000, 3000, 3000, 1000…
$ inst <dbl> 1000, 1000, 1000, 1000, 2000, 2000, 2000, 2000, 2000, 2000, 4000…
$ linst <dbl> 6.9078, 6.9078, 6.9078, 6.9078, 7.6009, 7.6009, 7.6009, 7.6009, …
$ price <dbl> 60000, 40000, 34000, 63900, 44000, 46000, 56000, 38500, 60500, 5…
kable(dados3[c(175:185),]) %>%
kable_styling(full_width=TRUE, position = "center")| year | age | agesq | nbh | cbd | inst | linst | price | |
|---|---|---|---|---|---|---|---|---|
| 175 | 1978 | 0 | 0 | 0 | 14000 | 14000 | 9.5468 | 121000 |
| 176 | 1978 | 0 | 0 | 0 | 14000 | 13000 | 9.4727 | 107000 |
| 177 | 1978 | 0 | 0 | 0 | 14000 | 13000 | 9.4727 | 119900 |
| 178 | 1978 | 0 | 0 | 0 | 14000 | 13000 | 9.4727 | 142500 |
| 179 | 1978 | 0 | 0 | 0 | 14000 | 13000 | 9.4727 | 84211 |
| 180 | 1981 | 81 | 6561 | 4 | 4000 | 1000 | 6.9078 | 49000 |
| 181 | 1981 | 71 | 5041 | 4 | 3000 | 2000 | 7.6009 | 52000 |
| 182 | 1981 | 31 | 961 | 4 | 3000 | 2000 | 7.6009 | 68000 |
| 183 | 1981 | 41 | 1681 | 4 | 3000 | 2000 | 7.6009 | 54000 |
| 184 | 1981 | 31 | 961 | 4 | 4000 | 2000 | 7.6009 | 70000 |
| 185 | 1981 | 81 | 6561 | 4 | 3000 | 2000 | 7.6009 | 47000 |
Exemplo de uma base com Dados em Painel
data('crime2')
dados4 <- crime2[,c(1:9)]
glimpse(dados4) Rows: 92
Columns: 9
$ pop <dbl> 229528, 246815, 814054, 933177, 374974, 406297, 176496, 20172…
$ crimes <dbl> 17136, 17306, 75654, 83960, 31352, 31364, 15698, 16953, 31202…
$ unem <dbl> 8.2, 3.7, 8.1, 5.4, 9.0, 5.9, 12.6, 5.7, 12.6, 7.4, 13.9, 5.7…
$ officers <int> 326, 321, 1621, 1803, 633, 685, 245, 259, 504, 563, 186, 232,…
$ pcinc <int> 8532, 12155, 7551, 11363, 8343, 11729, 7592, 10802, 7558, 106…
$ west <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
$ nrtheast <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ south <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ year <int> 82, 87, 82, 87, 82, 87, 82, 87, 82, 87, 82, 87, 82, 87, 82, 8…
kable(head(dados4, 10)) %>%
kable_styling(full_width=TRUE, position = "center")| pop | crimes | unem | officers | pcinc | west | nrtheast | south | year |
|---|---|---|---|---|---|---|---|---|
| 229528 | 17136 | 8.2 | 326 | 8532 | 1 | 0 | 0 | 82 |
| 246815 | 17306 | 3.7 | 321 | 12155 | 1 | 0 | 0 | 87 |
| 814054 | 75654 | 8.1 | 1621 | 7551 | 1 | 0 | 0 | 82 |
| 933177 | 83960 | 5.4 | 1803 | 11363 | 1 | 0 | 0 | 87 |
| 374974 | 31352 | 9.0 | 633 | 8343 | 1 | 0 | 0 | 82 |
| 406297 | 31364 | 5.9 | 685 | 11729 | 1 | 0 | 0 | 87 |
| 176496 | 15698 | 12.6 | 245 | 7592 | 1 | 0 | 0 | 82 |
| 201723 | 16953 | 5.7 | 259 | 10802 | 1 | 0 | 0 | 87 |
| 288446 | 31202 | 12.6 | 504 | 7558 | 1 | 0 | 0 | 82 |
| 331728 | 34355 | 7.4 | 563 | 10627 | 1 | 0 | 0 | 87 |
Metodologia da Econometria - Exemplo
- Afirmação da teoria ou hipótese econômica:
A quantidade demandada de um bem Y é inversamente relacionada com o seu preço (X);
- Especificação do modelo matemático (equação):
\[Y=\beta_0+\beta_1X\] com \(\beta_1<0\)
Especificação do modelo econométrico
\[Y=\hat{\beta_0}+\hat{\beta_1}X+\hat{u}\] em que Y é a quantidade demandada, X o preço, os \(\beta_i\) são os parâmetros estimados e u é o termo estocástico que diferencia um modelo matemático e o estatístico. Ele representa tudo o que afetar Y e que não está explicitado no modelo.Os dados podem ser seção cruzada ou um série temporal. Existem também combinações de seção cruzada e série temporal, denominados de dados em Painel.
\[\hat{Y}=10-0.9X\] Se o preço aumentar 10 reais, a demanda reduz 9 unidades;
- Testar se a constante -0.9 estimada é estatisticamente igual ou diferente de zero, ou seja, se \(\beta_1=0\).
A natureza da análise da regressão
Regressão Linear é a principal ferramenta da econometria e trata do estudo da dependência de uma variável, regressando (Y), em relação a uma ou mais variáveis explicativas (regressores), com o objetivo de estimar e/ou prever o valor médio de Y dados os valores de X.
Apesar da análise de regressão tratar da dependência de uma variável sobre outras variáveis, isto não necessariamente implica “causa”. Uma relação estatística em si não pode logicamente implicar em causa. Para atribuir causalidade deve-se considerar a teoria econômica ou mesmo o senso comum.
Regressão versus Correlação
Relacionado mas conceitualmente muito diferente é a análise da regressão e de correlação. Na regressão é estimar ou prever o valor médio do regressando (Y) com base nos valores fixos dos regressores (X). Na correlação o objetivo é mensurar o grau de associação linear entre duas variáveis.
As estimativas de correlação podem ser positivas ou negativas. O primeiro caso é quando uma variável cresce, a outra aumenta também. O segundo caso é o inverso.
O coeficiente de correlação de Pearson (\(r\)) pode ser encontrado pela fórmula:
\[r=\frac{\sum X_iY_i-\frac{\sum X_i-\sum Y_i}{n}}{\Bigg[\sum X_i^2-\frac{(\sum X_i)^2}{n}\Bigg]\Bigg[\sum Y_i^2-\frac{(\sum Y_i)^2}{n}\Bigg]}\] A ocorrência de um valor de r=0 ou próximo de zero indica que não há correlação linear entre as variáveis, mas pode ocorrer não linear.
As principais características do coeficiente de correlação de Pearson são:
Seus valores estão compreendidos entre -1 e 1;
Se o coeficiente for positivo, as duas características estudadas tendem a variar no mesmo sentido;
Se o sinal for negativo, as duas características estudadas tendem a variar no sentido contrário;
A relação entre duas variáveis é tanto mais estreita quanto mais o coeficiente se aproxima de 1 ou de -1;
o valor de r é uma estimativa do parâmetro \(\rho\) (rho) da mesma forma que a média (\(\bar{x}\)) é uma estimativa de \(\mu\);
library(MASS)
# configurar uma semente
set.seed(1)
# correlação positiva (0.81)
exemplo1 <- mvrnorm(100,
mu = c(0, 0),
Sigma = matrix(c(2, 2, 2, 3), ncol = 2),
empirical = TRUE)
cor(exemplo1) [,1] [,2]
[1,] 1.0000000 0.8164966
[2,] 0.8164966 1.0000000
# correlaçao negativa (-0.81)
exemplo2 <- mvrnorm(100,
mu = c(0, 0),
Sigma = matrix(c(2, -2, -2, 3), ncol = 2),
empirical = TRUE)
cor(exemplo2) [,1] [,2]
[1,] 1.0000000 -0.8164966
[2,] -0.8164966 1.0000000
# sem correlação
exemplo3 <- mvrnorm(100,
mu = c(0, 0),
Sigma = matrix(c(1, 0, 0, 1), ncol = 2),
empirical = TRUE)
cor(exemplo3) [,1] [,2]
[1,] 1.000000e+00 -8.436133e-17
[2,] -8.436133e-17 1.000000e+00
# sem correlação (relação quadrática)
X <- seq(-3, 3, 0.01)
Y <- - X^2 + rnorm(length(X))
exemplo4 <- cbind(X, Y)
cor(exemplo4) X Y
X 1.000000000 0.001822687
Y 0.001822687 1.000000000
# divide a area dos gráficos como um arranjo 2x2
par(mfrow = c(2, 2))
# dados dos gráficos
plot(exemplo1, col = "steelblue", pch = 20, xlab = "X", ylab = "Y",
main = "Correlação = 0.81")
plot(exemplo2, col = "steelblue", pch = 20, xlab = "X", ylab = "Y",
main = "Correlação = -0.81")
plot(exemplo3, col = "steelblue", pch = 20, xlab = "X", ylab = "Y",
main = "Correlação = 0")
plot(exemplo4, col = "steelblue", pch = 20, xlab = "X", ylab = "Y",
main = "Correlação = 0")