MODELAR EL MODELO
library(mctest)
library(stargazer)
##
## Please cite as:
## Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
## R package version 5.2.3. https://CRAN.R-project.org/package=stargazer
data(mtcars)
modelo_combustible <- lm(data = mtcars, formula = mpg~disp+hp+wt+qsec)
stargazer(modelo_combustible, type = "text")
##
## ===============================================
## Dependent variable:
## ---------------------------
## mpg
## -----------------------------------------------
## disp 0.003
## (0.011)
##
## hp -0.019
## (0.016)
##
## wt -4.609***
## (1.266)
##
## qsec 0.544
## (0.466)
##
## Constant 27.330***
## (8.639)
##
## -----------------------------------------------
## Observations 32
## R2 0.835
## Adjusted R2 0.811
## Residual Std. Error 2.622 (df = 27)
## F Statistic 34.195*** (df = 4; 27)
## ===============================================
## Note: *p<0.1; **p<0.05; ***p<0.01
Diagnostico de multicolinealidad
prueba de multicolinealidad
Prueba de indice de condicion
matriz_x <- model.matrix(modelo_combustible)
matriz_xx <-t(matriz_x)%*%matriz_x
options(scipen = 999)
Sn<-solve(diag(sqrt(diag(matriz_xx))))
stargazer(Sn,type = "text")
##
## =============================
## 0.177 0 0 0 0
## 0 0.001 0 0 0
## 0 0 0.001 0 0
## 0 0 0 0.053 0
## 0 0 0 0 0.010
## -----------------------------
# Normalizar
matriz_xx_norm <- (Sn%*%matriz_xx)%*%Sn
# autovalores
autovalores <- eigen(matriz_xx_norm, symmetric = TRUE)
print(autovalores$values)
## [1] 4.721487187 0.216562203 0.050416837 0.010104757 0.001429017
#Calculo de Kapa
kapa <- sqrt(max(autovalores$values)/min(autovalores$values))
print(kapa)
## [1] 57.48052
Libreria mctest
mctest(modelo_combustible)
##
## 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
Prueba de Farrar Glaubar
Zn<-scale(matriz_x[,-1])
n2<-nrow(Zn)
R<-(t(Zn)%*%Zn)*(1/(n2-1))
stargazer(R, type ="text")
##
## ================================
## disp hp wt qsec
## --------------------------------
## disp 1 0.791 0.888 -0.434
## hp 0.791 1 0.659 -0.708
## wt 0.888 0.659 1 -0.175
## qsec -0.434 -0.708 -0.175 1
## --------------------------------
determinante_R <- det(R)
print(determinante_R)
## [1] 0.02466606
# Calculo del estadistico de prueba
m<-ncol(matriz_x[,-1])
n<-nrow(matriz_x[,-1])
chi_farrar<--(n-1-(2*m+5)/6)*log(determinante_R)
print(chi_farrar)
## [1] 106.7504
# Calculo del Valor Critico
gl = m*(m-1)/2
VC <- qchisq(p=0.95, df=gl)
print(VC)
## [1] 12.59159
# Prueba
resultado1 <- ifelse(chi_farrar>VC, "Rechazar prueba nula","No rechazar prueba nula")
print(resultado1)
## [1] "Rechazar prueba nula"
libreria psych
library(psych)
FG_test <- cortest.bartlett(matriz_x[,-1])
## R was not square, finding R from data
print(FG_test)
## $chisq
## [1] 106.7504
##
## $p.value
## [1] 0.000000000000000000009757936
##
## $df
## [1] 6
factores inflacionarios de la varianza(VIF)
inversa_R <- solve(R)
VIFs <- diag(inversa_R)
print(VIFs)
## disp hp wt qsec
## 7.985439 5.166758 6.916942 3.133119
library(performance)
VIfs_resultado <- multicollinearity(x=modelo_combustible, verbose=TRUE)
VIfs_resultado
## # 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]
REPUESTAS A PREGUNTAS
1. VIF > 5 o 10:
Cuando el VIF es mayor a 5 o 10, indica la presencia de
multicolinealidad severa, lo que implica que los coeficientes estimados
tienen varianzas infladas. Esto vuelve inestables las estimaciones,
dificultando la interpretación individual de cada variable explicativa,
ya que pequeños cambios en los datos pueden generar grandes cambios en
los coeficientes.
2. Variable que “roba significancia”:
Sí, existe evidencia de que variables como disp (desplazamiento) y
hp (potencia) están altamente correlacionadas, ya que ambas miden
características relacionadas con el tamaño y desempeño del motor. Esto
puede provocar que una variable absorba el efecto de la otra, reduciendo
su significancia estadística dentro del modelo.
3. Índice de condición:
El índice de condición mide la severidad de la multicolinealidad.
Valores mayores a 10 indican problemas moderados y mayores a 30 indican
multicolinealidad severa. Si el valor calculado es alto, sugiere que
existe dependencia lineal fuerte entre las variables explicativas.
Diagnostico de Normalidad
# Residuos
residuos <- residuals(modelo_combustible)
# Histograma
hist(residuos)

# QQ plot
qqnorm(residuos)
qqline(residuos)

# Shapiro-Wilk
shapiro.test(residuos)
##
## Shapiro-Wilk normality test
##
## data: residuos
## W = 0.93661, p-value = 0.06004
# Jarque-Bera
library(tseries)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
jarque.bera.test(residuos)
##
## Jarque Bera Test
##
## data: residuos
## X-squared = 3.316, df = 2, p-value = 0.1905
INTERPRETACION:
Si ambas pruebas (Shapiro-Wilk y Jarque-Bera) coinciden en no
rechazar la hipótesis nula, se concluye que los residuos siguen una
distribución normal. En caso contrario, existiría evidencia de no
normalidad, lo que afecta la validez de las pruebas estadísticas en
muestras pequeñas.
ANALISIS CRITICO
El modelo presenta indicios de multicolinealidad, especialmente
entre variables como desplazamiento y potencia, lo que afecta la
estabilidad de los coeficientes y dificulta su interpretación
individual. Sin embargo, si los niveles no son excesivamente altos, el
modelo aún puede ser útil para predicción. En cuanto a la normalidad, si
las pruebas realizadas confirman que los residuos se distribuyen
normalmente, se puede confiar en la validez de los intervalos de
confianza y pruebas de hipótesis. En caso de detectarse problemas, se
podrían aplicar medidas como eliminar variables altamente
correlacionadas, transformar variables (por ejemplo, logaritmos) o
aumentar el tamaño de la muestra. En general, el modelo es aceptable,
pero requiere ajustes para mejorar su robustez inferencial.