1. Sea el conjunto de datos, indicados en el enlace de abajo, tomados en 24 meses correspondientes a los gastos de comercialización (C) de una empresa, el nivel de ventas (V), su coste de personal (P) y los costes de materias primas (M); se trata de estimar el nivel de ventas a partir de las restantes variables.
  1. Verifique los supuestos de Heterocedastidad y Autocorrelación para el modelo propuesto.

  2. En caso de encontrar evidencia de violación de los supuestos, planteados en el literal anterior, corrija a través de un estimador HAC apropiado, el modelo propuesto.

library(readxl)
library(readxl)
ventas_empresa <- read_excel("C:/Archivos R/Econometria/ventas_empresa.xlsx")
head(ventas_empresa, n=6)
## # A tibble: 6 x 4
##       V     C     P     M
##   <dbl> <dbl> <dbl> <dbl>
## 1   607   197   173   110
## 2   590   208   152   107
## 3   543   181   150    99
## 4   558   194   150   102
## 5   571   192   163   109
## 6   615   196   179   114
library(stargazer)
modelo_ventas = lm(formula= V~C+P+M, data = ventas_empresa)
stargazer(modelo_ventas, title = "Modelo Ventas", type = "html")
Modelo Ventas
Dependent variable:
V
C 0.923***
(0.223)
P 0.950***
(0.156)
M 1.298***
(0.431)
Constant 107.444***
(18.057)
Observations 24
R2 0.980
Adjusted R2 0.977
Residual Std. Error 9.506 (df = 20)
F Statistic 323.641*** (df = 3; 20)
Note: p<0.1; p<0.05; p<0.01

a.

Prueba de Heterocedasticidad: Prueba de White

Hipótesis:

Ho: Hay evidencia de que la varianza de los residuos es homocedástica.

H1: Hay evidencia de que la varianza de los resiudos es heterocedástica.

library(lmtest)
prueba_white_1 = bptest(modelo_ventas, ~ I(C**2)+ I(P**2) + I(M**2) + C*P+ C*M + P*M, data = ventas_empresa)
print(prueba_white_1)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_ventas
## BP = 7.1227, df = 9, p-value = 0.6244

Hay evidencia de la varianza de los residuos no es heterocedastica, ya que el Pvalue es mayor que 0.05.

Prueba de autocorrelación de 1er orden: Prueba Durbin-Watson

Hipótesis:

Ho: No hay evidencia de auotocorrelación de primer orden, en los residuos del modelo.

H1: Hay evidencia de auotocorrelación de primer orden, en los residuos del modelo.

library(car)
DW_test_1 = durbinWatsonTest(modelo_ventas,simulate = TRUE,reps = 100000)
print(DW_test_1)
##  lag Autocorrelation D-W Statistic p-value
##    1       0.3013888      1.299572 0.05378
##  Alternative hypothesis: rho != 0

No hay evidencia de autocorrelación de primer orden ya que Pvalue es mayor que 0.05, pero ya que está casi al limite, se debe aplicar otra prueba para asegurarse.

Verificando autocorrelación de 1er orden: Prueba Breusch-Godfrey

library(lmtest)
BG_test_1 = bgtest(modelo_ventas, order = 1)
print(BG_test_1)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  modelo_ventas
## LM test = 2.5963, df = 1, p-value = 0.1071

Con la segunda prueba se obtiene evidencia concluyente que no hay autocorrelación de primer orden en las variables.

Verificando autocorrelación de 2do orden: Prueba Breusch-Godfrey (Multiplicador de Lagrange)

library(lmtest)
prueba_LM_1 = bgtest(modelo_ventas, order=2)
print(prueba_LM_1)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  modelo_ventas
## LM test = 3.8409, df = 2, p-value = 0.1465

No hay evidencia de autocorrelación de 2do orden ya que Pvalue es mayor que 0.05

b.

De modo que el modelo no adolesce ni de heterocedasticidad ni de autocorrelación no se procede a realizar la estimación robusta mediante estimadores HAC.

  1. Se tienen los datos para trabajadores hombres,en el archivo adjunto, con ellos estime un modelo donde educ es años de escolaridad, como variable dependiente, y como regresores sibs (número de hermanos), meduc (años de escolaridad de la madre) y feduc (años de escolaridad del padre)
  1. Verifique los supuestos de Heterocedastidad y Autocorrelación para el modelo propuesto.

  2. En caso de encontrar evidencia de violación de los supuestos, planteados en el literal anterior, corrija a través de un estimador HAC apropiado, el modelo propuesto.

load("C:/Archivos R/Econometria/wage2.RData")
options(scipen = 9999)
library(stargazer)
modelo_eduacion <- lm(educ~sibs+meduc+feduc, data = wage2)
stargazer(modelo_eduacion, title= "Modelo Educación", type = "html")
Modelo Educación
Dependent variable:
educ
sibs -0.094***
(0.034)
meduc 0.131***
(0.033)
feduc 0.210***
(0.027)
Constant 10.364***
(0.359)
Observations 722
R2 0.214
Adjusted R2 0.211
Residual Std. Error 1.987 (df = 718)
F Statistic 65.198*** (df = 3; 718)
Note: p<0.1; p<0.05; p<0.01

a.

Verificando Heterocedasticidad: Prueba White

library(lmtest)
prueba_white_2 = bptest(modelo_eduacion, ~ I(sibs**2)+ I(meduc**2) + I(feduc**2) + sibs*meduc+ sibs*feduc + meduc*feduc, data = wage2)
print(prueba_white_2)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_eduacion
## BP = 15.537, df = 9, p-value = 0.0772

Hay evidencia de que la varianza de los residuos no es heterocedastica, ya que el Pvalue es mayor que 0.05

Verificando Autocorrelación: Prueba Durbin-Watson

library(lmtest)
DW_test_2= dwtest(modelo_eduacion, alternative = "two.sided", iterations = 100000)
print(DW_test_2)
## 
##  Durbin-Watson test
## 
## data:  modelo_eduacion
## DW = 1.8989, p-value = 0.1705
## alternative hypothesis: true autocorrelation is not 0

No hay evidencia que el modelo adolesce de autocorrelación en los regresores ya que el Pvalue es mayor que 0.05.

Verificando Autocorrelación de 2do grado: Prueba Breusch-Godfrey (Multiplicadores de Lagrange)

library(lmtest)
BG_test_2 = bgtest(modelo_eduacion, order=2)
print(BG_test_2)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  modelo_eduacion
## LM test = 4.5747, df = 2, p-value = 0.1015

No hay evidencia de que el modelo adolesce de autocorrelación de segundo orden en los regresores ya que le Pvalue es mayor que 0.05.

b.

De modo que el modelo no adolesce ni de heterocedasticidad ni de autocorrelación, no se procede a realizar la estimación robusta con los estimadores HAC.

  1. El sueldo inicial medio (salary) para los recién graduados de la Facultad de EconomÍa se determina mediante una función lineal: log(salary)=f(SAT,GPA ,log(libvol),log(cost),rank)

Donde LSAT es la media del puntaje LSAT del grupo de graduados, GPA es la media del GPA (promedio general) del grupo, libvol es el número de volúmenes en la biblioteca de la Facultad de Economía, cost es el costo anual por asistir a dicha facultad y rank es una clasificación de las escuelas de Economía (siendo rank 1 la mejor)

  1. Verifique los supuestos de Heterocedastidad y Autocorrelación para el modelo propuesto.

  2. En caso de encontrar evidencia de violación de los supuestos, planteados en el literal anterior, corrija a través de un estimador HAC apropiado, el modelo propuesto.

load("C:/Archivos R/Econometria/LAWSCH85.RData")
options(scipen = 9999)
library(stargazer)
modelo_salario = lm(lsalary~LSAT+GPA+llibvol+lcost+rank, data = LAWSCH85)
stargazer(modelo_salario, title= "Modelo Salario", type = "html")
Modelo Salario
Dependent variable:
lsalary
LSAT 0.005
(0.004)
GPA 0.248***
(0.090)
llibvol 0.095***
(0.033)
lcost 0.038
(0.032)
rank -0.003***
(0.0003)
Constant 8.343***
(0.533)
Observations 136
R2 0.842
Adjusted R2 0.836
Residual Std. Error 0.112 (df = 130)
F Statistic 138.230*** (df = 5; 130)
Note: p<0.1; p<0.05; p<0.01

a.

Verificando Heterocedasticidad: Prueba de White

library(lmtest)
prueba_white_3 = bptest(modelo_salario, ~ I(LSAT**2)+ I(GPA**2) + I(llibvol**2) + I(lcost**2) + I(rank**2) + LSAT*GPA + LSAT*llibvol+ LSAT*lcost + LSAT*rank + GPA*llibvol + GPA*lcost + GPA*rank + llibvol*lcost + llibvol*rank + lcost*rank , data = LAWSCH85)
print(prueba_white_3)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_salario
## BP = 34.295, df = 20, p-value = 0.0242

Hay evidencia de que la varianza de los residuos es heterocedastica ya que el Pvalue es menos que 0.05

Verificando Autocorrelación de 1er orden: Prueba Durbin-Watson

library(car)
DW_test_3=durbinWatsonTest(model = modelo_salario)
print(DW_test_3)
##  lag Autocorrelation D-W Statistic p-value
##    1        0.144458      1.705846    0.07
##  Alternative hypothesis: rho != 0

No hay evidencia de autocorrelación de 1er orden en los regresores ya que Pvalue es mayor que 0.05

Verificando Autocorrelación de 2do orden: Prueba Breusch-Godfrey

library(lmtest)
BG_test_3=bgtest(modelo_salario, order=2)
print(BG_test_3)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  modelo_salario
## LM test = 3.2116, df = 2, p-value = 0.2007

No hay evidencia de autocorrelación de 2do orden en los regresores ya que el Pvalue es mayor que 0.05.

b.

Ya que el modelo adolesce de heterocedasticidad se procede a realizar la estimación robusta mediante estimadores HAC

# Sin corregir

options(scipen = 9999)
library(lmtest)
coeftest(modelo_salario)
## 
## t test of coefficients:
## 
##                Estimate  Std. Error t value              Pr(>|t|)    
## (Intercept)  8.34322596  0.53251920 15.6675 < 0.00000000000000022 ***
## LSAT         0.00469647  0.00401049  1.1710              0.243722    
## GPA          0.24752388  0.09003704  2.7491              0.006826 ** 
## llibvol      0.09499321  0.03325435  2.8566              0.004988 ** 
## lcost        0.03755380  0.03210608  1.1697              0.244270    
## rank        -0.00332459  0.00034846 -9.5408 < 0.00000000000000022 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Corrigiendo con un estimador HAC: HOC

options(scipen=99999)
library(lmtest)
library(sandwich)
estimacion_omega = vcovHC(modelo_salario, type= "HC0")
coeftest(modelo_salario, vcov. = estimacion_omega)
## 
## t test of coefficients:
## 
##                Estimate  Std. Error  t value              Pr(>|t|)    
## (Intercept)  8.34322596  0.50982819  16.3648 < 0.00000000000000022 ***
## LSAT         0.00469647  0.00447644   1.0492             0.2960540    
## GPA          0.24752388  0.08861505   2.7932             0.0060073 ** 
## llibvol      0.09499321  0.02703852   3.5133             0.0006095 ***
## lcost        0.03755380  0.03258921   1.1523             0.2512966    
## rank        -0.00332459  0.00030126 -11.0356 < 0.00000000000000022 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1