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.
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.
Estimando el modelo
# importacion de datos
library(readxl)
library(stargazer)
ventas_empresa_1_ <- read_excel("C:/Users/Kathya Hernandez/Downloads/ventas_empresa(1).xlsx")
# corriendo el modelo
modelo_ventas<-lm(formula = V~C+P+M, data = ventas_empresa_1_)
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. Heterocedasticidad
Prueba de white
library(stargazer)
u_i<-modelo_ventas$residuals
data_prueba_white<-as.data.frame(cbind(u_i,ventas_empresa_1_))
regresion_auxiliar<-lm(I(u_i^2)~C+P+M+I(C^2)+I(P^2)+I(M^2)+C*P+P*M+C*M,data = data_prueba_white)
sumario<-summary(regresion_auxiliar)
n<-nrow(data_prueba_white)
R_2<-sumario$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<-c(LM_w,VC,p_value)
names(salida_white)<-c("LMw","Valor Crítico","p value")
stargazer(salida_white,title = "Resultados de la prueba de White",type = "html",digits = 6)
Resultados de la prueba de White
|
|
|
LMw
|
Valor Crítico
|
p value
|
|
|
|
7.122650
|
16.918980
|
0.624351
|
|
|
Interpretacion Al obtener el resultado de la prueba de White se puede decir que NO se rechaza la Ho. porque el Pvalue es mayor al nivel de significancia (0.624351 > 0.05), de igual manera el LMw es menor que el VC(7.122650<16.918978), por lo tanto hay evidencia de que la varianza de los residuos es homocedástica
Uso de la libreria lmtest (prueba White)
library(lmtest)
prueba_white<-bptest(modelo_ventas,~I(C^2)+I(P^2)+I(M^2)+C*P+P*M+C*M,
data = ventas_empresa_1_)
print(prueba_white)
##
## studentized Breusch-Pagan test
##
## data: modelo_ventas
## BP = 7.1227, df = 9, p-value = 0.6244
Interpretacion Cuando se usa la libreria lmtest para calcular la prueba de White, nos da el mismo resultado que al hacerlo de forma manual, se puede decir que hay evidencia de que la varianza de los residuos es homocedastica, ya que no se rechaza la Ho.
a. Autocorrelacion
Autocorrelacion de 1º orden
Prueba de Durbin-Watson (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
Prueba de Durbin-Watson (libreria car)
library(car)
durbinWatsonTest(modelo_ventas,simulate = TRUE,reps = 1000)
## lag Autocorrelation D-W Statistic p-value
## 1 0.3013888 1.299572 0.042
## Alternative hypothesis: rho != 0
Interpretacion Cuando se realiza la prueba Durbin-Watson, en ambos casos (usando las librerias car y lmtest), el resultado de la prueba es de 1.2996, el cual dista un poco de 2, por lo tanto se puede decir que la prueba no aporta evidencia (es no concluyente), pero al calcular el valor de 4-dv y 4-dl se obtiene 2.899 y 2.344(usando la tabla), por lo que se asume que hay evidencia de no autocorrelacion y (NO se rechaza la Ho), mismo resultado si se toma en cuenta el Pvalue, por que el Pvalue es mayor al nivel de significancia (0.054>0.05), los residuos no siguen una autocorrelacion de 1º orden
Autocorrelacion de orden superior (2º orden)
Prueba del multiplicador de lagrange (Breush-Godfrey)
library(dplyr)
library(tidyr)
library(kableExtra)
data_prueba_BG<-cbind(u_i,ventas_empresa_1_)%>%as.data.frame()%>%
mutate(Lag_1=dplyr::lag(u_i,1),
Lag_2=dplyr::lag(u_i,2))%>%
replace_na(list(Lag_1=0,Lag_2=0))
kable(head(data_prueba_BG,6))
|
u_i
|
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
|
# Calculando la regresión auxiliar y el estadístico LMBP
regresion_auxiliar_BG<-lm(u_i~C+P+M+Lag_1+Lag_2,data = data_prueba_BG)
sumario_BG<-summary(regresion_auxiliar_BG)
R_2_BG<-sumario_BG$r.squared
n<-nrow(data_prueba_BG)
LM_BG<-n*R_2_BG
gl=2
p_value<-1-pchisq(q = LM_BG,df = gl)
VC<-qchisq(p = 0.95,df = gl)
salida_bg<-c(LM_BG,VC,p_value)
names(salida_bg)<-c("LMbg","Valor Crítico","p value")
stargazer(salida_bg,title = "Resultados de la prueba de Breusch Godfrey",type = "html",digits = 6)
Resultados de la prueba de Breusch Godfrey
|
|
|
LMbg
|
Valor Crítico
|
p value
|
|
|
|
3.840869
|
5.991465
|
0.146543
|
|
|
Interpretacion Al realizar la prueba se observa que como pvalue es mayor al nivel de significancia (0.1465>0.05) y el LMBP es menor al valor critico (3.840869<5.991465). NO se rechaza H0, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelación de orden “2”.
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
# para verificar la autocorrelación de 1° orden
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
Interpretacion 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”
Interpretacion Cuando se verifica la autocorrelacion de orden uno, se puede decir que 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. correjir a través de un estimador HAC
Respuesta Por las pruebas realizadas anteriormemte NO se ha detectado la presencia de Heterocedasticidad y de Autocorrelación en primero y segundo orden asi que no viola ninguno de los supuestos y no es necesario utilizar un estimador HAC para corregirlo.
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.
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.
Estimacion del modelo
options(scipen = 999)
library(stargazer)
load("C:/Users/Kathya Hernandez/Downloads/wage2.RData")
regresion_lineal<-lm(formula = educ~sibs+meduc+feduc,data = wage2)
stargazer(regresion_lineal, title = "Modelo Escolaridad", type = "html",
digits = 6)
Modelo 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
|
a. Prueba de heterocedasticidad
Prueba White usando libreria lmtest
library(lmtest)
prueba_white_2<-bptest(regresion_lineal,~I(sibs^2)+I(meduc^2)+I(feduc^2)+sibs*meduc+meduc*feduc+feduc*sibs,data = wage2)
print(prueba_white_2)
##
## studentized Breusch-Pagan test
##
## data: regresion_lineal
## BP = 15.537, df = 9, p-value = 0.0772
Interpretacion Cuando se realiza la prueba white se puede concluir que NO se rechaza la Ho. ya que el Pvalue es mayor que el nivel de significancia (0.0772>0.05), por lo tanto hay evidencia de que la varianza de los residuos es homocedástica y no hay evidencia de heterocedasticidad.
a. Pruebas de Autocorrelacion
Prueba de Durbin-Watson (1ª orden)
Usando libreria lmtest
library(lmtest)
dwtest(regresion_lineal,alternative = "two.sided",iterations = 1000)
##
## Durbin-Watson test
##
## data: regresion_lineal
## DW = 1.8989, p-value = 0.1705
## alternative hypothesis: true autocorrelation is not 0
Usando libreria car
library(car)
durbinWatsonTest(regresion_lineal,simulate = TRUE,reps = 1000)
## lag Autocorrelation D-W Statistic p-value
## 1 0.05018452 1.898938 0.168
## Alternative hypothesis: rho != 0
Interpretacion Cuando se realizan las pruebas D-W (usando las dos librerias), se puede decir que en ambos casos, se puede rechazar la presencia de autocorrelación de orden 1, es decir (NO se rechaza la H0), ya que el pvalue es mayor que el nivel de significancia (0.178>0.05).
Por otro lado utilizando el esquema de evaluación de la prueba DW, el valor obtenido 1.8989 es cercano a 2, cae en la zona de NO rechazar Ho, por lo que hay evidencia de NO autocorrelacion de orden 1.
Autocorrelacion de orden superior (2ª orden)
# para orden 2
library(lmtest)
bgtest(regresion_lineal,order = 2)
##
## Breusch-Godfrey test for serial correlation of order up to 2
##
## data: regresion_lineal
## LM test = 4.5747, df = 2, p-value = 0.1015
Interpretacion Mediante el test BG, se puede verificar la autocorrelacion en el orden 2, Como el pvalue>0.05 NO se rechaza Ho, por lo tanto puede concluirse que los residuos del modelo, NO siguen autocorrelación de orden “2”
verificando la autocorrelación a travez de el test BG (usando libreria)
# para orden 1
library(lmtest)
bgtest(regresion_lineal,order = 1)
##
## Breusch-Godfrey test for serial correlation of order up to 1
##
## data: regresion_lineal
## LM test = 1.8207, df = 1, p-value = 0.1772
Interpretacion De igual forma para la autocorrelacion de orden 1, el pvalue>0.05 NO se rechaza Ho, por lo tanto puede concluirse que los residuos del modelo, NO siguen autocorrelación de 1° orden
b. correjir a través de un estimador HAC
Respuesta Por las pruebas realizadas anteriormemte NO se ha detectado la presencia de Heterocedasticidad y de Autocorrelación en primero y segundo orden asi que no se viola ninguno de los supuestos.
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.
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.
Estimando el modelo
options(scipen = 999999)
library(stargazer)
# importacion de datos
load("C:/Users/Kathya Hernandez/Downloads/LAWSCH85.RData")
# Estimando el modelo
Modelo_salario<-lm(formula = 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. Prueba de heterocedasticidad
Prueba de White (libreria lmtest)
library(lmtest)
prueba_withe_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_withe_3)
##
## studentized Breusch-Pagan test
##
## data: Modelo_salario
## BP = 34.295, df = 20, p-value = 0.0242
Interpretacion Al realizar la prueba White se determina que hay evidencia que la varianza de los residuos ES heterocedástica. Con un Pvalue menor al nivel de significancia (0.0242 < 0.05) se rechaza la hipótesis nula.
a. Autocorrelacion
Prueba de Durbin-Watson (1º orden)
# usando la libreria car
library(car)
durbinWatsonTest(model = Modelo_salario,simulate = TRUE,reps = 1000)
## lag Autocorrelation D-W Statistic p-value
## 1 0.144458 1.705846 0.07
## Alternative hypothesis: rho != 0
# usando libreria lmtest
library(lmtest)
dwtest(Modelo_salario,alternative = "two.sided",iterations = 1000)
##
## Durbin-Watson test
##
## data: Modelo_salario
## DW = 1.7058, p-value = 0.07519
## alternative hypothesis: true autocorrelation is not 0
Interpretacion Al realizar la Prueba D-W usando las 2 librerias podemos decir que No hay evidencia de autocorrelación de primer orden ya que el p-value es mayor que el nivel de significancia ( Pvalue > 0.05)
Autocorrelación de segundo orden a través de la prueba del Multplicador de Lagranje
library(lmtest)
bgtest(Modelo_salario, order=2)
##
## Breusch-Godfrey test for serial correlation of order up to 2
##
## data: Modelo_salario
## LM test = 3.2116, df = 2, p-value = 0.2007
Interpretacion No hay evidencia de autocorrelación de segundo orden ya que el p-value es mayor que el nivel de significancia (0.2007>0.05)
b. Corrigiendo a través de un estimador HAC
Respuesta En el modelo salario, se ha evidenciado que se tienen problemas de heterocedástidad en el modelo, para corregirlo se utlizará HCO, pero no presenta problemas de autocorrelacion.
corrigiendo con el estimador HAC
# modelo salario 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
# modelo salario corregido con un estimador HAC
options(scipen=99999)
library(lmtest)
library(sandwich)
estimacion_omega_ <- vcovHC(Modelo_salario, type= "HC0") # HCO sólo corrige heterocedásticidad
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