Методы проверки мультиколлинеарности в регрессионных моделях с примерами кода

«Проверка мультиколлинеарности» — английская фраза. Это относится к процессу проверки наличия мультиколлинеарности в статистической модели. Мультиколлинеарность возникает, когда две или более переменных-предикторов в регрессионной модели сильно коррелируют, что может привести к проблемам при интерпретации результатов модели.

Существует несколько методов проверки мультиколлинеарности в регрессионной модели. Вот несколько часто используемых методов и примеры кода:

  1. Матрица корреляции:
    Рассчитайте матрицу корреляции переменных-предикторов и найдите высокие значения корреляции.

    import pandas as pd
    # Calculate correlation matrix
    correlation_matrix = df.corr()
    # Display correlation matrix
    print(correlation_matrix)
  2. Фактор инфляции дисперсии (VIF):
    Рассчитайте VIF для каждой предикторной переменной. Значения VIF больше 5 или 10 указывают на высокую мультиколлинеарность.

    from statsmodels.stats.outliers_influence import variance_inflation_factor
    # Calculate VIF
    vif = pd.DataFrame()
    vif["Variable"] = df.columns
    vif["VIF"] = [variance_inflation_factor(df.values, i) for i in range(df.shape[1])]
    # Display VIF
    print(vif)
  3. Собственные значения:
    Вычисление собственных значений корреляционной матрицы. Если какое-либо собственное значение близко к нулю, это указывает на мультиколлинеарность.

    import numpy as np
    # Calculate eigenvalues
    eigenvalues, _ = np.linalg.eig(correlation_matrix)
    # Display eigenvalues
    print(eigenvalues)
  4. Допуск.
    Рассчитайте допуск для каждой предикторной переменной. Значения допуска менее 0,1 предполагают высокую мультиколлинеарность.

    tolerance = 1.0 / vif["VIF"]
    # Display tolerance
    print(tolerance)

Эти методы предоставляют различные способы оценки мультиколлинеарности в регрессионной модели. Важно отметить, что не существует четкого порогового значения для определения мультиколлинеарности, а интерпретация результатов может варьироваться в зависимости от конкретной проблемы и контекста.