mtcars
## 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
## Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
## Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
## Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
## Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
## Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
## Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
## Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
## Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
## Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
## Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
## Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
## Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
## AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
## Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
## Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
## Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
## Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
## Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
## Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
## Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
## Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
## Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
library(stargazer)
modelo_estimado<-lm(mpg~disp+hp+wt+qsec, data = mtcars)
stargazer(modelo_estimado, title = "Consumo de Conbustible", type="text")
##
## Consumo de Conbustible
## ===============================================
## 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
library(stargazer)
x_mat<-model.matrix(modelo_estimado)
stargazer(head(x_mat, n=6), type = "text")
##
## ===================================================
## (Intercept) disp hp wt qsec
## ---------------------------------------------------
## Mazda RX4 1 160 110 2.620 16.460
## Mazda RX4 Wag 1 160 110 2.875 17.020
## Datsun 710 1 108 93 2.320 18.610
## Hornet 4 Drive 1 258 110 3.215 19.440
## Hornet Sportabout 1 360 175 3.440 17.020
## Valiant 1 225 105 3.460 20.220
## ---------------------------------------------------
xx_matrix<-t(x_mat) %*% x_mat
stargazer(xx_matrix, type = "text")
##
## ==========================================================================
## (Intercept) disp hp wt qsec
## --------------------------------------------------------------------------
## (Intercept) 32 7,383.100 4,694 102.952 571.160
## disp 7,383.100 2,179,627.000 1,291,364.000 27,091.490 128,801.500
## hp 4,694 1,291,364.000 834,278 16,471.740 81,092.160
## wt 102.952 27,091.490 16,471.740 360.901 1,828.095
## qsec 571.160 128,801.500 81,092.160 1,828.095 10,293.480
## --------------------------------------------------------------------------
library(stargazer)
options(scipen = 9999)
Sn<-solve(diag(sqrt(diag(xx_matrix))))
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
## -----------------------------
X^tX Normalizada: Calcular la Matriz Normalizada
library(stargazer)
xx_norm<-(Sn%*%xx_matrix)%*%Sn
stargazer(xx_norm, type = "text", digits = 4)
##
## ==================================
## 1 0.8840 0.9085 0.9580 0.9952
## 0.8840 1 0.9576 0.9659 0.8599
## 0.9085 0.9576 1 0.9493 0.8751
## 0.9580 0.9659 0.9493 1 0.9485
## 0.9952 0.8599 0.8751 0.9485 1
## ----------------------------------
Autovalores de X^tX
library(stargazer)
#autovalores
lamdas<-eigen(xx_norm, symmetric = TRUE)
stargazer(lamdas$values, type = "text")
##
## =============================
## 4.721 0.217 0.050 0.010 0.001
## -----------------------------
CALCULO DE K(X)=√(λmax/λmin)
k<-sqrt(max(lamdas$values)/min(lamdas$values))
print(k)
## [1] 57.48052
INTERPRETACION Comoκ(x) es de 57.48 mayor o igual a 20, la multicolinealidad es severa, y se considera un problema para el modelo ya que hay correlacion entre las varibales.
En el caso de que κ(x)≥30 la multicolinealidad es severa.
Calculo del indice de condicion utilizando la libreria mctest
library(mctest)
x_mat<-model.matrix(modelo_estimado)
mctest(mod = modelo_estimado)
##
## 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 puede observar donde dice “condition Number” es el indice y podemos concluir que: * Como k(x)>=30 con un valor de 57.48 la multicolinealidad es muy severa considera un problema para seguir ana,izando el modelo.
Calculo del Indice de Condicion usando la libreria “Otsrr”.
library(olsrr)
ols_eigen_cindex(model=modelo_estimado)
## 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
CALCULO MANUAL PARA REALIZAR LA PRUEBA DE FARRAR-GLAUBAR Caculo lRl
library(stargazer)
Zn<-scale(x_mat[, -1])
stargazer(head(Zn, n=6), type = "text")
##
## =============================================
## disp hp wt qsec
## ---------------------------------------------
## Mazda RX4 -0.571 -0.535 -0.610 -0.777
## Mazda RX4 Wag -0.571 -0.535 -0.350 -0.464
## Datsun 710 -0.990 -0.783 -0.917 0.426
## Hornet 4 Drive 0.220 -0.535 -0.002 0.890
## Hornet Sportabout 1.043 0.413 0.228 -0.464
## Valiant -0.046 -0.608 0.248 1.327
## ---------------------------------------------
Calcular la Matriz R
library(stargazer)
n<-nrow(Zn)
R<-(t(Zn)%*%Zn)*(1/(n-1))
stargazer(R, type = "text", digits = 4)
##
## ====================================
## disp hp wt qsec
## ------------------------------------
## disp 1 0.7909 0.8880 -0.4337
## hp 0.7909 1 0.6587 -0.7082
## wt 0.8880 0.6587 1 -0.1747
## qsec -0.4337 -0.7082 -0.1747 1
## ------------------------------------
Calcular lRl
determinante_R<-det(R)
print(determinante_R)
## [1] 0.02466606
Aplicando la prueba de Farrer Glaubar (Barlett)
m<-ncol(x_mat[, -1])
n<-nrow(x_mat[, -1])
chi_FG<--(n-1-(2*m+5)/6)*log(determinante_R)
print(chi_FG)
## [1] 106.7504
Encontrar el valor critico V.C.
gl<-m*(m-1)/2
VC<-qchisq(p=0.95, df=gl)
print(VC)
## [1] 12.59159
Regla de desicion: Como X^2FG es de 106.7504 >= que el valor critico de 12.59159 se rechaza H0, por lo tanto hay evidencia de colinealidad en los regresores.
** Calculando del estadistico utilizando la libreria “mctest and pysich”**
Calculo de FG usando mctest
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
y nuevamente tenemos que el Chi-Square es de 57.4805 superior al valor critico de 7.8 encontrado por lo tanto se detecta como bien lo dice el diagnostico colinealidad en el modelo.
Calculo de FG usando la pysych
library(psych)
FG_test<-cortest.bartlett(x_mat[, -1])
print(FG_test)
## $chisq
## [1] 106.7504
##
## $p.value
## [1] 0.000000000000000000009757936
##
## $df
## [1] 6
Nuevamente se confirma que es de 106.7504 el estadistico FG
Calculo de los VIF’S usando “performance”
library(performance)
## Warning: package 'performance' was built under R version 4.5.3
VIFs<-multicollinearity (x=modelo_estimado, verbase=FALSE)
VIFs
## # 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(VIFs)
INTERPRETACION Si para este modelo se define que el
VIF<=2 la variable disp=7.99, la variable hp=5.17, la variable
wt=6.92 y la variable qsec=3.13. Se concluye que si hay correlacion
entre las variables y por ende el problema de multicolinealidad
Cálculo de los VIF’s usando “car”
library(car)
VIFs_car<-vif(modelo_estimado)
print(VIFs_car)
## disp hp wt qsec
## 7.985439 5.166758 6.916942 3.133119
**Calculo de los VIF’S usando la libreria mctes
library(mctest)
mc.plot(mod=modelo_estimado, vif=2)
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? 2 Si el VIF es mayor a 5 o 10 Significa que existe una alta correlacion entre las variables e implica que los parameteros no se pueden interpretar de manera independiente ya que dependen de esa correlacion entre variables y resulta confuso interpretarlas ya que no preciso la prieba de este supuesto
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). Si para este modelo se define que el VIF<=2 la variable disp=7.99, la variable hp=5.17, la variable wt=6.92 y la variable qsec=3.13. Se concluye que si hay correlacion entre las variables y por ende el problema de multicolinealidad. Para este modelo todas las variables tienen relacion fuerte entre si ya que altos los vif’s mayor a 5.
3. ¿Qué indica el Indice de condición en este modelo? Comoκ(x) es de 57.48 mayor a 20, la multicolinealidad es severa, y se considera un problema para el modelo ya que hay correlacion entre las varibales.
Se concluye que κ(x)≥30 la multicolinealidad es severa.