mtcarsdata(mtcars)
head(mtcars, n = 10)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
## Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
## Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
## Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
## Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
modelo <- lm(mpg ~ disp + hp + wt + qsec, data = mtcars)
summary(modelo)
##
## Call:
## lm(formula = mpg ~ disp + hp + wt + qsec, data = mtcars)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.8664 -1.5819 -0.3788 1.1712 5.6468
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 27.329638 8.639032 3.164 0.00383 **
## disp 0.002666 0.010738 0.248 0.80576
## hp -0.018666 0.015613 -1.196 0.24227
## wt -4.609123 1.265851 -3.641 0.00113 **
## qsec 0.544160 0.466493 1.166 0.25362
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.622 on 27 degrees of freedom
## Multiple R-squared: 0.8351, Adjusted R-squared: 0.8107
## F-statistic: 34.19 on 4 and 27 DF, p-value: 0.0000000003311
mctestlibrary(mctest)
mctest(mod = modelo)
##
## 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.0247 0
## Farrar Chi-Square: 106.7504 1
## Red Indicator: 0.6542 1
## Sum of Lambda Inverse: 23.2023 1
## Theil's Method: 0.7121 1
## Condition Number: 57.4805 1
##
## 1 --> COLLINEARITY is detected by the test
## 0 --> COLLINEARITY is not detected by the test
Como se observa, el Indice de Condición es de 57.4805 (\(κ(x)=57.4805\)), como \(κ(x)>30\) se considera que la colinealidad es severa.
olsrrlibrary(olsrr)
ols_coll_diag(modelo)
## Tolerance and Variance Inflation Factor
## ---------------------------------------
## Variables Tolerance VIF
## 1 disp 0.1252279 7.985439
## 2 hp 0.1935450 5.166758
## 3 wt 0.1445726 6.916942
## 4 qsec 0.3191708 3.133119
##
##
## Eigenvalue and Condition Index
## ------------------------------
## Eigenvalue Condition Index intercept disp hp wt
## 1 4.721487187 1.000000 0.000123237 0.001132468 0.001413094 0.0005253393
## 2 0.216562203 4.669260 0.002617424 0.036811051 0.027751289 0.0002096014
## 3 0.050416837 9.677242 0.001656551 0.120881424 0.392366164 0.0377028008
## 4 0.010104757 21.616057 0.025805998 0.777260487 0.059594623 0.7017528428
## 5 0.001429017 57.480524 0.969796790 0.063914571 0.518874831 0.2598094157
## qsec
## 1 0.0001277169
## 2 0.0046789491
## 3 0.0001952599
## 4 0.0024577686
## 5 0.9925403056
El resultado es convergente con el dado por el test de
mctest, ya que el Índice de Condición es de 57.4805, lo que
indica, nuevamente, una colinealidad severa.
Las hipótesis de la prueba de Farrar-Glaubar son:
Regla de decisión:
psychlibrary(psych)
Mat_X <- model.matrix(modelo)
fg_test <- cortest.bartlett(Mat_X[, -1])
fg_test
## $chisq
## [1] 106.7504
##
## $p.value
## [1] 0.000000000000000000009757936
##
## $df
## [1] 6
Como se observa, \(p = 0.000000000000000000009757936\), se rechaza \(H_0\), hay colinealidad entre las variables regresoras.
carlibrary(car)
vif_car <- vif(modelo)
print(vif_car)
## disp hp wt qsec
## 7.985439 5.166758 6.916942 3.133119
mctestlibrary(mctest)
mc.plot(modelo, type = "vif", vif = 5)
##### 1.4.3. VIF con
performance
library(performance)
vif_performance <- check_collinearity(modelo)
print(vif_performance)
## # Check for Multicollinearity
##
## Low Correlation
##
## Term VIF VIF 95% CI adj. VIF Tolerance Tolerance 95% CI
## qsec 3.13 [2.10, 5.15] 1.77 0.32 [0.19, 0.48]
##
## Moderate Correlation
##
## Term VIF VIF 95% CI adj. VIF Tolerance Tolerance 95% CI
## disp 7.99 [4.92, 13.44] 2.83 0.13 [0.07, 0.20]
## hp 5.17 [3.28, 8.62] 2.27 0.19 [0.12, 0.30]
## wt 6.92 [4.30, 11.61] 2.63 0.14 [0.09, 0.23]
plot(vif_performance)
disp y
wtsuperan el umbral de 5, lo que indica que estas dos
variable comparten demasiada información.hp esta justo por encima del límite
aceptable, lo que también sugiere que podría estar contribuyendo a la
colinealidad del modelo.qsec.Preguntas de reflexión:
1. Si el valor de VIF es mayor a 5 o 10, ¿Qué implica esto
para la interpretación de los coeficientes?
Respuesta: Implica, si es mayor a 5, que los
coeficientes son poco precisos, se debe ser cauteloso al momento de
interpretar estos coeficientes. Si es mayor que 10, esto implica que los
resultados son poco fiables y su interpretación es para nada
precisa.
2. ¿Existe alguna variable en este modelo que parezca estas
“robándole” significancia a las demás?
Respuesta: Existe una relación entre el desplazamiento
disp y el peso wt. El desplazamiento es
inversamente proporcional al peso del vehículo.
Prueba de Normalidad Jarque-Bera utilizando la librería
tseries.
library(tseries)
jb_test <- jarque.bera.test(modelo$residuals)
jb_test
##
## Jarque Bera Test
##
## data: modelo$residuals
## X-squared = 3.316, df = 2, p-value = 0.1905
La regla de decisión para esta prueba es la siguiente:
Rechazar \(H_0\) si \(p\leq\alpha\).
Como \(p=0.019\leq\alpha=0.05\), se rechaza \(H_0\). Los residuos NO siguen una
distribución normal.
Prueba de normalidad utilizando la librería nortest.
library(nortest)
ks_test <- lillie.test(modelo$residuals)
ks_test
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: modelo$residuals
## D = 0.11524, p-value = 0.3446
La regla de decisión para esta prueba es la siguiente:
Rechazar \(H_0\) si \(p\leq\alpha\).
En este
caso, como \(p=0.3446\geq\alpha=0.05\),
no se rechaza \(H_0\). Los residuos
siguen una distribución normal.
Prueba de normalidad utilizando la librería stats,
cargada por defecto al iniciar RStudio.
sw_test <- shapiro.test(modelo$residuals)
sw_test
##
## Shapiro-Wilk normality test
##
## data: modelo$residuals
## W = 0.93661, p-value = 0.06004
La regla de decisión para esta prueba es la siguiente:
Rechazar \(H_0\) si \(p\leq\alpha\).
En este
caso, como \(p=0.0634\geq\alpha=0.05\),
se rechaza \(H_0\). Los residuos siguen
una distribución normal.
Se presenta una contradicción con la
prueba de Jarque-Bera, pero el resultado es convergente con la prueba de
Kolgomorov-Smirnov.
Las pruebas presentan resultados divergentes si se asume una significancia del 5 % (\(\alpha=0.05\)). Pero se preferirá reconocer el resultado de la prueba de Shapiro-Wilk por el tamaño de la muestra (32 observaciones).