Multicolinealidad en Datos

La variable debe tener una relación robusta con las variables independientes. Sin embargo, cualquier variable imparcial no debería tener correlaciones sólidas entre otras variables independientes. La colinealidad puede ser una afiliación lineal entre variables explicativas. Dos variables son perfectamente colineales si existe una relación lineal particular entre ellas. 
La multicolinealidad se refiere a una situación en alguna etapa en la que dos o más variables explicativas en el curso de un modelo de correlación múltiple están bastante linealmente relacionadas. Tenemos multicolinealidad perfecta si la correlación entre variables imparciales es buena a 1 o -1. En la práctica, no solemos enfrentarnos a una multicolinealidad ideal durante la duración de un conjunto de información. Más comúnmente, la dificultad de la multicolinealidad surge cuando hay un cortejo aproximadamente lineal entre dos o más variables imparciales. 
En palabras sencillas, la multicolinealidad se puede definir como un evento en el que una o más de las variables imparciales están fuertemente correlacionadas entre sí. En tales incidentes, generalmente deberíamos usar solo uno en cada variable imparcial correlacionada.
VIF (factor de inflación de varianza) es un sello distintivo de la vida de la multicolinealidad, y statsmodel presenta una característica para calcular el VIF para cada variable experimental y un valor superior a 10 es la regla general para los posibles estilos de vida de alta multicolinealidad. El principio rector excelente para el precio VIF es el siguiente, VIF = 1 de manera que no existe correlación, VIF> 1, pero <5 entonces existe correlación.  
 

$V F_{i}=1 / 1-R_{i}^{2}$ where $\mathrm{R}^{2}$ is the coefficient of determination of variable.
 

¿Qué causa la multicolinealidad? 
Los principales tipos son: 

  • Multicolinealidad basada en datos: como resultado de experimentos mal diseñados, estadísticas que son 100% observacionales o métodos de recopilación de datos que no se pueden manipular. En algunos casos, las variables también pueden estar particularmente correlacionadas (generalmente una forma de recopilar datos de estudios puramente observacionales) y no hay error por parte del investigador. Por esta razón, debe realizar experimentos de comportamiento siempre que sea posible, colocando la extensión de las variables predictoras de antemano.
  • Multicolinealidad estructural: gracias a usted, el investigador, cuando intentan crear nuevas variables predictoras.

Las causas de multicolinealidad también pueden consistir en:  

  • Hechos insuficientes. En algunos casos, la recopilación de estadísticas adicionales puede resolver el problema.
  • Las variables ficticias también podrían usarse incorrectamente. Por ejemplo, el investigador puede no excluir una categoría o agregar una variable ficticia para cada categoría (por ejemplo, primavera, verano, otoño, invierno).
  • Incluir una variable dentro de la regresión que es una mezcla de otras variables. Por ejemplo, que consiste en «beneficios generales de inversión», mientras que el ingreso total de inversión = ganancias de acciones y bonos + ganancias de intereses de ahorro.
  • Incluyendo variables idénticas (o casi idénticas). Por ejemplo, peso en libras y peso en kilos, o ganancias de inversiones y ganancias de ahorros/bonos.

