Punto 1

Intente replicar el ejemplo del Wooldrige presentado en la clase. Existe una diferencia entre los resultados encontrados y el que se encuentra en el libro. ¿Que podría explicar esto?

Replicamos el ejemplo 15.1 de Wooldrige pagina 512

#importamos librerias
library(AER)
library(haven)

#cargamos y configuramos las rutas del repositorio - base de datos Alumnos
setwd("C:/Users/User/Desktop/Universidad/6 Semestre/Econometria II/6 - R Studio")
base_alumnos = read_dta("mrozalumnos.dta")

#eliminamos las observaciones vacias
base_alumnos = base_alumnos[base_alumnos$wage != 0,]

#Realizamos regresion 1
modelo_mco = lm(base_alumnos$logwage ~ base_alumnos$educ)

#visualizamos 
summary(modelo_mco)
## 
## Call:
## lm(formula = base_alumnos$logwage ~ base_alumnos$educ)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -3.10256 -0.31473  0.06434  0.40081  2.10029 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        -0.1852     0.1852  -1.000    0.318    
## base_alumnos$educ   0.1086     0.0144   7.545 2.76e-13 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.68 on 426 degrees of freedom
## Multiple R-squared:  0.1179, Adjusted R-squared:  0.1158 
## F-statistic: 56.93 on 1 and 426 DF,  p-value: 2.761e-13

Evidenciamos que los betas corresponden a la regresion de wooldrige

#Realizamos regresion 2
modelo_mco2 = lm(base_alumnos$educ ~ base_alumnos$fatheduc)

#visualizamos 
summary(modelo_mco2)
## 
## Call:
## lm(formula = base_alumnos$educ ~ base_alumnos$fatheduc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.4704 -1.1231 -0.1231  0.9546  5.9546 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           10.23705    0.27594  37.099   <2e-16 ***
## base_alumnos$fatheduc  0.26944    0.02859   9.426   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.081 on 426 degrees of freedom
## Multiple R-squared:  0.1726, Adjusted R-squared:  0.1706 
## F-statistic: 88.84 on 1 and 426 DF,  p-value: < 2.2e-16

Nuevamente obtenemos los mismos resultados, pero a diferencia de STATA, R hace la regresion y omite automáticamente los valores vacíos, usando el mismo numero de observaciones de ser necesario, sin embargo se deben eliminar las observaciones vacias para podergenerar la variable de logwage en caso de necesitarse, esta base ya incluye logwage por lo que omitimos este paso.

#Generamos prediccion del modelo estimado
base_alumnos$educ_predict = predict(modelo_mco2)

# regresion con variable estimada
modelo_mcoEstimado = lm(base_alumnos$logwage ~ base_alumnos$educ_predict)

# Visualizamos modelo con la variable estimada
summary(modelo_mcoEstimado)
## 
## Call:
## lm(formula = base_alumnos$logwage ~ base_alumnos$educ_predict)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.2126 -0.3763  0.0563  0.4173  2.0604 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)
## (Intercept)                0.44110    0.46711   0.944    0.346
## base_alumnos$educ_predict  0.05917    0.03680   1.608    0.109
## 
## Residual standard error: 0.7219 on 426 degrees of freedom
## Multiple R-squared:  0.006034,   Adjusted R-squared:  0.003701 
## F-statistic: 2.586 on 1 and 426 DF,  p-value: 0.1086

Tambien con ivreg podemos estimar el modelo directamente

# regresion de variable instrumental de manera directa IVREG PADRE
ivreg_direct = ivreg(base_alumnos$logwage ~ base_alumnos$educ | base_alumnos$fatheduc)

## resumen del modelo
summary(ivreg_direct)
## 
## Call:
## ivreg(formula = base_alumnos$logwage ~ base_alumnos$educ | base_alumnos$fatheduc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.0870 -0.3393  0.0525  0.4042  2.0677 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)  
## (Intercept)        0.44110    0.44610   0.989   0.3233  
## base_alumnos$educ  0.05917    0.03514   1.684   0.0929 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6894 on 426 degrees of freedom
## Multiple R-Squared: 0.09344, Adjusted R-squared: 0.09131 
## Wald test: 2.835 on 1 and 426 DF,  p-value: 0.09294

