#Presentación del modelo
library(wooldridge)
datos_parcial<-wooldridge::hprice2
head(force(datos_parcial),n=5)
## price crime nox rooms dist radial proptax stratio lowstat lprice lnox
## 1 24000 0.006 5.38 6.57 4.09 1 29.6 15.3 4.98 10.085809 1.682688
## 2 21599 0.027 4.69 6.42 4.97 2 24.2 17.8 9.14 9.980402 1.545433
## 3 34700 0.027 4.69 7.18 4.97 2 24.2 17.8 4.03 10.454495 1.545433
## 4 33400 0.032 4.58 7.00 6.06 3 22.2 18.7 2.94 10.416311 1.521699
## 5 36199 0.069 4.58 7.15 6.06 3 22.2 18.7 5.33 10.496787 1.521699
## lproptax
## 1 5.690360
## 2 5.488938
## 3 5.488938
## 4 5.402678
## 5 5.402678
#1) Estimación del modelo
library(wooldridge)
library(stargazer)
modelo_precio<-lm(formula = log(price)~log(nox)+log(dist)+rooms+stratio, data=datos_parcial)
stargazer(modelo_precio,title = "modelo precio",type="text")
##
## modelo precio
## ===============================================
## Dependent variable:
## ---------------------------
## log(price)
## -----------------------------------------------
## log(nox) -0.954***
## (0.117)
##
## log(dist) -0.134***
## (0.043)
##
## rooms 0.255***
## (0.019)
##
## stratio -0.052***
## (0.006)
##
## Constant 11.084***
## (0.318)
##
## -----------------------------------------------
## Observations 506
## R2 0.584
## Adjusted R2 0.581
## Residual Std. Error 0.265 (df = 501)
## F Statistic 175.855*** (df = 4; 501)
## ===============================================
## Note: *p<0.1; **p<0.05; ***p<0.01
#Al 1% todos son significativos #2) Pruebas de normalidad
#Prueba Jarque-Bera (JB)
library(tseries)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
jarque.bera.test(modelo_precio$residuals)
##
## Jarque Bera Test
##
## data: modelo_precio$residuals
## X-squared = 480.14, df = 2, p-value < 2.2e-16
#El P-value es inferior a 0.05 por lo que hay evidencia de correlación
#Prueba Kolmogorov-Smirnov (KS) con librería
library(nortest)
lillie.test(modelo_precio$residuals)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: modelo_precio$residuals
## D = 0.082888, p-value = 7.618e-09
#El P-value es menor al 5% por lo que se rechaza la Hipótesis nula por lo que hay evidencia de que los residuos no siguen una distribución normal
#Prueba Shapiro-Wilk (SW)
shapiro.test(modelo_precio$residuals)
##
## Shapiro-Wilk normality test
##
## data: modelo_precio$residuals
## W = 0.91733, p-value = 5.123e-16
#El P-value es menor al 5% por lo que se rechaza la Hipótesis nula por lo que hay evidencia de que los residuos no siguen una distribución normal
#3)Magnitud de colinealidad
#Prueba del Indice de Condicion
library(mctest)
X<-model.matrix(modelo_precio)
mctest(mod = modelo_precio)
##
## Call:
## omcdiag(mod = mod, Inter = TRUE, detr = detr, red = red, conf = conf,
## theil = theil, cn = cn)
##
##
## Overall Multicollinearity Diagnostics
##
## MC Results detection
## Determinant |X'X|: 0.2003 0
## Farrar Chi-Square: 808.4964 1
## Red Indicator: 0.4344 0
## Sum of Lambda Inverse: 10.2562 0
## Theil's Method: 0.0663 0
## Condition Number: 69.1140 1
##
## 1 --> COLLINEARITY is detected by the test
## 0 --> COLLINEARITY is not detected by the test
#El Indice de Condición es de 69.1140 es muy superior a la referencia de 30 por lo que se considera de que existe una colinealidad severa.
#Prueba de Farrer-Glauber
library(psych)
FG_test<-cortest.bartlett(X[,-1])
print(FG_test)
## $chisq
## [1] 808.4964
##
## $p.value
## [1] 2.247208e-171
##
## $df
## [1] 6
library(performance)
VIFs<-multicollinearity(x = modelo_precio,verbose = FALSE)
VIFs
## # Check for Multicollinearity
##
## Low Correlation
##
## Term VIF VIF 95% CI Increased SE Tolerance Tolerance 95% CI
## log(nox) 3.98 [3.43, 4.64] 1.99 0.25 [0.22, 0.29]
## log(dist) 3.89 [3.36, 4.53] 1.97 0.26 [0.22, 0.30]
## rooms 1.22 [1.12, 1.38] 1.10 0.82 [0.72, 0.89]
## stratio 1.17 [1.09, 1.34] 1.08 0.85 [0.75, 0.92]
#Tomando un vif de 2 se encuentra que existe colienealidad en en las variables log(nox) y log(dist)