Alguns Exercícios de Econometria

Econometrics
Stats
R
Author

Rafael W S Abreu

Published

September 14, 2022

Vamos começar simples:

Suponha uma loteria que tira 6 números aleatórios entre 1 e 60. Quais seriam os numeros ganhadores dessa semana?

set.seed(123)

sample(1:60, size=6)
[1] 31 15 51 14  3 42

Verifique se esta função é uma Função de densidade de probabilidade

\[ f(x) = \frac{x}{4} e^{-x²/8} , x\ge 0 \]

    f <- function(x){(x/4)*exp(-x^2/8)}

    #a função integrate() faz a integral, para sabermos se a função é FDP ou não, sua integral entre 0 e +infinito tem que ser igual a 1
    
    integrate(f, 0, Inf)$value
[1] 1

Considerando a equação da questão acima calcule o valor esperado e a variança de X.

    fx <- function(x){x*f(x)}

    exp_value <- integrate(fx, 0, Inf)$value

    fx2 <-  function(x){x^2*f(x)}

    var <- integrate(fx2, 0, Inf)$value - exp_value^2

Exercícios sobre regressões lineares.

1.1 carregar os pacotes “AER” e “MASS” e estimar um modelo simples de regressão linear que explique o valor médio das casas dos distritos (medv) pelo percentual de domicílios com baixo nível socioeconômico.

Sabendo que lstat mostra o percentual da população que é considerada de baixa renda e medv a mediana do valor das casas em $1000

glimpse(Boston) #com essa função podemos ter uma vista geral da tabela sem precisar mostrar todas as observações
Rows: 506
Columns: 14
$ crim    <dbl> 0.00632, 0.02731, 0.02729, 0.03237, 0.06905, 0.02985, 0.08829,…
$ zn      <dbl> 18.0, 0.0, 0.0, 0.0, 0.0, 0.0, 12.5, 12.5, 12.5, 12.5, 12.5, 1…
$ indus   <dbl> 2.31, 7.07, 7.07, 2.18, 2.18, 2.18, 7.87, 7.87, 7.87, 7.87, 7.…
$ chas    <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ nox     <dbl> 0.538, 0.469, 0.469, 0.458, 0.458, 0.458, 0.524, 0.524, 0.524,…
$ rm      <dbl> 6.575, 6.421, 7.185, 6.998, 7.147, 6.430, 6.012, 6.172, 5.631,…
$ age     <dbl> 65.2, 78.9, 61.1, 45.8, 54.2, 58.7, 66.6, 96.1, 100.0, 85.9, 9…
$ dis     <dbl> 4.0900, 4.9671, 4.9671, 6.0622, 6.0622, 6.0622, 5.5605, 5.9505…
$ rad     <int> 1, 2, 2, 3, 3, 3, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4,…
$ tax     <dbl> 296, 242, 242, 222, 222, 222, 311, 311, 311, 311, 311, 311, 31…
$ ptratio <dbl> 15.3, 17.8, 17.8, 18.7, 18.7, 18.7, 15.2, 15.2, 15.2, 15.2, 15…
$ black   <dbl> 396.90, 396.90, 392.83, 394.63, 396.90, 394.12, 395.60, 396.90…
$ lstat   <dbl> 4.98, 9.14, 4.03, 2.94, 5.33, 5.21, 12.43, 19.15, 29.93, 17.10…
$ medv    <dbl> 24.0, 21.6, 34.7, 33.4, 36.2, 28.7, 22.9, 27.1, 16.5, 18.9, 15…
summary(Boston) #com essa função podemos ver a media, mediana e os quartis de cada variavel
      crim                zn             indus            chas        
 Min.   : 0.00632   Min.   :  0.00   Min.   : 0.46   Min.   :0.00000  
 1st Qu.: 0.08205   1st Qu.:  0.00   1st Qu.: 5.19   1st Qu.:0.00000  
 Median : 0.25651   Median :  0.00   Median : 9.69   Median :0.00000  
 Mean   : 3.61352   Mean   : 11.36   Mean   :11.14   Mean   :0.06917  
 3rd Qu.: 3.67708   3rd Qu.: 12.50   3rd Qu.:18.10   3rd Qu.:0.00000  
 Max.   :88.97620   Max.   :100.00   Max.   :27.74   Max.   :1.00000  
      nox               rm             age              dis        
 Min.   :0.3850   Min.   :3.561   Min.   :  2.90   Min.   : 1.130  
 1st Qu.:0.4490   1st Qu.:5.886   1st Qu.: 45.02   1st Qu.: 2.100  
 Median :0.5380   Median :6.208   Median : 77.50   Median : 3.207  
 Mean   :0.5547   Mean   :6.285   Mean   : 68.57   Mean   : 3.795  
 3rd Qu.:0.6240   3rd Qu.:6.623   3rd Qu.: 94.08   3rd Qu.: 5.188  
 Max.   :0.8710   Max.   :8.780   Max.   :100.00   Max.   :12.127  
      rad              tax           ptratio          black       
 Min.   : 1.000   Min.   :187.0   Min.   :12.60   Min.   :  0.32  
 1st Qu.: 4.000   1st Qu.:279.0   1st Qu.:17.40   1st Qu.:375.38  
 Median : 5.000   Median :330.0   Median :19.05   Median :391.44  
 Mean   : 9.549   Mean   :408.2   Mean   :18.46   Mean   :356.67  
 3rd Qu.:24.000   3rd Qu.:666.0   3rd Qu.:20.20   3rd Qu.:396.23  
 Max.   :24.000   Max.   :711.0   Max.   :22.00   Max.   :396.90  
     lstat            medv      
 Min.   : 1.73   Min.   : 5.00  
 1st Qu.: 6.95   1st Qu.:17.02  
 Median :11.36   Median :21.20  
 Mean   :12.65   Mean   :22.53  
 3rd Qu.:16.95   3rd Qu.:25.00  
 Max.   :37.97   Max.   :50.00  
