Resuelva los siguientes ejercicios:

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.

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

PRUEBA DE HETEROCEDASTICIDAD

PRUEBA DE WHITE: PASO A PASO

Cargando dato y estimando el modelo
library(readxl)
library(stargazer)
Ventas_Empresa <- read_excel("C:/Users/Grupo Betel/Downloads/ventas_empresa (1).xlsx")
modelo_ventas<-lm(V~C+P+M,data = Ventas_Empresa)
stargazer(modelo_ventas,title = "Modelo Ventas",type = "text")
## 
## 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
library(stargazer)
Residuos_ventas<-modelo_ventas$residuals
Data_Prueba_White_ventas<-as.data.frame(cbind(Residuos_ventas,Ventas_Empresa))
Regresion_Auxiliar_Ventas<-lm(I(Residuos_ventas^2)~C+P+M+I(C^2)+I(P^2)+I(M^2)+C*P+C*M+M*P,data = Data_Prueba_White_ventas)
Resumen_ventas<-summary(Regresion_Auxiliar_Ventas)
n<-nrow(Data_Prueba_White_ventas)
R_2<-Resumen_ventas$r.squared
LM_W<-n*R_2
gl=3+3+3
P_value<-1-pchisq(q = LM_W,df = gl)
VC<-qchisq(p = 0.95,df = gl)
Salida_White_ventas<-c(LM_W,VC,P_value)
names(Salida_White_ventas)<-c("LM_White","Valor Crítico","P_value")
stargazer(Salida_White_ventas,title = "Resultados de la prueba de White",type = "text",digits = 6)
## 
## Resultados de la prueba de White
## ===============================
## LM_White Valor Crítico P_value 
## -------------------------------
## 7.122650   16.918980   0.624351
## -------------------------------
No se rechaza la Ho, por lo tanto hay evidencia de que la varianza de los residuos es homocedástica ya que podemos considerar que el estadístico de prueba LM_White=7.122650 < 16.918980 es menor al valor crítico. Además, P_value 0.624351 > 0.05 es mayor al nivel de significancia.

PRUEBA DE WHITE: USANDO LA LIBRERÍA LMTEST

library(lmtest)
Prueba_White_ventas<-bptest(modelo_ventas,~C+P+M+I(C^2)+I(P^2)+I(M^2)+C*P+C*M+M*P,data = Data_Prueba_White_ventas)
print(Prueba_White_ventas)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_ventas
## BP = 7.1227, df = 9, p-value = 0.6244
No se rechaza la Ho, por lo tanto hay evidencia de que la varianza de los residuos es homocedástica ya que P_value 0.624351 > 0.05 el nivel de significancia.

PRUEBA DE AUTOCORRELACIÓN

PRUEBA DE AUTOCORRELACIÓN: 1° ORDEN

PRUEBA DE DURBIN WATSON: USANDO LIBRERÍA 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
Al aplicar la prueba el DW es igual a 1.2996 usando la tabla y de acuerdo al esquema la prueba cae en la zona donde no aporta evidencia, es decir no es concluyente ya que caen entre dL=1.101 y dU=1.656, considerando que son 24 observaciones. Sin embargo si consideramos el P_value no se rechaza la Ho, por lo tanto se puede rechazar la presencia de autocorrelación de 1° orden ya que P_value 0.05074 > 0.05 es mayor al nivel de significancia.

PRUEBA DE DURBIN WATSON: USANDO LIBRERÍA CAR

library(car)
durbinWatsonTest(modelo_ventas,simulate = TRUE,reps = 1000)
##  lag Autocorrelation D-W Statistic p-value
##    1       0.3013888      1.299572   0.056
##  Alternative hypothesis: rho != 0
Si consideramos el P_value no se rechaza la Hipótesis nula, por lo tanto se puede rechazar la presencia de autocorrelación de 1° orden ya que P_value 0.064 > 0.05 es mayor al nivel de significancia.

PRUEBA DE AUTOCORRELACIÓN: DE ORDEN SUPERIOR

PRUEBA DE MULTIPLICADOR DE LAGRANGE: PASO A PASO

