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.