Vemos que todos los valores coinciden = Betas, sd, y r^2

Mediante el test de Hausman podemos ver si realmente hay endogeneidad

# HausmanTest
summary(ivreg_direct, diagnostic = "T")
## 
## Call:
## ivreg(formula = base_alumnos$logwage ~ base_alumnos$educ | base_alumnos$fatheduc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.0870 -0.3393  0.0525  0.4042  2.0677 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)  
## (Intercept)        0.44110    0.44610   0.989   0.3233  
## base_alumnos$educ  0.05917    0.03514   1.684   0.0929 .
## 
## Diagnostic tests:
##                  df1 df2 statistic p-value    
## Weak instruments   1 426     88.84  <2e-16 ***
## Wu-Hausman         1 425      2.47   0.117    
## Sargan             0  NA        NA      NA    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6894 on 426 degrees of freedom
## Multiple R-Squared: 0.09344, Adjusted R-squared: 0.09131 
## Wald test: 2.835 on 1 and 426 DF,  p-value: 0.09294

Para probar las hipótesis: Ho: no hay problema de endongeneidad P > 0.05 H1: hay problema de endongeneidad P < 0.05

Vemos que el test de Hausman nos da un resultado de 0.117 por lo que se acepta la hipótesis nula p> 0.05 , no hay endogeneidad

Probamos con otra variable instrumental ($motheduc) :

# regresion de variable instrumental de manera directa IVREG MADRE
ivreg_direct = ivreg(base_alumnos$logwage ~ base_alumnos$educ | base_alumnos$motheduc)

## resumen del modelo
summary(ivreg_direct)
## 
## Call:
## ivreg(formula = base_alumnos$logwage ~ base_alumnos$educ | base_alumnos$motheduc)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -3.14184 -0.34291  0.05939  0.39750  2.05410 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)
## (Intercept)        0.70217    0.48510   1.447    0.148
## base_alumnos$educ  0.03855    0.03823   1.008    0.314
## 
## Residual standard error: 0.6987 on 426 degrees of freedom
## Multiple R-Squared: 0.06881, Adjusted R-squared: 0.06663 
## Wald test: 1.017 on 1 and 426 DF,  p-value: 0.3138
# test de Hausman
summary(ivreg_direct, diagnostics = "T")
## 
## Call:
## ivreg(formula = base_alumnos$logwage ~ base_alumnos$educ | base_alumnos$motheduc)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -3.14184 -0.34291  0.05939  0.39750  2.05410 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)
## (Intercept)        0.70217    0.48510   1.447    0.148
## base_alumnos$educ  0.03855    0.03823   1.008    0.314
## 
## Diagnostic tests:
##                  df1 df2 statistic p-value    
## Weak instruments   1 426    75.049  <2e-16 ***
## Wu-Hausman         1 425     4.206  0.0409 *  
## Sargan             0  NA        NA      NA    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6987 on 426 degrees of freedom
## Multiple R-Squared: 0.06881, Adjusted R-squared: 0.06663 
## Wald test: 1.017 on 1 and 426 DF,  p-value: 0.3138

Aqui podemos ver que el Test si muestra endogeneidad ya que p < 0.05

Punto 2

Suponga que tiene interés en analizar como el valor del alquiler/renta depende de características como el valor de la vivienda y la población urbana. Suponga que existe un problema de endogeneidad y debe usar el método de MC2E. Analice los resultados.

#importamos librerias
library(AER)
library(haven)

#cargamos y configuramos las rutas del repositorio - base de datos Alumnos
setwd("C:/Users/User/Desktop/Universidad/6 Semestre/Econometria II/6 - R Studio")
data_viviendas = read_dta("base de censo de viviendas 1980_alumnos.dta")
#realizamos una descripcion de la base
summary(data_viviendas)
##     state              division        region          pop          
##  Length:50          Min.   :1.00   Min.   :1.00   Min.   :  401851  
##  Class :character   1st Qu.:3.00   1st Qu.:2.00   1st Qu.: 1169218  
##  Mode  :character   Median :5.00   Median :3.00   Median : 3066433  
##                     Mean   :5.12   Mean   :2.66   Mean   : 4518149  
##                     3rd Qu.:7.75   3rd Qu.:3.75   3rd Qu.: 5434033  
##                     Max.   :9.00   Max.   :4.00   Max.   :23667902  
##     popgrow          popden          pcturban         faminc     
##  Min.   :-3.60   Min.   :   7.0   Min.   :33.77   Min.   :14591  
##  1st Qu.: 5.25   1st Qu.: 281.5   1st Qu.:55.24   1st Qu.:17335  
##  Median :13.70   Median : 787.5   Median :67.06   Median :19715  
##  Mean   :16.29   Mean   :1543.7   Mean   :66.95   Mean   :19500  
##  3rd Qu.:23.88   3rd Qu.:1524.5   3rd Qu.:80.14   3rd Qu.:21180  
##  Max.   :63.80   Max.   :9862.0   Max.   :91.29   Max.   :28395  
##       hsng            hsnggrow         hsngval            rent      
##  Min.   : 162825   Min.   : 9.016   Min.   : 31100   Min.   :180.0  
##  1st Qu.: 492778   1st Qu.:21.249   1st Qu.: 37825   1st Qu.:211.5  
##  Median :1176568   Median :32.026   Median : 45200   Median :225.5  
##  Mean   :1762686   Mean   :35.652   Mean   : 48484   Mean   :234.8  
##  3rd Qu.:2026498   3rd Qu.:40.763   3rd Qu.: 56025   3rd Qu.:253.5  
##  Max.   :9279036   Max.   :97.006   Max.   :119400   Max.   :368.0  
##       reg1           reg2           reg3           reg4     
##  Min.   :0.00   Min.   :0.00   Min.   :0.00   Min.   :0.00  
##  1st Qu.:0.00   1st Qu.:0.00   1st Qu.:0.00   1st Qu.:0.00  
##  Median :0.00   Median :0.00   Median :0.00   Median :0.00  
##  Mean   :0.18   Mean   :0.24   Mean   :0.32   Mean   :0.26  
##  3rd Qu.:0.00   3rd Qu.:0.00   3rd Qu.:1.00   3rd Qu.:0.75  
##  Max.   :1.00   Max.   :1.00   Max.   :1.00   Max.   :1.00
#calculamos población urbana
data_viviendas$pcturbanDiv =  data_viviendas$pcturban / 100
data_viviendas$pcturban = data_viviendas$pcturbanDiv * data_viviendas$pop

Realizamos matriz de correlacion para ver la tendencia y dispersion

# correlacion entre renta y valor de la vivienda
cor(data_viviendas$rent,data_viviendas$hsngval)
## [1] 0.798715
#matriz
matriz = plot(data_viviendas$rent,data_viviendas$hsngval)

# correlacion entre renta y poblacion urbana
cor(data_viviendas$rent,data_viviendas$pcturban)
## [1] 0.2149812
#matriz
matriz = plot(data_viviendas$rent,data_viviendas$pcturban)

Realizamos las regresiones para ver el comportamiento de los betas

data_viviendasReg = lm(data_viviendas$rent ~ data_viviendas$hsngval + data_viviendas$pcturban)
summary(data_viviendasReg)
## 
## Call:
## lm(formula = data_viviendas$rent ~ data_viviendas$hsngval + data_viviendas$pcturban)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -46.263 -10.351  -2.524   8.020  88.922 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)             1.467e+02  9.950e+00  14.742  < 2e-16 ***
## data_viviendas$hsngval  1.758e-03  1.962e-04   8.957 9.91e-12 ***
## data_viviendas$pcturban 8.602e-07  7.567e-07   1.137    0.261    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 21.43 on 47 degrees of freedom
## Multiple R-squared:  0.6476, Adjusted R-squared:  0.6326 
## F-statistic: 43.19 on 2 and 47 DF,  p-value: 2.261e-11

Vemos que $hsngval y $pcturban son estadísticamente significativas ya que el t valúe es en valor absoluto mayor que 2