Preparando datos y calculando la regresión auxiliar y el estadístico LM_BP
library(dplyr)
library(tidyr)
library(kableExtra)
library(stargazer)
cbind(Residuos_ventas,Ventas_Empresa) %>% 
  as.data.frame() %>% 
  mutate(Lag_1=dplyr::lag(Residuos_ventas,1),
         Lag_2=dplyr::lag(Residuos_ventas,2)) %>% 
  replace_na(list(Lag_1=0,Lag_2=0))->Data_Prueba_BG_Ventas
kable(head(Data_Prueba_BG_Ventas,n=6))
Residuos_ventas V C P M Lag_1 Lag_2
10.673678 607 197 173 110 0.000000 0.000000
7.372511 590 208 152 107 10.673678 0.000000
-2.435532 543 181 150 99 7.372511 10.673678
-3.322264 558 194 150 102 -2.435532 7.372511
-9.913932 571 192 163 109 -3.322264 -2.435532
8.704039 615 196 179 114 -9.913932 -3.322264
Regresion_Auxiliar_BG_Ventas<-lm(Residuos_ventas~C+P+M+Lag_1+Lag_2,data = Data_Prueba_BG_Ventas)
sumario_BG_Ventas<-summary(Regresion_Auxiliar_BG_Ventas)
R_2_BG_Ventas<-sumario_BG_Ventas$r.squared
n_Ventas<-nrow(Data_Prueba_BG_Ventas)
LM_BG_Ventas<-n_Ventas*R_2_BG_Ventas
gl_Ventas=2
P_value_Ventas<-1-pchisq(q = LM_BG_Ventas,df = gl_Ventas)
VC_Ventas<-qchisq(p = 0.95,df = gl_Ventas)
Salida_BG_Ventas<-c(LM_BG_Ventas,VC_Ventas,P_value_Ventas)
names(Salida_BG_Ventas)<-c("LM_BG","Valor Crítico","P_Value")
stargazer(Salida_BG_Ventas,title = "Resultados de la prueba de Breusch Godfrey",type = "text",digits = 6)
## 
## Resultados de la prueba de Breusch Godfrey
## ===============================
## LM_BG    Valor Crítico P_Value 
## -------------------------------
## 3.840869   5.991465    0.146543
## -------------------------------
Al observar el pvalue con un valor de 0.146543 > 0.05 este es mayor al nivel de significancia por lo tanto No se rechaza H0, entonces puede concluirse que los residuos del modelo, no siguen autocorrelación de 2° orden. Además, si utilizamos el estadístico de prueba LM_BG que es 3.840869 es < 5.991465 menor al valor crítico lo cual nos confirma que no se rechaza la hipótesis nula.

PRUEBA DE MULTIPLICADOR DE LAGRANGE: USANDO LA LIBRERÍA 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.05 No se rechaza H0, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelación de orden “2”
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 pvalue>0.05 No se rechaza H0, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelación de orden “1”

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

En el ejercicio del Modelo Ventas no se ha encontrado evidencia de violación de los supuestos, planteados en el literal anterior, por lo tanto no es necesario corregir a través de un estimador HAC el modelo propuesto.

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

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

PRUEBA DE HETEROCEDASTICIDAD

PRUEBA DE WHITE: USANDO LA LIBRERÍA LMTEST

Cargando dato y estimando el modelo
library(stargazer)
load("C:/Users/Grupo Betel/Downloads/wage2 (1).RData")
modelo_escolaridad<-lm(formula = educ~sibs+meduc+feduc, data= wage2)
stargazer(modelo_escolaridad,title = "Modelo Escolaridad: Trabajadores Hombres",type = "text")
## 
## Modelo Escolaridad: Trabajadores Hombres
## ===============================================
##                         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
library(lmtest)
Prueba_White_Escolaridad<-bptest(modelo_escolaridad,~I(sibs^2)+I(meduc^2)+I(feduc^2)+sibs*meduc+sibs*feduc+meduc*feduc, data = wage2)
print(Prueba_White_Escolaridad)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_escolaridad
## BP = 15.537, df = 9, p-value = 0.0772
No se rechaza la Ho, por lo tanto hay evidencia de que la varianza de los residuos es homocedástica ya que P_value 0.0772 > 0.05 es mayor al nivel de significancia.

