Multicolinealidad

Inestabilidad en la estimación de los coeficientes del modelo.
read.table
attach
detach
summary
lm
data.frame
library
memisc
install.packages
Author

Román Salmerón Gómez

Published

February 20, 2023

Uno de los síntomas de la existencia de multicolinealidad preocupante es la inestabilidad que puede aparecer en la estimación realizada de los coeficientes del modelo por Mínimos Cuadrados Ordinarios (MCO). Más concretamente, se tiene que ante pequeños cambios en los datos se pueden obtener importantes diferencias en las estimaciones de los coeficientes.

En efecto, consideremos los datos del post anterior de Wissel y Wooldridge y una versión suya levemente modificada (Wissel_modificado y Wooldridge_modificado):

datos1 = read.table("Wissel.txt", header=T, sep=";")
datos1p = read.table("Wissel_modificado.txt", header=T, sep=";")
datos2 = read.table("Wooldridge.txt", header=T, sep=";")
datos2p = read.table("Wooldridge_modificado.txt", header=T, sep=";")
attach(datos1)
attach(datos1p)
attach(datos2)
attach(datos2p)

Como se puede observar, sólo se han perturbado (un 1%) las variables independientes y éstas son similares entre sí:

head(data.frame(r3, r3p, r6, r6p))
    r3      r3p   r6      r6p
1 2.77 2.789787 3.02 3.142080
2 2.97 2.952947 3.43 3.473674
3 4.00 4.058474 4.32 4.450480
4 4.60 4.587403 4.68 4.732244
5 4.16 4.279239 4.33 4.368728
6 3.07 3.110012 3.50 3.533649
head(data.frame(C, Cp, I, Ip, Cr, Crp))
       C       Cp      I       Ip      Cr       Crp
1 4.7703 4.844190 4.8786 4.884150  808.23  821.7172
2 4.7784 4.813969 5.0510 5.106561  798.03  813.4705
3 4.9348 4.990679 5.3620 5.426008  806.12  820.6670
4 5.0998 5.180698 5.5585 5.671121  865.65  876.6807
5 5.2907 5.341520 5.8425 5.967979  997.30 1012.1570
6 5.4335 5.564453 6.1523 6.152176 1140.70 1158.5000

Al plantear los modelos \(\textbf{r12} = \beta_{1} + \beta_{2} \textbf{r3} + \beta_{3} \textbf{r6} + \textbf{u}\) y \(\textbf{r12} = \beta_{1} + \beta_{2} \textbf{r3p} + \beta_{3} \textbf{r6p} + \textbf{u}\) se obtienen los siguientes resultados:

modelo1 = lm(r12~r3+r6)
modelo2 = lm(r12~r3p+r6p)

library(memisc) # instalarla previamente y sólo una vez: install.packages("memisc")
mtable(modelo1, modelo2)

Calls:
modelo1: lm(formula = r12 ~ r3 + r6)
modelo2: lm(formula = r12 ~ r3p + r6p)

=======================================
                modelo1     modelo2    
---------------------------------------
  (Intercept)    0.225***    0.150**   
                (0.040)     (0.045)    
  r3            -0.629***              
                (0.066)                
  r6             1.593***              
                (0.064)                
  r3p                       -0.593***  
                            (0.074)    
  r6p                        1.561***  
                            (0.072)    
---------------------------------------
  R-squared      0.997       0.996     
  N            124         124         
=======================================
  Significance: *** = p < 0.001;   
                ** = p < 0.01;   
                * = p < 0.05  

Se observa que las estimaciones obtenidas son muy similares.

Sin embargo, al estimar los modelos \(\textbf{D} = \alpha_{1} + \alpha_{2} \textbf{C} + \alpha_{3} \textbf{I} + \alpha_{4} \textbf{Cr} + \textbf{v}\) y \(\textbf{D} = \alpha_{1} + \alpha_{2} \textbf{Cp} + \alpha_{3} \textbf{Ip} + \alpha_{4} \textbf{Crp} + \textbf{v}\), se obtienen coeficientes estimados con signos opuestos en el término constante, consumo y crédito pendiente:

modelo3 = lm(D~C+I+Cr)
modelo4 = lm(D~Cp+Ip+Crp)

mtable(modelo3, modelo4)

Calls:
modelo3: lm(formula = D ~ C + I + Cr)
modelo4: lm(formula = D ~ Cp + Ip + Crp)

===================================
               modelo3   modelo4   
-----------------------------------
  (Intercept)    5.469    -6.053   
               (13.017)  (10.462)  
  C             -4.252             
                (5.135)            
  I              3.120             
                (2.036)            
  Cr             0.003             
                (0.006)            
  Cp                       0.637   
                          (3.760)  
  Ip                       1.194   
                          (1.441)  
  Crp                     -0.000   
                          (0.006)  
-----------------------------------
  R-squared      0.923     0.918   
  N             17        17       
===================================
  Significance: *** = p < 0.001;   
                ** = p < 0.01;   
                * = p < 0.05  

Adviértase que ambos modelos han sido perturbados siguiendo el mismo patrón y en sólo uno de ellos se ha manifestado que pequeños cambios en los datos suponen cambios en las estimaciones. Por tanto, una vez más estamos sólo ante un síntoma que nos debe de poner alerta ante un posible problema de multicolinealidad preocupante, pero se ha de tener claro que:

¿Entonces?