# suponemos que el problema de endogeneidad de la variable hsngval (Valor de la vivienda)
# tiene problemas de endogeneidad con la variable faminc lo que denota posible coorelacion con los ingresos medios de las personas
data_viviendasReg2 = lm(data_viviendas$hsngval ~ data_viviendas$faminc)
summary(data_viviendasReg2)
## 
## Call:
## lm(formula = data_viviendas$hsngval ~ data_viviendas$faminc)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -20124  -6503  -1167   3141  57652 
## 
## Coefficients:
##                         Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           -3.110e+04  1.259e+04  -2.471   0.0171 *  
## data_viviendas$faminc  4.081e+00  6.398e-01   6.379  6.6e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 11720 on 48 degrees of freedom
## Multiple R-squared:  0.4588, Adjusted R-squared:  0.4475 
## F-statistic: 40.69 on 1 and 48 DF,  p-value: 6.602e-08
#realizamos la predicción del modelo y de su variable estimada
data_viviendas$hsngvalEstimado = predict(data_viviendasReg2)

Realizamos regresion con la variable Estimada

#Realizamos la regresion nuevamente con la variable estimada
data_viviendasRegEstimada = lm(data_viviendas$rent ~ data_viviendas$hsngvalEstimado + data_viviendas$pcturban)
summary(data_viviendasRegEstimada)
## 
## Call:
## lm(formula = data_viviendas$rent ~ data_viviendas$hsngvalEstimado + 
##     data_viviendas$pcturban)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -27.957 -15.069  -2.272   7.496  55.434 
## 
## Coefficients:
##                                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                    9.929e+01  1.278e+01   7.767 5.68e-10 ***
## data_viviendas$hsngvalEstimado 2.776e-03  2.638e-04  10.522 6.05e-14 ***
## data_viviendas$pcturban        2.689e-07  6.890e-07   0.390    0.698    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 19.25 on 47 degrees of freedom
## Multiple R-squared:  0.7157, Adjusted R-squared:  0.7037 
## F-statistic: 59.17 on 2 and 47 DF,  p-value: 1.452e-13

Regresion por IVreg

# direct instrumental variable
data_viviendasivReg = ivreg(data_viviendas$rent ~ data_viviendas$pcturban +  data_viviendas$hsngval|data_viviendas$faminc, data = data_viviendas)

#Realizamos Test de Hausman
summary(data_viviendasivReg, diagnostics= "T")
## 
## Call:
## ivreg(formula = data_viviendas$rent ~ data_viviendas$pcturban + 
##     data_viviendas$hsngval | data_viviendas$faminc, data = data_viviendas)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -561.04  -20.18   27.41   68.36  235.56 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)
## (Intercept)             1.238e+02  7.389e+01   1.676    0.100
## data_viviendas$pcturban 3.333e-05  2.145e-05   1.554    0.127
## 
## Diagnostic tests:
##                                            df1 df2 statistic  p-value    
## Weak instruments (data_viviendas$pcturban)   1  48     2.424    0.126    
## Weak instruments (data_viviendas$hsngval)    1  48    40.687 6.60e-08 ***
## Wu-Hausman                                   1  46    39.397 1.11e-07 ***
## Sargan                                      -1  NA        NA       NA    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 134.7 on 48 degrees of freedom
## Multiple R-Squared: -13.21,  Adjusted R-squared: -13.51 
## Wald test: 2.414 on 1 and 48 DF,  p-value: 0.1268

Evidenciamos que hay endogeneidad

Punto 3

El archivo Data_HealthIncome.csv contiene información para el logaritmo de ingresos laborales (lnrnd), una variable binaria que asume 1 si el empleado tiene buena salud (boasaude), años de escolaridad (escolar), años de edad (idade), una binario para trabajador por cuenta propia (cp) o empleador (empr) - se utiliza la referencia el empleado (0), una binaria que asume 1 si fue la persona que declaró su estado de salud (declarante).

Suponga el siguiente sistema de ecuaciones en la forma estructural:

#importamos librerias
library(AER)
library(haven)


#importamos base y configuramos la ruta
setwd("C:/Users/User/Desktop/Universidad/6 Semestre/Econometria II/6 - R Studio")
base_salud = read.csv("Data_HealthIncome.csv")

