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
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
# 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
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
# 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)
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 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
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"
#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
#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
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
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)
El consumo de gasolina (QUANTGAS) tiene una correlación positiva al ingreso de las personas (PERSINCOME)
El consumo de gasolina (QUANTGAS) tiene una correlación negativa con el precio Centavos/galón (PRICEGAS)
El consumo de gasolina (QUANTGAS) tiene una correlación positiva con el nuevo de automóviles que se venden (CARSALES)
Variables Endógenas del modelo: (QUANTGAS)
Variables Exógenas del modelo: PERSINCOME PRICEGAS CARSALES
#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