1.Sea el conjunto de datos, 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.

# Carga de datos
library(readxl)
ventas_empresa <- read_excel("C:/Users/walte/OneDrive/Escritorio/ventas_empresa.xlsx")
#generar el modelo
myformula<-as.formula("V~C+P+M")
modelo_ventas<-lm(formula = myformula,data = ventas_empresa)

a) Verifique los supuestos de Heterocedasticidad y Autocorrelación para el modelo propuesto.

Verificando supuesto de heterocedasticidad

Prueba de White

library(stargazer)
residuos<-modelo_ventas$residuals
data_ventas<-as.data.frame(cbind(residuos,ventas_empresa))
regresion_auxiliar<-lm(formula = I(residuos^2)~ C+P+M+I(C^2)+I(P^2)+I(M^2)+C*P*M,data = data_ventas)
resumen<-summary(regresion_auxiliar)
R_2<-resumen$r.squared
n<-nrow(data_ventas)
LM_W<-n*R_2
gl<-3+3+2
VC<-qchisq(p = 0.95,df = gl)
p_value<-1-pchisq(q = LM_W,df = gl)
salida_ventas<-c(LM_W,VC,p_value)
names(salida_ventas)<-c("LMw","Valor Critico","P value")
stargazer(salida_ventas,title = "prueba de White",type = "html",digits = 6)
prueba de White
LMw Valor Critico P value
8.883767 15.507310 0.352196

##El estadistico calculado LMw (8.883767) es inferior a el valor critico V.C(15.507310). Por lo tanto No se Rechaza la Ho, por lo tanto hay evidencia de que la varianza de los residuos es homocedástica.

Prueba de White usando libreria lmtest

library(lmtest)
prueba_white<-bptest(modelo_ventas,~I(C^2)+I(P^2)+I(M^2)+C*P*M,data = ventas_empresa)
print(prueba_white)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_ventas
## BP = 8.8838, df = 10, p-value = 0.5432

##Como Pvalue (0.5432) > (0.05). No se Rechaza la Ho, por lo tanto hay evidencia de que la varianza de los residuos es homocedastica.

Verificando supuesto de Autocorrelacion

Prueba de Durbin Watson usando libreria lmtest

library(lmtest)
dwtest(modelo_ventas,alternative = "two.sided",iterations=1000)
## 
##  Durbin-Watson test
## 
## data:  modelo_ventas
## DW = 1.2996, p-value = 0.05074
## alternative hypothesis: true autocorrelation is not 0

##No concluyente dado que dl(1.101) < DW < dv(1.656),

Prueba de Breusch Godfrey para autocorrelacion de primer orden

library(lmtest)
bgtest(modelo_ventas,order = 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

##Como el Pvalue(0.1071)>(0.05), No se Rechaza Ho, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelacion de primer orden.

Autocorrelacion de orden superior (Orden “m”)

library(dplyr)
library(tidyr)
cbind(residuos,ventas_empresa) %>% as.data.frame() %>%
mutate(Lag_1=dplyr::lag(residuos,1),
       Lag_2=dplyr::lag(residuos,2))%>%
replace_na(list(Lag_1=0,Lag_2=0))->data_prueba_BG_v
(head(data_prueba_BG_v,n = 6))
##    residuos   V   C   P   M     Lag_1     Lag_2
## 1 10.673678 607 197 173 110  0.000000  0.000000
## 2  7.372511 590 208 152 107 10.673678  0.000000
## 3 -2.435532 543 181 150  99  7.372511 10.673678
## 4 -3.322264 558 194 150 102 -2.435532  7.372511
## 5 -9.913931 571 192 163 109 -3.322264 -2.435532
## 6  8.704039 615 196 179 114 -9.913931 -3.322264
library(stargazer)
regresion_aux_BG<-lm(residuos~C+P+M+Lag_1+Lag_2,data = data_prueba_BG_v)
resumen_BG<-summary(regresion_aux_BG)
n<-nrow(ventas_empresa)
gl<-3
R_2_BG<-resumen_BG$r.squared
LM_BG<-n*R_2_BG
VC<-qchisq(p=0.05,lower.tail = FALSE,df = gl)
p_value_BG<-pchisq(q = LM_BG, lower.tail = FALSE,df = gl )
salida_BG_v<-c(LM_BG,VC,p_value_BG)
names(salida_BG_v)<-c("LM BG","Valor critico","Valor p")
stargazer(salida_BG_v,title = "prueba de BG",type = "html",digits = 6)
prueba de BG
LM BG Valor critico Valor p
3.840869 7.814728 0.279168

##Dado que el estimador LMbg (3.840869) < V.C (7.814728). No se Rechaza Ho, por lo tanto puede concluirse que los rediuos del modelo, no siguen autocorrelacion de segundo orden.

Usando la libreria “lmtest”

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

##Como Pvalue (0.1465)>(0.05). No se Rechaza Ho, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelacion de segundo orden.

2.Se tienen los datos para trabajadores hombres, 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).

