Factor de inflación de varianza en Python

Zeeshan Afridi 21 junio 2023
  1. Factor de inflación de varianza en Python
  2. Desempeño de VIF en la detección de observaciones influyentes
  3. Calcule el factor de inflación de varianza (VIF) en Python
Factor de inflación de varianza en Python

Este artículo describe el factor de inflación de varianza (VIF) y su desempeño en la detección de observaciones influyentes y demuestra cómo podemos usar modelos estadísticos para usar VIF en Python.

Factor de inflación de varianza en Python

El factor de inflación de varianza (VIF) mide la cantidad de colinealidad entre las variables predictoras en un modelo de regresión múltiple. Y se calcula como la relación entre la varianza de la variable predictora dada y la varianza de los residuos.

Un factor de inflación de varianza de 1 indica que no hay colinealidad. Por el contrario, un VIF más significativo que 1 sugiere que existe colinealidad. El VIF se puede utilizar para evaluar si se justifica la inclusión de una determinada variable predictora en un modelo de regresión múltiple.

Si el VIF para un predictor dado es alto, puede indicar que el predictor es redundante con otros predictores en el modelo. También podemos quitarlo sin que afecte al ajuste del modelo.

El factor de inflación de la varianza (VIF) apropiado dependerá del contexto específico y del conjunto de datos. Sin embargo, en general, el VIF puede ser una herramienta valiosa para identificar problemas potenciales con la multicolinealidad en sus datos.

Desempeño de VIF en la detección de observaciones influyentes

Hay varias formas de detectar observaciones influyentes en un análisis de regresión. Un método estándar es calcular el factor de inflación de la varianza (VIF).

El VIF mide la cantidad de variación en un predictor debido a la colinealidad con otros predictores en el modelo. Un VIF alto indica que otros predictores influyen mucho en el predictor del modelo.

Entonces, un modelo de regresión puede calcular el VIF para cada predictor. Un VIF de 1 indica que ningún otro predictor influye en el predictor del modelo.

Un VIF más significativo que 1 sugiere que otros predictores influyen en el predictor del modelo. El VIF es especialmente útil para detectar colinealidad entre predictores categóricos.

El VIF puede identificar qué predictores son más influyentes en un modelo de regresión. Sin embargo, es obligatorio recordar que el VIF es solo una medida de colinealidad y no necesariamente indica que un predictor sea esencial en el modelo.

Calcule el factor de inflación de varianza (VIF) en Python

Para usar el VIF en Python, podemos usar la biblioteca statsmodels. Primero, el VIF se calcula utilizando la clase linear_model.LinearRegression.

Primero ajustamos un modelo de regresión lineal a nuestros datos y luego creamos un nuevo modelo de regresión lineal con el término de interacción. Después de eso, comparamos los dos modelos calculando el VIF para cada modelo.

El modelo con el término de interacción incluido tendrá un VIF más alto, lo que indica que el término de interacción está causando multicolinealidad. El VIF se calcula para cada variable predictora en el modelo y luego se usa para determinar el ajuste general del modelo.

El VIF se puede calcular utilizando la siguiente fórmula:

VIF = \frac{1}{(1-R^{2})}

Aquí R^2 es el coeficiente de determinación de la variable predictora.

El VIF se usa típicamente para evaluar la multicolinealidad en un modelo de regresión lineal. Sin embargo, también podemos usarlo en otros modelos de regresión, como la regresión logística y la regresión de Poisson.

El VIF se puede utilizar para evaluar el ajuste general del modelo y para identificar variables predictoras. Y las variables predictoras están altamente correlacionadas con otras variables predictoras en el modelo.

En estadística, cada punto de datos tiene un error denominado varianza. Sin embargo, el conflicto de un conjunto de datos no es la mejor medida de cuán variable es el conjunto de datos.

El factor de inflación de la varianza (VIF) es una medida estadística de los efectos de la multicolinealidad en un análisis de regresión. VIF = (λ 1 / λ 2 ) – 1, donde λ 1 es el VIF de una variable en un modelo de regresión, y λ 2 es el VIF de la variable en el segundo modelo de regresión.

VIF > 10 indica multicolinealidad entre las variables independientes. Aprendamos VIF a través del ejemplo de código de Python a continuación:

Código de ejemplo:

import numpy as np
import pandas as pd
import seaborn as sns
import statsmodels.api as sm
import statsmodels.tools.tools as smt
import statsmodels.stats.outliers_influence as smo

hp = sm.datasets.get_rdataset(dataname="HousePrices", package="AER", cache=True).data
print(hp.iloc[:, 0:5].head(3))

ivar = hp.iloc[:, 1:5]
print(ivar.head(3))

ivarc = smt.add_constant(data=ivar, prepend=False)
vif_lotsize = smo.variance_inflation_factor(exog=ivarc.values, exog_idx=0)
print(vif_lotsize)

Producción :

   price     lotsize  bedrooms    bathrooms  stories
0  42000.0     5850         3          1        2
1  38500.0     4000         2          1        1
2  49500.0     3060         3          1        1
   lotsize  bedrooms  bathrooms  stories
0     5850         3          1        2
1     4000         2          1        1
2     3060         3          1        1
1.047054041442195

Como hemos aprendido, existen numerosas calculadoras VIF disponibles. Además, VIF es una de las muchas métricas que pueden ayudarlo a comprender la relación entre dos variables.

Es esencial saber que VIF es un concepto práctico más que teórico. Es el valor VIF el que determina si la multicolinealidad es un problema.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn