-
Extensiones de los Modelos de Regresión Lineal Múltiple
7-
Conferencia1.1
-
Conferencia1.2
-
Conferencia1.3
-
Conferencia1.4
-
Conferencia1.5
-
Conferencia1.6
-
Conferencia1.7
-
-
Autocorrelación
4-
Conferencia2.1
-
Conferencia2.2
-
Conferencia2.3
-
Conferencia2.4
-
-
Heterocedasticidad
3-
Conferencia3.1
-
Conferencia3.2
-
Conferencia3.3
-
-
Multicolinealidad
4-
Conferencia4.1
-
Conferencia4.2
-
Conferencia4.3
-
Conferencia4.4
-
-
Otros constrastes
4-
Conferencia5.1
-
Conferencia5.2
-
Conferencia5.3
-
Conferencia5.4
-
-
Tópicos finales
2-
Cuestionario6.1
-
Conferencia6.1
-
This content is protected, please login and enroll course to view this content!
Anterior
Contrastes de estabilidad
Siguiente
Examen final Econometría II
Deja una respuesta Cancelar la respuesta
Lo siento, debes estar conectado para publicar un comentario.
8 Comentarios
Al analizar el modelo se concluye lo siguiente:
No existe autocorrelación
Existe heterocedasticidad, que se atenúa con el método HAC
No existe multicolinealidad
El modelo es estable
El modelo está correctamente especificado
Los residuos no tienen una distribución normal, lo cual no es necesario corregir
Todos los análisis anteriores los hice sobre la base del modelo original, pero me quedó una duda. Si al atenuar la heterocedascidad cambia al modelo, entonces debería hacer todas las demás validaciones con el nuevo modelo. Al hacer esto entonces el modelo ya no estaría correctamente especificado y debería hacer nuevas modificaciones al modelo corregido por HAC ¿estoy en lo cierto?
No comprendo tu pregunta, Paul. Creo que deberías plantearla de otra forma.
Trataré de responderte:
1.- El método HAC te devuelve los verdaderos e.e. libres de hetero. Este método puedes usarlo tengas o no ese problema.
2.- Si atenúas hetero por otro método, debes volver evaluar el modelo. Esto definitivamente es lo más lógico, dado que los coeficientes van a cambiar y quizás puedes tener otros problemas
3.-El error de especificación puede ser confundido con autocorrelación.
Estimado Felix, remito lo realizado.
saludos,
Wilmer Alavi Argandoña
install.packages(“forecast”)
install.packages(“dynlm”)
install.packages(“nlme”)
install.packages(“car”)
install.packages(“qplot”)
install.packages(“dygraphs”)
install.packages(“lmtest”)
install.packages(“strucchange”)
install.packages(“sandwich”)
install.packages(“nortest”)
install.packages(“strucchange”)
library(strucchange)
library(GGally)
library(car)
library(ggplot2)
library(forecast)
library(dynlm) #no carga
library(nlme)
library(sandwich)
library(car)
library(lmtest)
library(qplot)
library(dygraphs)
library(base)
library(strucchange)
library(nortest)
file.choose()
reg <- read.csv("C:\\Users\\DELL\\Desktop\\ECONOMETRIA APLICADA I\\1. Introducción a la Econometría\\1.1. Consideraciones previas Econometría Aplicada 1\\Material\\ventas.csv")
attach(reg)
names(reg)
modelo <- lm(VENTAS_NETAS ~ GSueldosySalarios+GMarketyPublicidad+INVENTARIOS)
summary(modelo)
#OBS: Los coeficientes Intercept e INVENTARIOS tienen una P(r) mayor a 0.05 al igual que sus t value no son mayores a 2
# INDENTIFICACION DE LA AUTOCORRELACION
# a) Método gráfico
plot(modelo$residuals,type="p")
# OBS: No parecen ser muy aleatorios
qplot(x=c(tail(modelo$residuals,-1),0),y=modelo$residuals)
# OBS: parece que hay una leve tendencia entre los puntos
# b) Durbin Watson
dwtest(modelo)
# OBS: El DW es 1.90 cercano a 2, no hay el problema de autocorrelacion
# c) Breusch Godfrey
bgtest(modelo,order=1)
# OBS: El p-value es mayor a 0.05, se rechaza H0 es decir que se rechaza que no hay autorrelacion de orden 1.
# CONCLUSION AUTOCORRELACION: NO EXISTE, NO SE ATENUA NADA.
# IDENTIFICACION DE LA HETEROCEDASTICIDAD
# a) Método Gráfico:
qplot(x=modelo$fitted.values,y=modelo$residuals)+geom_point()
#OBS: Se puede ver que las variables se abren del centro hacia arriba y abajo.
qplot(x=reg$VENTAS_NETAS,y=modelo$residuals)+geom_point()
#OBS: Se puede ver que las variables se abren del centro hacia arriba.
# b) Breusch Pagan Test
bptest(modelo)
#OBS: El p-value es menor a 0.05, se acepta H0 es decir que es un modelo con homocedasticidad.
# c) Non Constant Error Variance
ncvTest(modelo)
# OBS: p = 4.53e-12, es menor a 0.05, se acepta H0 es decir que es un modelo con homocedasticidad.
# d) Glesjer
modeloa <- lm(abs(modelo$residuals) ~ log(GSueldosySalarios), data = reg)
summary(modeloa)
modelob <- lm(abs(modelo$residuals) ~ log(GMarketyPublicidad), data = reg)
summary(modelob)
modeloc <- lm(abs(modelo$residuals) ~ log(INVENTARIOS), data = reg)
summary(modeloc)
# p-value A: 0.001678, p-value B: 0.00029, p-value C: 0.000425.
# OBS: El menor p-value es del modelo B, es decir que GMarketyPublicidad puede ser la variable que afecte al modelo.
# e) Goldfeld Quandt
gqtest(modelo,order.by = ~ GSueldosySalarios, data=reg)
gqtest(modelo,order.by = ~ GMarketyPublicidad, data=reg)
gqtest(modelo,order.by = ~ INVENTARIOS, data=reg)
# p-value A: 1.421e-07, p-value B: 1.629e-05, p-value C: 1.436e-05
#Se puede observar que el menor p-value es de la variable GSueldosySalarios misma que estaria influenciada por la heterocedasticidad.
# CONCLUSION: Se puede concluir que las variables GSueldosySalarios y GMarketyPublicidad, son las más propensas a estar influenciadas por la heterocedasticidad.
# ATENUANDO LA HETEROCEDASTICIDAD BAJO EL METODO HAC
modelohac ~ coeftest(modelo,vcov = cvoVHV(modelo))
modelohac
# MULTICOLINEALIDAD
# IDENTIFICACION DE LA MULTICOLINEALIDAD
# a) Correlacion entre variables
cor(reg[3:5], use = "complete.obs")
# OBS: la mayor correlacion es 0.5661586 entre GMarketyPublicidad e INVENTARIOS. No es relevante.
# a) Metodo Gráfico
pairs(reg[3:5])
ggpairs(reg[3:5])
vif(modelo)
# OBS: los valores son menores a 10, no existe el problema de multicolinealidad
# ATENUANDO LA HETEROCEDASTICIDAD BAJO EL METODO HAC
# Analisis de componentes principales – APC
x <- data.frame(reg$GSueldosySalarios, reg$GMarketyPublicidad,reg$INVENTARIOS)
cor(x)
macp1 <- princomp(x,scores = T,cor = T)
summary(macp1)
# Con un componente la varianza explicada es 0.66
# Con dos componentes la varianza explicada es 0.85
# Con tres componentes la varianza explicada es 1
macp1$scores[1:10,]
score <- data.frame(macp1$scores)
reg2 <- lm(VENTAS_NETAS ~ score$Comp.1+score$Comp.2+score$Comp.3,data = reg)
summary(reg2)
vif(reg2)
# OBS: se puede que el vif(reg2) da un valor de uno a todos los componentes , por lo que el analisis de ACP atenuo la ortogonalidad.
# CONTRASTE DE ESTABILIDAD
# a) Prueba CUSUM
ols <- efp(modelo,data=reg, type = "OLS-CUSUM")
plot(ols)
# OBS: La grafica es plana, no hay ningun quiebre estructural
# b) Prueba MOSUM
olms <- efp(modelo,data=reg, type = "OLS-MOSUM")
plot(olms)
# OBS: La grafica es plana, no hay ningun quiebre estructural
sctest(modelo,type="OLS-CUSUM",data=reg)
# OBS: p-value = 0.4616, mayor a 0.05, Acepto H0 "No hay cambios estructurales"
# ERROR DE ESPECIFICACION
resettest(modelo)
# OBS: p-value = 0.1347, MAYOR A 0.05, ACEPTO H0 (modelo correctamente especificado)
# CONTRASTE DE NORMALIDAD
jarque.test(as.vector(modelo$residuals))
ad.test(modelo$residuals)
shapiro.test(modelo$residuals)
# OBS: Los valores son menores a 0.05 por lo que se acepta H0 (Normalidad)
#Ho= no auto
> #H1= Auto
> #si p # p value = 0.2531 >0.05 no rechazo hO
# Heterocedasticidad
> qplot(x=modelo$fitted.values,y=modelo$residuals)+geom_area()
> ncvTest(modelo)
Non-constant Variance Score Test
Variance formula: ~ fitted.values
Chisquare = 47.88052, Df = 1, p = 4.53e-12
#Multicolinealidad no existe
> cor(reg[2:5])
VENTAS_NETAS GSueldosySalarios GMarketyPublicidad INVENTARIOS
VENTAS_NETAS 1.0000000 0.6625963 0.7813642 0.5988083
GSueldosySalarios 0.6625963 1.0000000 0.4469144 0.4678502
GMarketyPublicidad 0.7813642 0.4469144 1.0000000 0.5661586
INVENTARIOS 0.5988083 0.4678502 0.5661586 1.0000000
# contraste de estabilidad
> ols ols plot(ols)
Modelo es estable en el tiempo no hay cambios estructurales
RESET test
data: modelo
RESET = 2.0465, df1 = 2, df2 = 98, p-value = 0.1347
modelo bien especificado
Anderson-Darling normality test
data: modelo$residuals
A = 2.264, p-value = 8.888e-06
pvalue <0.05 rechazo H0= normalidad
#Primero, lo que se evaluará la autocorrelación#
# Cargandose las librerias#
library(lmtest)
library(nlme)
library(sandwich)
library(car)
library(ggplot2)
library(dynlm)
#Escogemos el archivo#
file.choose()
reg<-read.csv("C:\\users\\usuario\\Desktop\\ECONOMETRIA APLICADA-2\\ventas.csv")
atacch(reg)
#Determinando la regresión#
modelo<-lm(VENTAS_NETAS~GSueldosySalarios+GMarketyPublicidad+INVENTARIOS,data=reg)
Summary(modelo)
#Detectando la autocorrelación#
#Los valores t no superan a 2 y además el grado de significancia no supera al 0.05#
#Método gráfico#
plot(modelo$residuals,type="l")
# Al parece no sigue un patrón aleatorio#
qplot(x=c(thail(modelo$residuals,-1,0), y =modelo$residuals)
#Al parecer sno surge una tendencia definida#
#____Ahora haremos constrastes—#
dwtest(modelo)
#No hay autocorrelación#
bgtest(modelo)
#El Modelo Breush Pagan asegura que no existe autocorrelación#
#POR LO QUE SE CONCLUYE QUE NO HAY AUTOCORRELACIÓN#
# lamentablemente hay métodos invasivos que distorsionan sus parámetros#
modelfitted<-gls(model=VENTAS_NETAS~GSueldosySalarios+GMArket+INVENTARIOS, correlation=corAR(1), method="ML")
Summary(modelfitted)
#Vemos que a pesar de su correción con un rezago de primer grado no es necesario y podemos cometer el error de novato#
tsreg<-ts(reg.start=c(ene-06,1),frecuency = 12)
modelolag<dynlm(VENTAS_NETAS~GSueldosySalarios+GMarket+INVENTARIOS+VENTAS_NETAS,1),data= tsreg)
Summary(modelolag)
dwtest(modelolag)
#se puede decir que la corrección es innecesaria por lo que no existe autocorrelación#
#DESARROLLAREMOS LA HETEROCEDASTICIDAD#
#Evidentemente ya hemos asignado nuestra variable y hemos atachado la base de datos por lo que no es necesario duplicar el trabajo#
#Sin embargo una manera para evitar la Heterocedasticidad es logaritmizar el modelo#
modelo<-lm(Log(VENTAS_NETAS)~Log(GSueldosySalarios)+log(GMarketyPublicidad)+Log(INVENTARIOS), data=reg)
Summary(modelo)
# Se puede apreciar que todas tienen un grado de significancia significativos, sin embargo la prueba t es superior a 2 en la variable INVENTARIOS#
# Ahora vamos a aplicar el método gráfico para detectar la existencia de autocorrelación#
qplot(x=modelo$fitted.values, y=(modelo$residuals)+geom_point()
#Se puede presumir que existe Heterocedasticidad por la dispersión de los puntos#
#Ahora lo que se pretende es evaluar cual de las variables es la causante de la hetrocedasticidad#
plot(x=log(GSueldosySalarios),y=(modelo$residuals))
plot(x=log(GMarketyPublicidad),y=(modelo$residual$))
plot(x=log(INVENTARIOS),y=(modelo$residuals))
# Sin embargo de manera gráfica no se presencia de Heterocedasticidad#
#Tratando de verificar cuantitativamente que no existe HETEROCEDASTICIDAD#
bptest(modelo,data=reg)
ncvTest(modelo,data=reg)
#Los Test afirman la no existencia de Heterocedasticidad#
#Utilizando el Test de Glasjer, nos afirma que no hay indicio de heterocedasticidad, razón a ello omito acá la prueba sólo la puntualizaré en el caso que se observa#
modelooff<-lm(abs(modelo$residuals)~log(GMarketyPublicidad, data=reg)
Summary(modelooff)
#comprobando que la variable GMarketyPublicidad, si afecta#
#PARA EVALUAR LA MULTICOLINEALIDAD#
#cargamos las librerias#
library(CarData)
library(GGally)
library(GGplot2)
#Establceemos la matriz de correlación#
#Tiene un alto nivel de coeficiente de determinación superior a 0.91 y eso no hace sospechar la existencia del mismo y usando la matriz de correlación#
cor(reg[3,5])
#Graficamente se puede ver#
pairs(reg[3,5])
#ahora para contradecirnos vamos a usar un Test que esl el factor inflador de las varianzas#
vif(reg)
#Se concluye que no hay multicorlinealidad#
#Podemos utilizar el Método HAC para atenuar en sierta forma#
x<-cbind([3,5])
View(reg)
macp1<-princomp(x,scores = T,cor =T)
Summary(macp1)
scores<-data.frame(macp1$scores)
#Corrigiendo#
reg2<-lm(VENTAS_NETAS~scores$comp.1+scores$comp.2+scores$comp.3, data=reg)
Summary(reg)
Vif(reg2)
#Con esto ya no hay la misníma sospecha de Heterocedasticidad, lo que quiere decir que se corrigió, ahora se ve la ortogonalidad#
#AHORA VAMOS A EVALUAR LA NORMALIDAD#
#Cargamos las librerias#
library(structurechanges)
library(moments)
#Después los mismos pasos se dan vamos a evaluar si los datos se distribuyen normalmente#
jarque.test(as.vector(modelo$residuals))
ad.test(modelo$residuals)
shapiro.test(modelo$residuals)
#Los modelos se distribuyen normalmente#
#EL CONTRASTE DE ESPECIFICACIÓN DEL MODELO#
reset(modelo)
#El modelo está correctamente especificado#
#EL MODELO DE ESTABILIDAD#
ols<–efp(modelo,data=reg, type="OLS-CUSUM")
plot(ols)
omls<-efp(modelo,data=reg, type="OLS -MOSUM")
plot(omls)
#Una vez realizado el ejercicio se expone los diferentes hallazgos y observaciones obtenidas
#de acuerdo a lo solicitado:
#AUTOCORRELACIÓN
#Mediante la prueba de Durbin Watson se rechaza H1, por lo que se puede presumir que no existe autocorrelación, o al menos el problema no es tan sever, ya que no se cumple la inecuación, y “d”
#tiende a 2.
# 0 < d < dl
# 0 < 1.90 < dl 1.706
#Si du < d < 4 -du
# 1.760 < 1.90 < 2.24 = NO EXISTE AUTOCORRELACION POSITIVA, NI NEGATIVA
#De igual forma el valor no se cumple p 0.91.
#Debido a que el factor de inflación de la varianza esta por debajo de 10 lo cual indica que no
#existe Multicolinelaidad.
#CONTRASTE DE NORMALIDAD
#De acuerdo a la prueba de normalidad de Jarque -Bera, que da como resultado un
#p-value=0.0000001574, es decir es menor a 0.05, por lo cual rechazo HO.
#Lo mismo ocurre con el ad.test cuyo resultado de p es menor que 0.05.
#CONTRASTE DE ESPECIFICACIÓN
#Aplicando el contraste de ramsey reset da como resultado un p-value de 0.1347
#Lo cual de acuerdo me indicaría que el modelo inicial no esta correctamente especificado.
#Si valor p < 0.05 rechazo h0
#H0 : CORRECTAMENTE ESPECIFICADO
#H1 : NO CORRECTAMENTE ESPECIFICADO
#CONTRASTE DE ESTABILIDAD
#De acuerdo al test OLS-CUSUM , los parámetros son estables, ya que se encuentra dentro de los
#intervalos de confianza.
#Si valor p < 0.05 rechazo h0
#H0 : ESTABLE / NO CAMBIO ESTRUCTURAL
#H1 : NO ESTABLE / CAMBIO ESTRUCTURAL
Excelente!