1.Datos a utilizar

library(datasets)
library(printr)
data("mtcars")
head(force(mtcars),n=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

1.1.Modelo Estimado

modelo_estimado<-lm(formula = mpg~disp+hp+wt+qsec,data = mtcars )
library(stargazer)
stargazer(modelo_estimado,title = "Modelo de regresión",type = "text",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.Prueba de Farrar-Glaubar(FG)

library(mctest)
mctest::omcdiag(mod = modelo_estimado)
## 
## Call:
## mctest::omcdiag(mod = modelo_estimado)
## 
## 
## 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
library(fastGraph)
shadeDist(15,ddist = "dchisq",parm1 = 4,lower.tail = FALSE)

2.2.Prueba de Factores Inflacionarios de la Varianza(VIF)

#Usando libreria "car"
library(car)
VIFs<-vif(modelo_estimado)
print(VIFs)
##     disp       hp       wt     qsec 
## 7.985439 5.166758 6.916942 3.133119
#Usando libreria "performance"
library(performance)
VIFs<-multicollinearity(modelo_estimado,verbose = FALSE)
VIFs
Term VIF VIF_CI_low VIF_CI_high SE_factor Tolerance Tolerance_CI_low Tolerance_CI_high
disp 7.985439 4.922223 13.440995 2.825852 0.1252279 0.0743993 0.2031602
hp 5.166758 3.279348 8.617036 2.273050 0.1935450 0.1160492 0.3049387
wt 6.916942 4.299228 11.611633 2.630008 0.1445726 0.0861205 0.2325999
qsec 3.133119 2.097152 5.147280 1.770062 0.3191708 0.1942774 0.4768371
plot(VIFs)

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? R//Los valores VIF de disp, hp y wt son mayores a 5, lo que indica multicolinealidad moderada entre estas variables explicativas. Aunque ninguno supera 10 (colinealidad severa), sí existe una correlación importante que puede afectar la precisión de los coeficientes. La variable qsec presenta un VIF menor a 5, por lo que no evidencia problemas relevantes de colinealidad.Por lo que implica que los coeficientes pueden volverse inestables y difíciles de interpretar, debido a que las variables explicativas están correlacionadas entre sí. Esto aumenta los errores estándar y puede hacer que variables importantes aparezcan como no significativas.

2. Observando los resultados: ¿Existe alguna variable en este modelo que parezca estar “robándole” significancia a las demás? Justifica basándote en su correlación técnica (ej. desplazamiento vs. potencia) R//Si existe, la variable que parece estar “robándole” significancia a las demás es disp (desplazamiento), ya que presenta el VIF más alto (7.985). Esto indica que es la variable con mayor grado de colinealidad dentro del modelo. Técnicamente, el desplazamiento del motor está fuertemente relacionado con la potencia (hp) y con el peso del vehículo (wt), ya que motores más grandes suelen generar más potencia y se encuentran en vehículos más pesados. Esta relación provoca que disp, hp y wt expliquen información similar sobre el consumo de combustible (mpg). Como resultado, al incluirlas juntas en el modelo, sus efectos individuales se superponen, aumentando los errores estándar y haciendo que algunas variables pierdan significancia estadística

3. ¿Qué indica el Indice de condición en este modelo? R//El Índice de Condición sugiere la presencia de multicolinealidad moderada, lo cual es consistente con los resultados del VIF. Esto significa que existe dependencia lineal entre algunas variables explicativas, especialmente entre disp, hp y wt, lo que puede afectar la estabilidad de los coeficientes y la interpretación individual de sus efectos, aunque el modelo aún puede utilizarse con precaución.

3.Diagnóstico de Normalidad de los Residuos.

options(scipen = 9999)
#Obtener residuos
library(fitdistrplus)
fit_normal<-fitdist(data  = modelo_estimado$residuals,distr ="norm")
plot(fit_normal)

summary(fit_normal)
## Fitting of the distribution ' norm ' by maximum likelihood 
## Parameters : 
##                        estimate Std. Error
## mean -0.00000000000000003122502  0.4257752
## sd    2.40854809054366647558254  0.3010683
## Loglikelihood:  -73.5348   AIC:  151.0696   BIC:  154.0011 
## Correlation matrix:
##                     mean                  sd
## mean  1.0000000000000000 -0.0000000004554131
## sd   -0.0000000004554131  1.0000000000000000

3.1.Prueba Jarque-Bera

library(tseries)
salida_JB<-jarque.bera.test(modelo_estimado$residuals)
salida_JB
## 
##  Jarque Bera Test
## 
## data:  modelo_estimado$residuals
## X-squared = 3.316, df = 2, p-value = 0.1905
library(fastGraph)
alpha_sig<-0.05
JB<-salida_JB$statistic
g1<-salida_JB$parameter
VC<-qchisq(1-alpha_sig,g1,lower.tail = TRUE)
shadeDist(JB,ddist = "dchisq",parm1 = g1,lower.tail = FALSE,xmin = 0,sub=paste("VC:",round(VC,2),"","JB:",round(JB,2)))

3.2.Prueba de Kolmogorov-Smirnov(Lilliefors)

library(nortest)
prueba_KS<-lillie.test(modelo_estimado$residuals)
prueba_KS
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo_estimado$residuals
## D = 0.11524, p-value = 0.3446

3.3.Prueba Shapiro-Wilk

SW<-shapiro.test(modelo_estimado$residuals)
print(SW)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_estimado$residuals
## W = 0.93661, p-value = 0.06004
hist(modelo_estimado$residuals,
     probability = TRUE,main = "Histograma de residuos con curva normal",xlab = "Residuos")

curve(dnorm(x, mean = mean(modelo_estimado$residuals), sd   = sd(modelo_estimado$residuals)),
      col = "red",
      lwd = 2,add = TRUE)

¿son coincidentes las pruebas en sus resultados? R//Resultados:Jarque-Bera: p ≈ 0.19,Shapiro-Wilk: p ≈ 0.06, Kolmogorov-Smirnov (Lilliefors): p ≈ 0.35. Como todos los p-values > 0.05, no se rechaza la normalidad.Por lo tanto las tres pruebas coinciden en que los residuos siguen una distribución normal

4. Análisis Crítico Final

El modelo presenta evidencia de multicolinealidad moderada, ya que los valores VIF de las variables disp, hp y wt son mayores a 5, lo que indica que comparten información y dificulta la interpretación individual de sus coeficientes. Además, el índice de condición confirma la presencia de dependencia lineal entre algunas variables explicativas. Sin embargo, las pruebas de normalidad aplicadas a los residuos son coincidentes y no rechazan la hipótesis de normalidad, por lo que este supuesto del modelo se cumple. En consecuencia, el modelo puede utilizarse para inferencia estadística, pero con precaución al interpretar los efectos individuales. Como medidas correctivas, podría considerarse eliminar una de las variables altamente correlacionadas, especialmente entre disp, hp y wt, transformar las variables o comparar modelos alternativos. También sería útil ampliar el tamaño de la muestra para mejorar la precisión de las estimaciones.