#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

El P-value es muy inferior al 0.05 del nivel de significancia por lo que hay evidencia de colinealidad en los regresores

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)