PRUEBA DE AUTOCORRELACIÓN

PRUEBA DE AUTOCORRELACIÓN: 1° ORDEN

PRUEBA DE DURBIN WATSON: USANDO LIBRERÍA LMTEST

library(lmtest)
dwtest(modelo_escolaridad,alternative = "two.sided",iterations = 1000)
## 
##  Durbin-Watson test
## 
## data:  modelo_escolaridad
## DW = 1.8989, p-value = 0.1705
## alternative hypothesis: true autocorrelation is not 0
Al aplicar la prueba el DW y considerando el P_value no se rechaza la Ho, por lo tanto se puede rechazar la presencia de autocorrelación de 1° orden ya que P_value 0.1705 > 0.05 es mayor al nivel de significancia.

PRUEBA DE DURBIN WATSON: USANDO LIBRERÍA CAR

library(car)
durbinWatsonTest(modelo_escolaridad,simulate = TRUE,reps = 1000)
##  lag Autocorrelation D-W Statistic p-value
##    1      0.05018452      1.898938   0.162
##  Alternative hypothesis: rho != 0
Si consideramos el P_value no se rechaza la Hipótesis nula, por lo tanto se puede rechazar la presencia de autocorrelación de 1° orden ya que P_value 0.164 > 0.05 es mayor al nivel de significancia.

PRUEBA DE AUTOCORRELACIÓN: DE ORDEN SUPERIOR

PRUEBA DE MULTIPLICADOR DE LAGRANGE: USANDO LA LIBRERÍA LMTEST

library(lmtest)
bgtest(modelo_escolaridad,order = 2)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  modelo_escolaridad
## LM test = 4.5747, df = 2, p-value = 0.1015
Como pvalue > nivel de significancia (0.1015>0.05) No se rechaza H0, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelación de orden “2”
library(lmtest)
bgtest(modelo_escolaridad,order = 1)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  modelo_escolaridad
## LM test = 1.8207, df = 1, p-value = 0.1772
Como pvalue > nivel de significancia (0.1772 > 0.05) No se rechaza H0, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelación de orden “1”

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

En el ejercicio del Modelo Escolaridad no se ha encontrado evidencia de violación de los supuestos, planteados en el literal anterior, por lo tanto no es necesario corregir a través de un estimador HAC el modelo propuesto.

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)

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

PRUEBA DE HETEROCEDASTICIDAD

PRUEBA DE WHITE: USANDO LA LIBRERÍA LMTEST

Cargando dato y estimando el modelo
library(stargazer)
load("C:/Users/Grupo Betel/Downloads/LAWSCH85 (1).RData")
modelo_sueldo<-lm(formula = lsalary~LSAT+GPA+llibvol+lcost+rank, data = LAWSCH85)
stargazer(modelo_sueldo,title = "Modelo Salario Inicial",type = "text")
## 
## Modelo Salario Inicial
## ===============================================
##                         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
library(lmtest)
Prueba_White_Sueldo<-bptest(modelo_sueldo,~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*lcost+GPA*rank+
                        llibvol*lcost+llibvol*rank+lcost*rank, data = LAWSCH85)
print(Prueba_White_Sueldo)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_sueldo
## BP = 34.295, df = 20, p-value = 0.0242
Al observar el P_ Value podemos concluir que se rechaza la Ho, por lo tanto hay evidencia de que la varianza de los residuos posee heterocedasticidad ya que P_value 0.0242 < 0.05 es menor al nivel de significancia.Posteriormente se corrige a través de un estimador.

PRUEBA DE AUTOCORRELACIÓN

PRUEBA DE AUTOCORRELACIÓN: 1° ORDEN

PRUEBA DE DURBIN WATSON: USANDO LIBRERÍA LMTEST

library(lmtest)
dwtest(modelo_sueldo,alternative = "two.sided",iterations = 1000)
## 
##  Durbin-Watson test
## 
## data:  modelo_sueldo
## DW = 1.7058, p-value = 0.07519
## alternative hypothesis: true autocorrelation is not 0
Al aplicar la prueba el DW y considerando el P_value no se rechaza la Ho, por lo tanto se puede rechazar la presencia de autocorrelación de 1° orden ya que P_value 0.07519 > 0.05 es mayor al nivel de significancia.

