Ejercicio 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.
- Construcción del modelo.
library(stargazer)
library(readxl)
ventas_empresa <- read_excel("C:/Archivos R/ventas_empresa.xlsx")
modelo_ventas <- lm(formula = V~C+P+M, data = ventas_empresa)
stargazer(modelo_ventas,type = "text",title = "Modelo Estimado Ventas", digits = 6)
##
## Modelo Estimado Ventas
## ===============================================
## Dependent variable:
## ---------------------------
## V
## -----------------------------------------------
## C 0.922567***
## (0.222733)
##
## P 0.950177***
## (0.155845)
##
## M 1.297786***
## (0.430729)
##
## Constant 107.443500***
## (18.057490)
##
## -----------------------------------------------
## Observations 24
## R2 0.979817
## Adjusted R2 0.976789
## Residual Std. Error 9.505570 (df = 20)
## F Statistic 323.641500*** (df = 3; 20)
## ===============================================
## Note: *p<0.1; **p<0.05; ***p<0.01
1- Verificando el supuesto de heterocedasticidad con la Prueba de White.
# Usando la libraría lmtest.
library(lmtest)
white_test1<-bptest(modelo_ventas,~I(C^2)+I(P^2)+I(M^2)+C*P+C*M+P*M,
data = ventas_empresa)
print(white_test1)
##
## studentized Breusch-Pagan test
##
## data: modelo_ventas
## BP = 7.1227, df = 9, p-value = 0.6244
Conclusión: Asumiendo un nivel de significacia del 5%, al aplicar la prueba de Whte, como 0.6244 > 0.05 No se rechaza la H0, por lo tanto hay evidencia de que la varianza de los residuos es homocedástica.
2- Verificando el supuesto de autocorrelación.
2.1- Autocorrelación de primer orden con la Prueba del Multiplicador de Lagrange (Breusch Godfrey).
# Usando la librería lmtest.
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
Conclusión: Considerando un nivel de significancia igual a 5%, aplicando la Prueba de Breusch Godfrey, Como 0.1071 > 0.05 No se rechaza H0, por lo tanto puede concluirse que los residuos del modelo no siguen autocorrelación de primer orden.
2.2- Autocorrelación de segundo orden con la Prueba Prueba del Multiplicador de Lagrange (Breusch Godfrey).
# Utilizando 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
Conclusión: Con un nivel de significancia igual a 5%, aplicando la Prueba de Breusch Godfrey, Como p_value > 0.05 No se rechaza H0, por lo tanto no hay evidencia de autocorrelación de segundo orden en los residuos.
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.
Dado que el modelo estimado no hay evidencia de autocorrelación y homocedasticidad, no es necesario realizar una correción con el estimador HAC
Ejercicio 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.
- Construcción del modelo.
library(stargazer)
load("C:/Archivos R/L3/wage2.Rdata")
modelo_escolaridad <- lm(formula = educ~sibs+meduc+feduc, data = wage2)
stargazer(modelo_escolaridad,type = "text",title = "Modelo Estimado Años de Escolaridad", digits = 6)
##
## Modelo Estimado Años de Escolaridad
## ===============================================
## Dependent variable:
## ---------------------------
## educ
## -----------------------------------------------
## sibs -0.093636***
## (0.034471)
##
## meduc 0.130787***
## (0.032689)
##
## feduc 0.210004***
## (0.027475)
##
## Constant 10.364260***
## (0.358500)
##
## -----------------------------------------------
## Observations 722
## R2 0.214094
## Adjusted R2 0.210810
## Residual Std. Error 1.987052 (df = 718)
## F Statistic 65.198250*** (df = 3; 718)
## ===============================================
## Note: *p<0.1; **p<0.05; ***p<0.01
1- Verificando el supuesto de heterocedasticidad con la Prueba de White.
# Usando la libraría lmtest.
library(lmtest)
white_test2<-bptest(modelo_escolaridad,~I(sibs^2)+I(meduc^2)+I(feduc^2)
+sibs*meduc+sibs*feduc+meduc*feduc,
data = wage2)
print(white_test2)
##
## studentized Breusch-Pagan test
##
## data: modelo_escolaridad
## BP = 15.537, df = 9, p-value = 0.0772
Conclusión: Asumiendo un nivel de significacia del 5%, al aplicar la prueba de Whte, como 0.0772 > 0.05 No se rechaza H0; se genera evidencia de que el modelo no presenta problemas de heterocedasticidad,
2- Verificando el supuesto de autocorrelación.
2.1- Autocorrelación de primer orden con la Prueba de Durbin Watson.
# Usando la librería 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
Conclusión: Considerando un nivel de significancia del 5%, al aplicar la Prueba de Durbin-Watson, como p_value > 0.05 No se rechaza H0, por lo tanto se rechaza la presencia de autocorrelación en los residuos del modelo.
2.2- Autocorrelación de segundo orden con la Prueba Prueba del Multiplicador de Lagrange (Breusch Godfrey).
# Utilizando 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
Conclusión: Con un nivel de significancia del 5%, al aplicar la Prueba de Breusch Godfrey, como p_value > 0.05 No se rechaza H0, se aporta evidencia de que los residuos del modelo no siguen autocorrelación 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 estimador HAC apropiado, el modelo propuesto.
Puesto que el modelo estimado cumple los supuestos, no hay presencia de autocorrelación y heterocedasticidad, así que no es necesario realizar una correción con el estimador HAC
Ejercicio 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.
- Construcción del modelo.
load("C:/Archivos R/L3/LAWSCH85.Rdata")
formula3 <- as.formula("lsalary~LSAT+GPA+llibvol+lcost+rank")
modelo_sueldoinicial <- lm(formula = formula3, data = LAWSCH85)
stargazer(modelo_sueldoinicial, type = "text", title = "Modelo estimado de sueldo inicial medio", digits = 6)
##
## Modelo estimado de sueldo inicial medio
## ===============================================
## Dependent variable:
## ---------------------------
## lsalary
## -----------------------------------------------
## LSAT 0.004696
## (0.004010)
##
## GPA 0.247524***
## (0.090037)
##
## llibvol 0.094993***
## (0.033254)
##
## lcost 0.037554
## (0.032106)
##
## rank -0.003325***
## (0.000348)
##
## Constant 8.343226***
## (0.532519)
##
## -----------------------------------------------
## Observations 136
## R2 0.841685
## Adjusted R2 0.835596
## Residual Std. Error 0.112412 (df = 130)
## F Statistic 138.229800*** (df = 5; 130)
## ===============================================
## Note: *p<0.1; **p<0.05; ***p<0.01
1- Verificando el supuesto de heterocedasticidad con la Prueba de White.
# Usando la libraría lmtest.
library(lmtest)
white_test3<-bptest(modelo_sueldoinicial,~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(white_test3)
##
## studentized Breusch-Pagan test
##
## data: modelo_sueldoinicial
## BP = 34.295, df = 20, p-value = 0.0242
Conclusión: Considerando un nivel de significancia del 5%,Como p_value < 0.05 Se rechaza la H0, y existe evidencia de que la varianza de los residuos es heterocedástica.
2- Verificando el supuesto de autocorrelación.
2.1- Autocorrelación de primer orden con la Prueba de Durbin Watson.
# Usando la librería car.
library(car)
durbinWatsonTest(modelo_sueldoinicial, simulate = TRUE, reps = 1000)
## lag Autocorrelation D-W Statistic p-value
## 1 0.144458 1.705846 0.086
## Alternative hypothesis: rho != 0
Conclusión: Con un nivel de significancia del 5%, se puede rechazar la presencia de autocorrelación de primer orden, tanto positiva como negativa (No se rechaza la H0), ya que el p_value > 0.05.
2.2- Autocorrelación de segundo orden con la Prueba Prueba del Multiplicador de Lagrange (Breusch Godfrey).
# Utilizando la librería lmtest.
library(lmtest)
bgtest(modelo_sueldoinicial, order = 2)
##
## Breusch-Godfrey test for serial correlation of order up to 2
##
## data: modelo_sueldoinicial
## LM test = 3.2116, df = 2, p-value = 0.2007
Conclusión: Teniendo un nivel de significancia igual a 5%, aplicando la Prueba de Breusch Godfrey, como 0.2007 > 0.05 No se rechaza H0, por lo tanto no hay evidencia de autocorrelación de segundo orden en los residuos.
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.
Ya que el modelo estimado adolece de heterocedasticidad, se procederá a realizar la corrección a través de un estimador HAC.
Estimación Robusta (uso del estimador HAC).
Modelo sin corregir.
options(scipen = 99999)
library(lmtest)
coeftest(modelo_sueldoinicial)
##
## 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
Modelo corregido (usando un estimador HAC).
# Usando las librerías lmtest y sandwich
options(scipen = 999999)
library(lmtest)
library(sandwich)
estimacion_omega<-vcovHC(modelo_sueldoinicial,type = "HC0")
coeftest(modelo_sueldoinicial,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
Comentario: Ya con la corrección realizada, los parámetros son eficientes y son los mejores estimadores poblacionales para realizar pronósticos.
Ahora bien, para fines de pronóstico, es recomendable realizar una estimación robusta del modelo.
options(scipen = 999999)
library(robustbase)
library(stargazer)
modelo_sueldoinicial_robust<-lmrob(formula3,data=LAWSCH85)
# Se muestra una salida de comparación de ambos modelos:
stargazer(modelo_sueldoinicial,modelo_sueldoinicial_robust,
type = "text",title = "Comparativa",digits = 6)
##
## Comparativa
## =======================================================================
## Dependent variable:
## ----------------------------------------
## lsalary
## OLS MM-type
## linear
## (1) (2)
## -----------------------------------------------------------------------
## LSAT 0.004696 0.002962
## (0.004010) (0.005235)
##
## GPA 0.247524*** 0.282534***
## (0.090037) (0.105434)
##
## llibvol 0.094993*** 0.088954***
## (0.033254) (0.028927)
##
## lcost 0.037554 0.045050
## (0.032106) (0.042265)
##
## rank -0.003325*** -0.003306***
## (0.000348) (0.000319)
##
## Constant 8.343226*** 8.463768***
## (0.532519) (0.528792)
##
## -----------------------------------------------------------------------
## Observations 136 136
## R2 0.841685 0.844761
## Adjusted R2 0.835596 0.838790
## Residual Std. Error (df = 130) 0.112412 0.090162
## F Statistic 138.229800*** (df = 5; 130)
## =======================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01