#realizamos una visualizacion de la base de datos
summary(base_salud)
##      rural           declarante       boasaude          lnrnd        
##  Min.   :0.00000   Min.   :0.000   Min.   :0.0000   Min.   :-10.628  
##  1st Qu.:0.00000   1st Qu.:0.000   1st Qu.:1.0000   1st Qu.:  0.902  
##  Median :0.00000   Median :1.000   Median :1.0000   Median :  1.311  
##  Mean   :0.09185   Mean   :0.539   Mean   :0.8169   Mean   :  0.961  
##  3rd Qu.:0.00000   3rd Qu.:1.000   3rd Qu.:1.0000   3rd Qu.:  1.868  
##  Max.   :1.00000   Max.   :1.000   Max.   :1.0000   Max.   :  6.857  
##     escolar            fem             idade              cp        
##  Min.   : 0.000   Min.   :0.0000   Min.   : 10.00   Min.   :0.0000  
##  1st Qu.: 5.000   1st Qu.:0.0000   1st Qu.: 27.00   1st Qu.:0.0000  
##  Median :10.000   Median :0.0000   Median : 37.00   Median :0.0000  
##  Mean   : 8.609   Mean   :0.4328   Mean   : 37.76   Mean   :0.1736  
##  3rd Qu.:11.000   3rd Qu.:1.0000   3rd Qu.: 47.00   3rd Qu.:0.0000  
##  Max.   :15.000   Max.   :1.0000   Max.   :100.00   Max.   :1.0000  
##       empr        
##  Min.   :0.00000  
##  1st Qu.:0.00000  
##  Median :0.00000  
##  Mean   :0.04487  
##  3rd Qu.:0.00000  
##  Max.   :1.00000
#resumen de las variables a trabajar
names(base_salud)
## [1] "rural"      "declarante" "boasaude"   "lnrnd"      "escolar"   
## [6] "fem"        "idade"      "cp"         "empr"

Modelo 1

#realizamos las estimaciones
modelo_ingresosLab = lm(lnrnd ~ boasaude + idade
                       + escolar + cp + empr, data = base_salud)
summary(modelo_ingresosLab)
## 
## Call:
## lm(formula = lnrnd ~ boasaude + idade + escolar + cp + empr, 
##     data = base_salud)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -12.5801  -0.1388   0.3994   0.9822   5.6662 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.5312830  0.0464802  -32.95   <2e-16 ***
## boasaude     0.4485346  0.0263242   17.04   <2e-16 ***
## idade        0.0091346  0.0007759   11.77   <2e-16 ***
## escolar      0.1836051  0.0024514   74.90   <2e-16 ***
## cp           0.8335525  0.0263699   31.61   <2e-16 ***
## empr         1.2387703  0.0476206   26.01   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.254 on 54602 degrees of freedom
## Multiple R-squared:  0.1335, Adjusted R-squared:  0.1335 
## F-statistic:  1683 on 5 and 54602 DF,  p-value: < 2.2e-16

Sospechamos que rural es una posible variable instrumental que guarda coorelacion con la variable escolar ya que inferimos que una persona del campo tiene menos posibilidades de estudiar que una de zona urbana

#identificamos variable instrumental
modelo_ingresosLab2 = lm(escolar ~ rural, data = base_salud)
summary(modelo_ingresosLab2)
## 
## Call:
## lm(formula = escolar ~ rural, data = base_salud)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -8.939 -2.939  1.061  2.061  9.656 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  8.93935    0.01827  489.20   <2e-16 ***
## rural       -3.59584    0.06029  -59.64   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.069 on 54606 degrees of freedom
## Multiple R-squared:  0.06115,    Adjusted R-squared:  0.06114 
## F-statistic:  3557 on 1 and 54606 DF,  p-value: < 2.2e-16
#vemos que si guardan una coorelacion inversamente proporcional

#estimamos el modelo
base_salud$escolarEstimado = predict(modelo_ingresosLab2)

#regresion con modelo estimado
modelo_ingresosLabEstimado = lm(lnrnd ~ boasaude + idade
                                + escolarEstimado + cp + empr, data = base_salud)