PRUEBA DE DURBIN WATSON: USANDO LIBRERÍA CAR

library(car)
durbinWatsonTest(modelo_sueldo,simulate = TRUE,reps = 1000)
##  lag Autocorrelation D-W Statistic p-value
##    1        0.144458      1.705846   0.062
##  Alternative hypothesis: rho != 0
Si consideramos el P_value no se rechaza la Hipótesis nula, por lo tanto se puede rechazar la presencia de autocorrelación de 1° orden ya que P_value 0.08 > 0.05 es mayor al nivel de significancia.

PRUEBA DE AUTOCORRELACIÓN: DE ORDEN SUPERIOR

PRUEBA DE MULTIPLICADOR DE LAGRANGE: USANDO LA LIBRERÍA LMTEST

library(lmtest)
bgtest(modelo_sueldo,order = 2)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  modelo_sueldo
## LM test = 3.2116, df = 2, p-value = 0.2007
Como pvalue > nivel de significancia (0.2007>0.05) No se rechaza la hipótesis nula, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelación de orden “2”
library(lmtest)
bgtest(modelo_sueldo,order = 1)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  modelo_sueldo
## LM test = 2.9379, df = 1, p-value = 0.08652
Como pvalue > nivel de significancia (0.8652 > 0.05) No se rechaza H0, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelación de orden “1”

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

En el ejercicio del Modelo Sueldo se ha encontrado evidencia de violación de los supuestos, planteados en el literal anterior, por lo tanto es necesario corregir a través de un estimador HAC el modelo propuesto, cabe señalar que hay presencia de heterocedasticidad pero no de autocorrelación.

SIN CORREGIR

options(scipen = 999999)
library(lmtest)
coeftest(modelo_sueldo)
## 
## 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

CORREGIDO (USANDO UN ESTIMADOR HAC)

options(scipen = 99999)
library(lmtest)
library(sandwich)

Estimacion_Omega<-vcovHC(modelo_sueldo,type = "HC0")
coeftest(modelo_sueldo,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
Ya efectuada la corrección, los parámetros son eficientes y serán así mejores estimadores poblacionales para realizar pronósticos o proyecciones.

ESTIMACIÓN ROBUSTA

options(scipen = 999999)
library(robustbase)
library(stargazer)
modelo_sueldo_robust<-lmrob(lsalary~LSAT+GPA+llibvol+lcost+rank, data= LAWSCH85)
stargazer(modelo_sueldo, modelo_sueldo_robust, type = "text", title = "Comparativa")
## 
## Comparativa
## =================================================================
##                                       Dependent variable:        
##                                ----------------------------------
##                                             lsalary              
##                                          OLS             MM-type 
##                                                          linear  
##                                          (1)               (2)   
## -----------------------------------------------------------------
## LSAT                                    0.005             0.003  
##                                        (0.004)           (0.005) 
##                                                                  
## GPA                                    0.248***         0.283*** 
##                                        (0.090)           (0.105) 
##                                                                  
## llibvol                                0.095***         0.089*** 
##                                        (0.033)           (0.029) 
##                                                                  
## lcost                                   0.038             0.045  
##                                        (0.032)           (0.042) 
##                                                                  
## rank                                  -0.003***         -0.003***
##                                        (0.0003)         (0.0003) 
##                                                                  
## Constant                               8.343***         8.464*** 
##                                        (0.533)           (0.529) 
##                                                                  
## -----------------------------------------------------------------
## Observations                             136               136   
## R2                                      0.842             0.845  
## Adjusted R2                             0.836             0.839  
## Residual Std. Error (df = 130)          0.112             0.090  
## F Statistic                    138.230*** (df = 5; 130)          
## =================================================================
## Note:                                 *p<0.1; **p<0.05; ***p<0.01
Al efectuar la corrección mediante el estimador HAC, podemos obtener mejores resultados al elaborar pronósticos o proyecciones con nuestro modelo.