bh_mod <- lm(medv ~lstat, data = Boston) #aqui fazemos o modelo de regressão linear
bh_mod

Call:
lm(formula = medv ~ lstat, data = Boston)

Coefficients:
(Intercept)        lstat  
      34.55        -0.95  
r_reg <- summary(bh_mod)$r.squared
r_reg
[1] 0.5441463

Podemos ver que conforme vai aumentando a o percentual da população de baixa renda, vai diminuindo o valor dos imóveis. Isso é devido ao valor do coeficiente lstat negativo.

Continuando com o modelo, podemos acrescentar mais variáveis à regressão.

\[ medv_{i} = \beta_{0} + \beta_{1}lstat_{i} + \beta_{2}age_{i}+ \beta_{3}crim_{i}+u_{i} \]

Sendo:

medv a mediana do valor dos imóveis em cada distrito

lstat o percentual de indivíduos com baixo status socioeconômico

age a média de idade de cada imóvel

crim a taxa percapita de crimes por distrito

mod <- lm(medv ~ lstat + crim + age, data = Boston)
mod

Call:
lm(formula = medv ~ lstat + crim + age, data = Boston)

Coefficients:
(Intercept)        lstat         crim          age  
   32.82804     -0.99409     -0.08262      0.03765  
coeftest(mod, vcov. = vcovHC)

t test of coefficients:

             Estimate Std. Error  t value Pr(>|t|)    
(Intercept) 32.828045   0.751505  43.6831  < 2e-16 ***
lstat       -0.994091   0.083058 -11.9686  < 2e-16 ***
crim        -0.082622   0.029733  -2.7788  0.00566 ** 
age          0.037647   0.016930   2.2236  0.02662 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
R2_unreg <- summary(mod)$r.squared
R2_unreg
[1] 0.5559429

Podemos ver que o R² das duas regressões não varia muito. Mas, mesmo assim, a regressão com mais regressores tem um R² um pouquinho maior.