1. Carga de Datos
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
  1. Estimacion del Modelo
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
  1. Diagnostico de Multicolinealidad Calculo Manual
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.