summary(modelo_ingresosLabEstimado)
## 
## Call:
## lm(formula = lnrnd ~ boasaude + idade + escolarEstimado + cp + 
##     empr, data = base_salud)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -11.8178  -0.2686   0.2422   0.8846   7.2475 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -6.0924203  0.0881272 -69.132   <2e-16 ***
## boasaude         0.6569689  0.0257511  25.512   <2e-16 ***
## idade           -0.0022247  0.0007522  -2.958   0.0031 ** 
## escolarEstimado  0.7444325  0.0092636  80.361   <2e-16 ***
## cp               0.7172458  0.0261502  27.428   <2e-16 ***
## empr             1.5012082  0.0470443  31.910   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.238 on 54602 degrees of freedom
## Multiple R-squared:  0.1456, Adjusted R-squared:  0.1455 
## F-statistic:  1861 on 5 and 54602 DF,  p-value: < 2.2e-16
#calculo por ivreg
base_saludivReg = ivreg( lnrnd ~ escolar|rural , data = base_salud )
summary(base_saludivReg, diagnostics = "T")
## 
## Call:
## ivreg(formula = lnrnd ~ escolar | rural, data = base_salud)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -16.3293  -1.9085  -0.5596   2.5352  10.2526 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -5.69858    0.12096  -47.11   <2e-16 ***
## escolar      0.77355    0.01395   55.45   <2e-16 ***
## 
## Diagnostic tests:
##                    df1   df2 statistic p-value    
## Weak instruments     1 54606      3557  <2e-16 ***
## Wu-Hausman           1 54605      4507  <2e-16 ***
## Sargan               0    NA        NA      NA    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.385 on 54606 degrees of freedom
## Multiple R-Squared: -0.9551, Adjusted R-squared: -0.9551 
## Wald test:  3075 on 1 and 54606 DF,  p-value: < 2.2e-16

Ho: no hay problema de endongeneidad P > 0.05, H1: hay problema de endongeneidad P < 0.05 Rechazamos la hipótesis nula, si hay endogeneidad

Modelo 2

#realizamos las estimaciones
modelo_buenaSalud = lm(boasaude ~ lnrnd + idade
                        + escolar + declarante , data = base_salud)
summary(modelo_buenaSalud)
## 
## Call:
## lm(formula = boasaude ~ lnrnd + idade + escolar + declarante, 
##     data = base_salud)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.02843  0.03093  0.10852  0.20867  0.72106 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.8996589  0.0065941 136.433   <2e-16 ***
## lnrnd        0.0116217  0.0006840  16.990   <2e-16 ***
## idade       -0.0059584  0.0001211 -49.184   <2e-16 ***
## escolar      0.0156830  0.0004093  38.317   <2e-16 ***
## declarante  -0.0074016  0.0031821  -2.326     0.02 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3655 on 54603 degrees of freedom
## Multiple R-squared:  0.1068, Adjusted R-squared:  0.1068 
## F-statistic:  1633 on 4 and 54603 DF,  p-value: < 2.2e-16

Sospechamos que la variable referente al logaritmo de los ingresos laborales (lnrnd) puede tener una posible endogeneidad con la variable dummy fem ya que el sexo de la persona muchas veces impacta al salario y/o ingresos

#identificamos variable instrumental
modelo_buenaSalud1 = lm(lnrnd ~ fem , data = base_salud)
summary(modelo_buenaSalud1)
## 
## Call:
## lm(formula = lnrnd ~ fem, data = base_salud)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -11.6391  -0.1202   0.3542   0.9296   6.0456 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.21445    0.01366   88.92   <2e-16 ***
## fem         -0.58575    0.02076  -28.21   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.404 on 54606 degrees of freedom
## Multiple R-squared:  0.01437,    Adjusted R-squared:  0.01435 
## F-statistic:   796 on 1 and 54606 DF,  p-value: < 2.2e-16
#Vemos que existe una alta correlación por lo que fem nos resultaría una variable instrumental útil
base_salud$lnrndEstimado = predict(modelo_buenaSalud1)

#regresion con lnrnd Estimado

modelo_buenaSaludEstimado = lm(boasaude ~ lnrndEstimado + idade
                               + escolar + declarante ,data = base_salud)
#visualizamos
summary(modelo_buenaSaludEstimado) 
## 
## Call:
## lm(formula = boasaude ~ lnrndEstimado + idade + escolar + declarante, 
##     data = base_salud)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.04753  0.02647  0.10905  0.21041  0.73009 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    0.7980578  0.0088588  90.086   <2e-16 ***
## lnrndEstimado  0.0817192  0.0055292  14.779   <2e-16 ***
## idade         -0.0057853  0.0001208 -47.910   <2e-16 ***
## escolar        0.0185002  0.0003891  47.542   <2e-16 ***
## declarante    -0.0009953  0.0032432  -0.307    0.759    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3658 on 54603 degrees of freedom
## Multiple R-squared:  0.1057, Adjusted R-squared:  0.1056 
## F-statistic:  1613 on 4 and 54603 DF,  p-value: < 2.2e-16

Al calcular el modelo estimado la variable declarante deja de ser significativa al 5% ya que t valué < |2| eliminamos declarante del modelo

modelo_buenaSaludEstimado2 = lm(boasaude ~ lnrndEstimado + idade
                               + escolar ,data = base_salud)
#visualizamos
summary(modelo_buenaSaludEstimado2) 
## 
## Call:
## lm(formula = boasaude ~ lnrndEstimado + idade + escolar, data = base_salud)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.04717  0.02683  0.10919  0.21086  0.73010 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    0.7974100  0.0086036   92.68   <2e-16 ***
## lnrndEstimado  0.0820552  0.0054197   15.14   <2e-16 ***
## idade         -0.0057909  0.0001194  -48.52   <2e-16 ***
## escolar        0.0185003  0.0003891   47.54   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3658 on 54604 degrees of freedom
## Multiple R-squared:  0.1057, Adjusted R-squared:  0.1056 
## F-statistic:  2151 on 3 and 54604 DF,  p-value: < 2.2e-16

La variable estimada se vuelve incluso mas significativa al utilizar la var instrumental (rural)

#calculo por ivreg
base_saludivReg = ivreg( boasaude ~ lnrnd|fem , data = base_salud )
summary(base_saludivReg, diagnostics = "T")
## 
## Call:
## ivreg(formula = boasaude ~ lnrnd | fem, data = base_salud)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.15043  0.08121  0.14933  0.17868  0.83877 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 0.762509   0.005821 131.002   <2e-16 ***
## lnrnd       0.056577   0.005798   9.757   <2e-16 ***
## 
## Diagnostic tests:
##                    df1   df2 statistic  p-value    
## Weak instruments     1 54606     796.0  < 2e-16 ***
## Wu-Hausman           1 54605      40.9 1.61e-10 ***
## Sargan               0    NA        NA       NA    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3932 on 54606 degrees of freedom
## Multiple R-Squared: -0.03372,    Adjusted R-squared: -0.03374 
## Wald test:  95.2 on 1 and 54606 DF,  p-value: < 2.2e-16

Ho: no hay problema de endongeneidad P > 0.05, H1: hay problema de endongeneidad P < 0.05 Rechazamos la hipótesis nula, si hay endogeneidad

Punto 4

Considere los siguientes ejercicios:

4.a)

4.a.1) ¿Puede identificar las variables endógenas y exógenas en el modelo anterior?
R/:
Variables Endógenas: variables que están determinadas dentro del modelo Y1i, Y2i, Y3i, Y4i, Y5i
Variables Exógenas: Variables que estan determinadas por fuera del modelo X1, X2, X3, X4

4.a.2) ¿Puede estimar una o más ecuaciones en el modelo mediante el método de mínimos cuadrados? ¿Por qué?
R/: No podemos hacer las estimaciones por medio de MCO porque las variables explicativas estan correlacionadas con el error lo cual produciría inconsistencia en los resultados, asi mismo se presenta un sistema multiecuacional por lo que se dependería de las demás ecuaciones del modelo

4.b)

4.b.1) En el modelo anterior, las Y son endógenas y las X son exógenas. ¿Por qué supone el autor que X2 es exógena?
R/: el autor lo supone ya que el X2 es exógena ya que denota el precio por paquete del cigarrillo pero sin la inflación la cual esta determinada por otras variables, X2 segun el autor determina la influencia del valor publicitario en las ventas

4.b.2) Si X2 se considera una variable endógena, ¿cómo modificaría el modelo anterior?
R/:

4.c)

4.c.1) Qué variables consideraría endógenas y cuáles exógenas? R/:

Variables Endógenas: variables que están determinadas dentro del modelo Yt, It, Ct, Qt
Variables Exógenas: Variables que estan determinadas por fuera del modelo P, R, t u

