GUÍA DE LABORATORIO: DIAGNÓSTICO DE SUPUESTOS

1. CARGA DE DATOS Y ESTIMACIÓN DEL MODELO

library(datasets)
library(printr)

data(mtcars)
head(mtcars, 5)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2

Modelo:

mpg = β0 + β1(disp) + β2(hp) + β3(wt) + β4(qsec) + ε

modelo <- lm(mpg ~ disp + hp + wt + qsec, data = mtcars)

library(stargazer)
stargazer(modelo, title = "Modelo de Regresión", type = "html", digits = 4)
Modelo de Regresión
Dependent variable:
mpg
disp 0.0027
(0.0107)
hp -0.0187
(0.0156)
wt -4.6091***
(1.2659)
qsec 0.5442
(0.4665)
Constant 27.3296***
(8.6390)
Observations 32
R2 0.8351
Adjusted R2 0.8107
Residual Std. Error 2.6221 (df = 27)
F Statistic 34.1949*** (df = 4; 27)
Note: p<0.1; p<0.05; p<0.01

2. DIAGNÓSTICO DE MULTICOLINEALIDAD

2.1 FACTORES INFLACIONARIOS DE LA VARIANZA (VIF)

library(car)

vif_valores <- vif(modelo)
vif_valores
##     disp       hp       wt     qsec 
## 7.985439 5.166758 6.916942 3.133119

Gráfico VIF

barplot(vif_valores,
        main = "Factores Inflacionarios de la Varianza (VIF)",
        ylab = "Valor VIF")

abline(h = 5, lty = 2)
abline(h = 10, lty = 2)

Los valores de VIF muestran evidencia de multicolinealidad moderada en el modelo, ya que algunos regresores presentan valores superiores a 5. Esto puede afectar la precisión de los coeficientes estimados.

2.2 ÍNDICE DE CONDICIÓN

library(olsrr)

col_diag <- ols_coll_diag(modelo)
col_diag
## 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 índice de condición presenta un valor máximo de 57.48, lo cual supera ampliamente el umbral crítico de 30. Esto indica la presencia de multicolinealidad severa entre las variables explicativas del modelo

2.3 PRUEBA DE FARRAR-GRAUBER

library(mctest)

fg <- imcdiag(modelo)
fg
## 
## Call:
## imcdiag(mod = modelo)
## 
## 
## All Individual Multicollinearity Diagnostics Result
## 
##         VIF    TOL      Wi       Fi Leamer    CVIF Klein   IND1   IND2
## disp 7.9854 0.1252 65.1974 101.2889 0.3539 -1.0541     1 0.0134 1.0875
## hp   5.1668 0.1935 38.8897  60.4180 0.4399 -0.6820     0 0.0207 1.0026
## wt   6.9169 0.1446 55.2248  85.7957 0.3802 -0.9130     1 0.0155 1.0635
## qsec 3.1331 0.3192 19.9091  30.9302 0.5650 -0.4136     0 0.0342 0.8464
## 
## 1 --> COLLINEARITY is detected by the test 
## 0 --> COLLINEARITY is not detected by the test
## 
## disp , hp , qsec , coefficient(s) are non-significant may be due to multicollinearity
## 
## R-square of y on all x: 0.8351 
## 
## * use method argument to check which regressors may be the reason of collinearity
## ===================================

La prueba de Farrar-Glauber detecta explícitamente la presencia de multicolinealidad en el modelo. Esto sugiere que existe una alta correlación entre variables explicativas como disp, hp y wt, lo cual puede afectar la precisión de los coeficientes estimados y su significancia estadística.

Gráfico ilustrativo FG

library(fastGraph)

shadeDist(15,
          ddist = "dchisq",
          parm1 = 4,
          col = c("black", "red"),
          lower.tail = FALSE)

3. NORMALIDAD DE LOS RESIDUOS

residuos <- residuals(modelo)

3.1 PRUEBA JARQUE-BERA

library(tseries)

jb <- jarque.bera.test(residuos)
jb
## 
##  Jarque Bera Test
## 
## data:  residuos
## X-squared = 3.316, df = 2, p-value = 0.1905

No se rechaza la hipótesis nula de normalidad, ya que el p-value es mayor a 0.05. Por lo tanto, los residuos siguen una distribución normal.

3.2 PRUEBA KOLMOGOROV-SMIRNOV (LILLIEFORS)

library(nortest)

ks <- lillie.test(residuos)
ks
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  residuos
## D = 0.11524, p-value = 0.3446

No se rechaza la hipótesis nula de normalidad, dado que el p-value es mayor a 0.05, lo que indica que los residuos pueden considerarse normalmente distribuidos.

3.3 PRUEBA SHAPIRO-WILK

sw <- shapiro.test(residuos)
sw
## 
##  Shapiro-Wilk normality test
## 
## data:  residuos
## W = 0.93661, p-value = 0.06004

No se rechaza la hipótesis nula de normalidad, ya que el p-value es mayor a 0.05. En consecuencia, los residuos siguen una distribución normal.

4. GRÁFICOS DE NORMALIDAD

Histograma

hist(residuos,
     probability = TRUE,
     main = "Histograma de residuos",
     xlab = "Residuos")

curve(dnorm(x, mean(residuos), sd(residuos)),
      add = TRUE)

QQ Plot

qqnorm(residuos)
qqline(residuos, col = "red")

5. RESULTADOS TABULARES

resultados <- data.frame(
  Prueba = c("Jarque-Bera", "Kolmogorov-Smirnov", "Shapiro-Wilk"),
  Estadistico = c(jb$statistic, ks$statistic, sw$statistic),
  p_value = c(jb$p.value, ks$p.value, sw$p.value)
)

resultados
Prueba Estadistico p_value
X-squared Jarque-Bera 3.3159574 0.1905237
D Kolmogorov-Smirnov 0.1152384 0.3445667
W Shapiro-Wilk 0.9366138 0.0600389

Los resultados de las pruebas de normalidad (Jarque-Bera, Kolmogorov-Smirnov y Shapiro-Wilk) presentan p-values mayores a 0.05. Por lo tanto, no se rechaza la hipótesis nula de normalidad, lo que indica que los residuos del modelo pueden considerarse aproximadamente normales.

6. CONCLUSIÓN

El modelo presenta limitaciones importantes para la inferencia estadística debido a la presencia de multicolinealidad severa entre las variables explicativas, lo cual afecta negativamente la precisión de los coeficientes estimados, incrementa sus errores estándar y dificulta la correcta interpretación de los efectos individuales, esto lleva a conclusiones erróneas sobre la significancia de las variables, aun cuando el modelo en conjunto sea estadísticamente significativo, por otro lado, las pruebas de normalidad aplicadas a los residuos indican que estos siguen aproximadamente una distribución normal, lo que respalda parcialmente la validez de las pruebas t y F, sin embargo, el cumplimiento de este supuesto no compensa los problemas derivados de la alta correlación entre regresores, en consecuencia, el modelo no es completamente confiable para realizar inferencias sin ajustes adicionales. Como medidas correctivas, se recomienda eliminar o combinar variables altamente correlacionadas, aplicar transformaciones a los datos o emplear métodos alternativos como regresión ridge o análisis de componentes principales, asimismo, aumentar el tamaño de la muestra podría mejorar la estabilidad de las estimaciones.