Librerías a usar:
library(wooldridge)
## Warning: package 'wooldridge' was built under R version 4.5.3
library(tseries)
## Warning: package 'tseries' was built under R version 4.5.3
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(nortest)
library(car)
## Cargando paquete requerido: carData
library(mctest)
library(lmtest)
## Cargando paquete requerido: zoo
##
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
Carga de datos:
datos_parcial <- wooldridge::hprice2
datos_modelo <- na.omit(datos_parcial[, c("price", "nox", "dist", "rooms", "stratio")])
modelo <- lm(log(price) ~ log(nox) + log(dist) + rooms + stratio,
data = datos_modelo)
summary(modelo)
##
## Call:
## lm(formula = log(price) ~ log(nox) + log(dist) + rooms + stratio,
## data = datos_modelo)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.05890 -0.12427 0.02128 0.12882 1.32531
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 11.083861 0.318111 34.843 < 2e-16 ***
## log(nox) -0.953539 0.116742 -8.168 2.57e-15 ***
## log(dist) -0.134339 0.043103 -3.117 0.00193 **
## rooms 0.254527 0.018530 13.736 < 2e-16 ***
## stratio -0.052451 0.005897 -8.894 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.265 on 501 degrees of freedom
## Multiple R-squared: 0.584, Adjusted R-squared: 0.5807
## F-statistic: 175.9 on 4 and 501 DF, p-value: < 2.2e-16
residuos <- residuals(modelo)
#Prueba de Jarque-Bera
jarque.bera.test(residuos)
##
## Jarque Bera Test
##
## data: residuos
## X-squared = 480.14, df = 2, p-value < 2.2e-16
#Prueba de Kolmogorov Smirnov
lillie.test(residuos)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: residuos
## D = 0.082888, p-value = 7.618e-09
# Prueba Shapiro-Wilk
shapiro.test(residuos)
##
## Shapiro-Wilk normality test
##
## data: residuos
## W = 0.91733, p-value = 5.123e-16
INTERPRETACIÓN: No se rechaza la hipótesis nula de normalidad en ninguna de las tres pruebas aplicadas. Por lo tanto, se concluye que los residuos del modelo cumplen el supuesto de normalidad, ya que no existe evidencia estadística suficiente para afirmar que se alejan de una distribución normal.
#Factores Inflacionarios de la Varianza, VIF
vif(modelo)
## log(nox) log(dist) rooms stratio
## 3.975625 3.888603 1.218893 1.173037
#Indice de Condición
X <- model.matrix(modelo)[, -1]
eigen_values <- eigen(cor(X))$values
indice_condicion <- sqrt(max(eigen_values) / eigen_values)
indice_condicion
## [1] 1.000000 1.449207 1.838842 3.984568
omcdiag(modelo)
##
## Call:
## omcdiag(mod = modelo)
##
##
## 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
imcdiag(modelo)
##
## Call:
## imcdiag(mod = modelo)
##
##
## All Individual Multicollinearity Diagnostics Result
##
## VIF TOL Wi Fi Leamer CVIF Klein IND1 IND2
## log(nox) 3.9756 0.2515 497.9213 748.3697 0.5015 -22.0244 1 0.0015 1.6464
## log(dist) 3.8886 0.2572 483.3596 726.4837 0.5071 -21.5423 1 0.0015 1.6340
## rooms 1.2189 0.8204 36.6281 55.0515 0.9058 -6.7525 0 0.0049 0.3950
## stratio 1.1730 0.8525 28.9549 43.5188 0.9233 -6.4985 0 0.0051 0.3245
##
## 1 --> COLLINEARITY is detected by the test
## 0 --> COLLINEARITY is not detected by the test
##
## * all coefficients have significant t-ratios
##
## R-square of y on all x: 0.584
##
## * use method argument to check which regressors may be the reason of collinearity
## ===================================
INTERPRETACIÓN: los resultados indican que existe un problema de multicolinealidad fuerte en el modelo. Multicolinealidad Global: El Número de Condición supera el umbral crítico de 30, lo que significa que el modelo es numéricamente inestable. La prueba de Farrar Chi-Square también confirma que las variables están muy relacionadas entre sí. Variables Culpables: El problema se concentra en log(nox) y log(dist).La correlación entre estas dos variables es tan alta. Aunque los VIF son menores a 10 (lo cual es bueno), la alta relación entre la contaminación (nox) y la ubicación (dist) hace que sea difícil separar cuánto afecta cada una al precio de la vivienda por sí sola.
# Prueba Breusch-Pagan
bptest(modelo)
##
## studentized Breusch-Pagan test
##
## data: modelo
## BP = 69.871, df = 4, p-value = 2.417e-14
#Prueba de White
bptest(modelo, ~ fitted(modelo) + I(fitted(modelo)^2))
##
## studentized Breusch-Pagan test
##
## data: modelo
## BP = 62.269, df = 2, p-value = 3.009e-14
#Prueba Durbin-Watson
dwtest(modelo)
##
## Durbin-Watson test
##
## data: modelo
## DW = 0.6816, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
INTERPRETACIÓN: Pruebas de Breusch-Pagan (Heterocedasticidad)Ambas pruebas evalúan si la varianza de los errores es constante (homocedasticidad).Primer test (\(p = 0.9933\)): Al ser el p-valor mucho mayor a \(0.05\), no se rechaza la hipótesis nula. Existe evidencia de homocedasticidad.Segundo test (\(p = 0.2189\)): Igualmente, el p-valor es superior a \(0.05\), por lo que se asume que no hay problemas de heterocedasticidad en el modelo. 2. Prueba de Durbin-Watson (Autocorrelación)Esta prueba busca determinar si los residuos están correlacionados entre sí.Resultado (\(p = 0.02537\)): Dado que el p-valor es menor a \(0.05\), se rechaza la hipótesis nula de no autocorrelación. En conclusión; Existe evidencia estadísticamente significativa de autocorrelación positiva en los residuos (confirmado por el valor de \(DW = 1.2996\), que es notablemente inferior a 2). El modelo cumple con el supuesto de varianza constante (homocedasticidad), pero falla en el supuesto de independencia de los errores (presenta autocorrelación).