Ejemplo: También se puede ubicar que la multicolinealidad puede ser una característica de la elaboración de los planes de la prueba.  
En el caso del fabricante de materiales, podemos ver sin problemas que la publicidad y el marketing y el volumen son variables predictoras correlacionadas, entre las que se encuentran principalmente los cambios en el impacto del marketing, mientras que la cantidad está y no está incluida en la versión. En una prueba similar, descubrirá que el fabricante del producto también puede introducir la multicolinealidad entre el volumen y la publicidad, ya que es una parte importante del diseño experimental mediante la asignación de un rango de precios de publicidad alto a ciudades con tiendas más pequeñas y un presupuesto de publicidad de espresso a ciudades con tiendas más grandes. 
Si está preparado para volver a hacer la prueba de mercado, abordará esta dificultad reestructurando el experimento para garantizar un agregado honesto de anuncios excesivos/volumen bajo, anuncios excesivos/cantidad alta, anuncios bajos/cantidad alta y bajo tiendas de publicidad/baja cantidad. esto puede permitirle eliminar la multicolinealidad en el conjunto de hechos. Sin embargo, normalmente no es posible volver a hacer un experimento. Es por eso que regularmente es crucial analizar con mucha cautela la planificación de un experimento controlado antes de comenzar para evitar causar tales problemas por casualidad. Si ha localizado la multicolinealidad debido al diseño experimental y no puede volver a hacer el experimento, tendrá que lidiar con la multicolinealidad mediante la cual se incluyen los controles. dentro de la caja del productor de telas, será vital incorporar el alcance dentro de la versión como un efecto para instar a una estimación adecuada mucho mayor para el impacto de la publicidad. Otras respuestas para abordar la multicolinealidad en instancias como esta consisten en estimaciones de contracción como regresión de aditivos principales o análisis de mínimos cuadrados parciales.
Código: código de Python para eliminar la multicolinealidad del conjunto de datos utilizando el factor VIF.
 

python3

# read the dataset
import pandas as pd
data = pd.read_csv('https://docs.google.com / spreadsheets / d/e / 2PACX-1vQRtMKSAzDVoUFeP_lvpxSPt0pb7YR3_SPBdnq0_2nIgfZUMB8fMgJXaMETqLmrV3uw2yOqkZLEcTvt / pub?output = csv')
data.head(3)
 
# Remove the price from the dataset
Y = data["price"]
iv = data.columns
iv = iv.delete(0)
X = data[iv]
 
# calculate the variance inflation factor
from statsmodels.stats.outliers_influence import variance_inflation_factor as vif
 
# compare with each column
[vif(data[iv].values, index) for index in range(len(iv))]
 
# Removing multicollinearity from the dataset using vif
from statsmodels.stats.outliers_influence import variance_inflation_factor as vif
 
# compare with each columns
for i in range(len(iv)):
    vif_list = [vif(data[iv].values, index) for index in range(len(iv))]
    maxvif = max(vif_list)
    print("Max VIF value is ", maxvif)                     
    drop_index = vif_list.index(maxvif)
    print("For Independent variable", iv[drop_index])
    
    if maxvif > 10:
        
        print("Deleting", iv[drop_index])
        iv = iv.delete(drop_index)
        print("Final Independent_variables ", iv)

Producción: 
 

Max VIF value is  15.213540834822062
For Independent variable bedrooms
Deleting bedrooms
Final Independent_variables  Index(['lotsize', 'bathrms', 'stories', 'driveway', 'recroom', 'fullbase',
       'gashw', 'airco', 'garagepl', 'prefarea'],
      dtype='object')
Max VIF value is  7.738793387948324
For Independent variable bathrms
Max VIF value is  7.738793387948324
For Independent variable bathrms
Max VIF value is  7.738793387948324
For Independent variable bathrms
Max VIF value is  7.738793387948324
For Independent variable bathrms
Max VIF value is  7.738793387948324
For Independent variable bathrms
Max VIF value is  7.738793387948324
For Independent variable bathrms
Max VIF value is  7.738793387948324
For Independent variable bathrms
Max VIF value is  7.738793387948324
For Independent variable bathrms
Max VIF value is  7.738793387948324
For Independent variable bathrms
Max VIF value is  7.738793387948324
For Independent variable bathrms

Podemos notar que el análisis VIF ha eliminado las habitaciones que tienen más de 10, sin embargo, se han conservado stories_one y stories_two. Para probar el modelo, la práctica común es dividir el conjunto de datos en 80/20 (o 70/30) para entrenar/probar respectivamente y usar el conjunto de datos de entrenamiento para construir el modelo, luego aplicar el modelo entrenado en el conjunto de datos de prueba para evaluar el rendimiento del modelo. También podemos evaluar el rendimiento de un modelo encontrando la puntuación r2.
 

Publicación traducida automáticamente

Artículo escrito por Vishesh__Jha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *