Это состояние, при котором две или более независимые переменные в регрессионной модели сильно коррелированы друг с другом. Это может затруднить оценку индивидуального влияния каждой независимой переменной на зависимую переменную.
Высокая корреляция между предикторами делает сложно определить, какой именно предиктор влияет на зависимую переменную.
Коэффициенты регрессии могут стать очень чувствительными к изменениям данных, что приводит к нестабильным и ненадежным оценкам.
Мультиколлинеарность может привести к высоким стандартным ошибкам коэффициентов, что снижает их статистическую значимость.
Построение корреляционной матрицы для независимых переменных может помочь выявить высокие корреляции (близкие к 1 или -1).
VIF измеряет, насколько увеличивается дисперсия коэффициента регрессии из-за мультиколлинеарности. Обычно VIF > 10 указывает на серьезные проблемы с мультиколлинеарностью.
Пример
import pandas as pd
import numpy as np
from statsmodels.stats.outliers_influence import variance_inflation_factor
from statsmodels.tools.tools import add_constant
# Пример данных
data = {'X1': [1, 2, 3, 4, 5], 'X2': [2, 4, 6, 8, 10], 'X3': [5, 7, 9, 11, 13]}
df = pd.DataFrame(data)
# Добавление константы для VIF расчета
X = add_constant(df)
# Вычисление VIF для каждой переменной
vif_data = pd.DataFrame()
vif_data["feature"] = X.columns
vif_data["VIF"] = [variance_inflation_factor(X.values, i) for i in range(X.shape[1])]
print(vif_data)
Если две переменные сильно коррелированы, можно удалить одну из них.
Создание новых переменных путем комбинации коррелированных переменных, например, путем суммирования или взятия среднего значения.
Использование методов, таких как Ridge Regression (L2-регуляризация) или Lasso Regression (L1-регуляризация), которые могут уменьшить влияние мультиколлинеарности.
Преобразование набора данных с использованием анализа главных компонент (PCA), чтобы уменьшить корреляцию между переменными.
Ставь 👍 и забирай 📚 Базу знаний