4.c.2) ¿Hay alguna ecuación en el sistema que pueda estimarse mediante el método de mínimos cuadrados uniecuacional? R/:

4.c.3) ¿Cuál es la razón para incluir la variable P en la función consumo? R/: la razon, es que se asume que el costo de vida guarda una correlación inversa con el consumo, en donde un menor costo de vida, se traduce en una mayor adquisicion de bienes y servicio

Punto 5

  1. R/:
library(readxl)
setwd("C:/Users/User/Desktop/Universidad/6 Semestre/Econometria II/6 - R Studio")
base_OyD <- read_excel("Tabla 18.3.xls")

summary(base_OyD)
##     YR:QTR               OBS            CARSALES        PERSINCOME  
##  Length:296         Min.   :  1.00   Min.   : 7.169   Min.   :1756  
##  Class :character   1st Qu.: 74.75   1st Qu.: 8.320   1st Qu.:3152  
##  Mode  :character   Median :148.50   Median : 8.841   Median :4879  
##                     Mean   :148.50   Mean   : 9.240   Mean   :4974  
##                     3rd Qu.:222.25   3rd Qu.:10.232   3rd Qu.:6531  
##                     Max.   :296.00   Max.   :15.051   Max.   :8992  
##     PRICEGAS        QUANTGAS   
##  Min.   : 64.7   Min.   :5961  
##  1st Qu.:104.2   1st Qu.:6868  
##  Median :115.7   Median :7341  
##  Mean   :114.9   Mean   :7431  
##  3rd Qu.:125.8   3rd Qu.:7890  
##  Max.   :172.9   Max.   :9294
modelo_OfertyDeman = lm(base_OyD$QUANTGAS ~ base_OyD$PERSINCOME + base_OyD$PRICEGAS + base_OyD$CARSALES )
summary(modelo_OfertyDeman)
## 
## Call:
## lm(formula = base_OyD$QUANTGAS ~ base_OyD$PERSINCOME + base_OyD$PRICEGAS + 
##     base_OyD$CARSALES)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -917.40 -208.44    8.32  205.54 1103.93 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         5856.12090  287.35419  20.379  < 2e-16 ***
## base_OyD$PERSINCOME    0.33006    0.01133  29.125  < 2e-16 ***
## base_OyD$PRICEGAS     -5.43452    1.23808  -4.389 1.59e-05 ***
## base_OyD$CARSALES     60.30147   20.26459   2.976  0.00317 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 345.8 on 292 degrees of freedom
## Multiple R-squared:  0.7662, Adjusted R-squared:  0.7638 
## F-statistic: 318.9 on 3 and 292 DF,  p-value: < 2.2e-16
coef(modelo_OfertyDeman)
##         (Intercept) base_OyD$PERSINCOME   base_OyD$PRICEGAS   base_OyD$CARSALES 
##          5856.12090             0.33006            -5.43452            60.30147

En esta lógica podríamos decir que la oferta y la demanda de miles de barriles al día de gasolina sin plomo (QUANTGAS) esta en función de 3 factores que inciden directamente: Precio (PRICEGAS), ingreso de las personas (PERSINCOME) y ventas de Automóviles (CARSALES)

  1. R/:

Variables Endógenas del modelo: (QUANTGAS)

Variables Exógenas del modelo: PERSINCOME PRICEGAS CARSALES

  1. R/:
#test de multicolinealidad
car::vif(modelo_OfertyDeman)
## base_OyD$PERSINCOME   base_OyD$PRICEGAS   base_OyD$CARSALES 
##            1.381346            1.445116            1.526544

Evidenciamos que no hay valores entre 5 - 10 por lo que no se presenta multicolinealidad entre las variables

#prueba de normalidad
shapiro.test(modelo_OfertyDeman$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_OfertyDeman$residuals
## W = 0.99342, p-value = 0.2223

Vemos que p-valor > 0.05 por lo que hay presencia de normalidad en la distribución de los datos

#prueba de heterocedasticidad por medio del test de Breusch
bptest(modelo_OfertyDeman)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_OfertyDeman
## BP = 20.099, df = 3, p-value = 0.0001619

Como p-valor < 0.05 evidenciamos problemas de heterocedasticidad

a pesar de tener problemas de Heterocedasticidad el modelo puede ser viable