#Carga de datos
load("C:/Users/walte/OneDrive/Escritorio/wage2.RData")
#construccion del modelo
myformula_educ<-as.formula("educ~sibs+meduc+feduc")
modelo_educ<-lm(formula = myformula_educ,data = wage2)

a) Verifique los supuestos de Heterocedasticidad y Autocorrelación para el modelo propuesto.

Verificando supuesto de heterocedasticidad

Prueba de White usando libreria lmtest

library(lmtest)
prueba_white_educ<-bptest(modelo_educ,~I(sibs^2)+I(meduc^2)+I(feduc^2)+sibs*meduc*feduc,data = wage2)
print(prueba_white_educ)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_educ
## BP = 15.58, df = 10, p-value = 0.1123

##Como Pvalue (0.1123) > (0.05). No se Rechaza la Ho, por lo tanto hay evidencia de que la varianza de los residuos es homocedastica.

Verificando supuesto de Autocorrelacion

Prueba de Durbin Watson usando libreria lmtest

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

##Dado que Pvalue(0.1705)>(0.05),No se Rechaza Ho, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelacion de primer orden.

Autocorrelacion de orden superior (Orden “m”)

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

##Como Pvalue (0.1015)>(0.05). No se Rechaza Ho, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelacion de segundo orden.

3.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).

#carga de datos
load("C:/Users/walte/OneDrive/Escritorio/LAWSCH85.RData")
#generando el modelo
myformula2<-as.formula("lsalary~LSAT+GPA+llibvol+lcost+rank")
modelo_sal<-lm(formula = myformula2,data = LAWSCH85 )

a) Verifique los supuestos de Heterocedasticidad y Autocorrelación para el modelo propuesto.

Verificando supuesto de Heterocedasticidad

Prueba White con libreria lmtest

library(lmtest)
prueba_white_sal<-bptest(modelo_sal,~I(LSAT^2)+I(GPA^2)+(llibvol^2)+I(lcost^2)+I(rank^2)+LSAT*GPA*llibvol*lcost*rank,data = LAWSCH85)
print(prueba_white_sal)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_sal
## BP = 53.592, df = 35, p-value = 0.02301

##Como Pvalue(0.02301)<(0.05), Se rechaza la Ho, por lo tanto hay evidencia de que la varianza de los residuos es heterocedastica.

Verificando supuesto de Autocorrelacion

Prueba de Durbin Watson libreria lmtest

library(lmtest)
dwtest(modelo_sal,alternative = "two.sided",iterations=1000)
## 
##  Durbin-Watson test
## 
## data:  modelo_sal
## DW = 1.7058, p-value = 0.07519
## alternative hypothesis: true autocorrelation is not 0

##Dado que Pvalue(0.07519)>(0.05),No se Rechaza Ho, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelacion de primer orden.

Prueba de Drubin Watson libreria car

library(car)
durbinWatsonTest(modelo_sal,simulate= TRUE,reps=1000)
##  lag Autocorrelation D-W Statistic p-value
##    1        0.144458      1.705846   0.078
##  Alternative hypothesis: rho != 0

##Dado que Pvalue >(0.05),No se Rechaza Ho, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelacion de primer orden.

Verificando Autocorrelacion de orden superior (orden “m”)

Usando la libreria “lmtest”

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

##Como Pvalue (0.2007)>(0.05). No se Rechaza Ho, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelacion de segundo orden.

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

Dado que hay evidencia de que la varianza de los residuos es heterocedastica, haremos uso de los estimadores HAC para corregir dicho problema.

options(scipen = 99999)
library(lmtest)
#Sin corregir
coeftest(modelo_sal)
## 
## 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
options(scipen = 99999)
library(lmtest)
library(sandwich)
#Corregido
estimacion_omega<-vcovHC(modelo_sal,type = "HC0")
coeftest(modelo_sal,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