set.seed(2024)
obs = 50
cte = rep(1, obs)
z = rnorm(obs, 5, 0.1)
v = rnorm(obs, -3, 4)
w = v + rnorm(obs, 1, 0.5)Cuando cualquier docente en Econometría explica los contenidos referentes a la multicolinealidad, debería dejar claras un par de ideas:
Por un lado, cuando se trabaja con datos reales, siempre existirá cierto grado de multicolinealidad (que habrá que determinar si es preocupante) y nunca habrán relaciones lineales perfectas entre las variables indpendientes del modelo (a no ser que se meta la pata especificando el modelo).
Por otro, no se cuentan con pruebas estadísticas (como si ocurre cuando se trabaja con la heterocedasticidad o autocorrelación) que permitan rechazar (o no) una hipótesis nula que haga referencia a que la multicolinealidad existente es preocupante, sino que se cuentan con unos umbrales que determinan la clasificación de la multicolinealidad existente en preocupante o no preocupante.
Bueno, realmente sí existe un contraste sobre multicolinealidad, el de Farrar y Glauber, pero ha recibido fuertes críticas (que compartimos) desde su publicación en 1967. Básicamente, este contraste determina si las variables no son ortogonales sin dar información sobre si el grado de multicolinealidad existente es problemático.
En definitiva, desarrollar una prueba estadística que determine si la multicolinealidad (que sabemos que siempre existe) es preocupante es un gap en la literatura relevante.
Esta es la motivación de nuestro último trabajo publicado bajo el título “rvif: a Decision Rule to Detect Troubling Statistical Multicollinearity Based on Redefined VIF” (https://journal.r-project.org/articles/RJ-2025-040/) publicado en The R Journal.
Dicho trabajo se basa en la redefinición del Factor de Inflación de la Varianza (ver https://doi.org/10.1007/s10614-024-10575-8 para más detalles) ya tratada previamente en nuestro blog en el post A Redefined Variance Inflation Factor. Es más, los avances alcanzados con la publicación de este trabajo ha supuesto la mejora del paquete rvif de R.
La primera aportación relevante que se realiza en el trabajo es la de determinar cuándo el grado de multicolinealidad existente en el modelo de regresión lineal es preocupante: se considera que la multicolinealidad es preocupante cuando afecta al análisis estadístico del modelo, es decir, cuando las decisiones tomadas a partir de los contrastes de significación individual se ven afectadas por el grado de multicolinealidad.
Y, desde un punto de vista cuantitativo, se considera que esto ocurre cuando la hipótesis nula de los contrastes de significación individual no se rechaza cuando se tienen en cuenta las relaciones lineales (modelo original), pero sí se rechaza cuando no se tienen en cuenta (modelo ortonormal tomado de referencia que conduce a la redefinición del Factor de Inflación de la Varianza). En este caso, cabe concluir que las relaciones lineales influyen en el análisis estadístico del modelo.
Esta definición de multicolinealidad preocupante conduce a la segunda aportación, que es el siguiente resultado:
Teorema. Dado el modelo de regresión lineal múltiple \(\mathbf{y} = \mathbf{X} \cdot \boldsymbol{\beta} + \mathbf{u}\) para \(n\) observaciones y \(k\) variables independientes, donde \(\mathbf{u}\) es la perturbación aleatoria que se presupone esférica y con varianza igual a \(\sigma^{2}\), el grado de multicolinealidad existente afecta a su análisis estadístico al nivel de significación del \(\alpha\)%, si existe una variable \(i\), con \(i=1,\dots,k\), que verifica que \(RVIF(i) > max \{c_{0}(i), c_{3}(i) \}\) donde: \[c_{0}(i) = \left( \frac{\widehat{\beta}_{i}}{\widehat{\sigma} \cdot t_{n-k}(1-\alpha/2)} \right)^{2},\] \[c_{3}(i) = \left( \frac{t_{n-k}(1-\alpha/2)}{\widehat{\beta}_{i,o}} \right)^{2} \cdot \widehat{var} \left( \widehat{\beta}_{i} \right),\] siendo \(\widehat{\beta}_{i}\) y \(\widehat{\beta}_{i,o}\) las estimaciones del coeficiente \(\beta_{i}\) en el modelo original y ortonormal, \(t_{n-k}(1-\alpha/2)\) el punto de una t de Student con \(n-k\) grados de libertad que deja por debajo suya una probabilidad \(1-\alpha/2\) y \(\widehat{var} \left( \widehat{\beta}_{i} \right)\) la estimación de la varianza de \(\widehat{\beta}_{i}\).
A modo de ejemplo, a continuación se generan tres variables \(\mathbf{z}\), \(\mathbf{v}\) y \(\mathbf{w}\) tales que la primera está fuertemente relacionada con la constante y la segunda y tercera están fuertemente relacionadas (linealmente) entre sí:
A continuación, al igual que en el post sobre Enlarging of the sample to address multicollinearity, se genera una variable dependiente como \(\mathbf{y} = 3 + 4 \cdot \mathbf{z} - 5 \cdot \mathbf{v} - 2 \cdot \mathbf{w} + \mathbf{u}\), donde \(\mathbf{u}\) se distribuye según una normal de media 0 y varianza 2. El realizar la correspondiente estimación del modelo planteado se obtienen los siguientes resultados:
u = rnorm(obs, 0, 2)
y = 3 + 4*z - 5*v - 2*w + u
reg = lm(y~z+v+w)
summary(reg)
Call:
lm(formula = y ~ z + v + w)
Residuals:
Min 1Q Median 3Q Max
-5.5621 -1.2720 -0.0077 1.2600 4.5086
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 35.2603 14.0770 2.505 0.01586 *
z -2.4029 2.8337 -0.848 0.40085
v -5.1658 0.6240 -8.279 1.15e-10 ***
w -1.8400 0.6417 -2.867 0.00623 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 2.081 on 46 degrees of freedom
Multiple R-squared: 0.9947, Adjusted R-squared: 0.9943
F-statistic: 2865 on 3 and 46 DF, p-value: < 2.2e-16
Se observa que las estimaciones de las variables \(\mathbf{v}\) y \(\mathbf{w}\) son muy próximas a las verdaderas (y significativamente distintas de cero) pero las de la constante y la variable \(\mathbf{z}\) difieren mucho de la realidad (incluso la estimación de la constante es significativamente distinta de cero). Esta situación hace pensar que el grado de multicolinealidad esta afectando al análisis del modelo, pero, ¿lo está haciendo a su análisis estadístico?
Usando el comando multicollinearity del paquete rvif se obtienen los resultados que permiten aplicar el Teorema presentado anteriormente:
library(rvif)
multicollinearity(y, model.matrix(reg)) RVIFs c0 c3 Scenario Affects
1 45.75056570 70.8444011 0.007909221 a.1 No
2 1.85393974 0.3290110 1.659082660 b.1 Yes
3 0.08989679 1.5206009 0.000042436 a.1 No
4 0.09506613 0.1929152 0.046847365 a.1 No
En este caso se observa que el grado de multicolinealidad está afectando al contraste de significación individual de la variable \(\mathbf{z}\), luego se ha de considerar que es preocupante y tomar medidas al respecto.
Como futura línea de trabajo sería interesante analizar cuándo el grado de multicolinealidad existente afecta al análisis numérico del modelo, es decir, cuándo afecta a las estimaciones obtenidas por el método de mínimos cuadrados ordinarios. En el ejemplo considerado es evidente ya que se conocen los valores reales de los coeficientes, pero, ¿y si no se conocen?
Finalmente:
Destacar que además del artículo original, existe una versión inicial en arXiv: Overcoming the inconsistences of the variance inflation factor: a redefined VIF and a test to detect statistical troubling multicollinearity.
Este trabajo ha sido apoyado por el proyecto PP2019-EI-02 de la Universidad de Granada y por el proyecto A-SEJ-496-UGR20 de la Consejería de Transformación Económica, Información, Industria, Conocimiento y Universidades de la Junta de Andalucía.