Что такое мультиколлинеарность? и почему мы должны позаботиться о мультиколлинеарности, прежде чем создавать модель машинного обучения

Разберемся, что такое мультиколлинеарность. Почему мультиколлинеарность является проблемой? и как справиться с мультиколлинеарностью в этом блоге.

Что такое мультиколлинеарность?

Мультиколлинеарность — это сценарий, в котором две независимые переменные сильно коррелированы. Итак, теперь вопрос в том, что такое корреляция? Корреляция — это сценарий, в котором две переменные сильно связаны друг с другом.

Например, если у нас есть набор данных, в котором возраст и годы_опыта — это две независимые функции в нашем наборе данных. Вполне возможно, что с возрастом увеличивается и число лет_опыта. Таким образом, в данном случае возраст и многолетний опыт имеют сильную положительную корреляцию.

Если у нас есть возраст и число лет, оставшихся до выхода на пенсию, в качестве независимых признаков, то по мере увеличения возраста количество лет, оставшихся до выхода на пенсию, уменьшается. Итак, здесь мы говорим, что эти две функции сильно отрицательно коррелируют.

Если у нас есть какой-либо из вышеперечисленных сценариев (сильная положительная корреляция или отрицательная корреляция), то мы говорим, что существует мультиколлинеарность.

Рассмотрим сценарий, в котором мы прогнозируем продажи с помощью линейной регрессии, у нас есть одна из функций ad_budget и еще одна функция Tv _ad_budget, как показано в приведенном ниже уравнении.

Продажи = 10 + 0,8 (рекламный бюджет) + 0,3 (производство) + 0,1 (бюджет телевизионной рекламы)

Здесь Tv_ad_budget является компонентом общего ad_budget, поэтому переменные ad_budget и tv ad_budget сильно коррелированы. Этот сценарий называется мультиколлинеарностью, связанной с данными.

Другой сценарий: при разработке функций предположим, что мы добавляем столбец (производство) ², который исходит из производственной переменной, поэтому эти два будут сильно коррелированы. Это называется структурной мультиколлинеарностью.



Почему мультиколлинеарность является проблемой?

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

y = m1(x1) + m2(x2) + c

Смысл приведенного выше уравнения таков: при каждом смещении x1 на единицу, при сохранении всех остальных переменных постоянными, y будет сдвигаться на m1 единиц. При каждом смещении на единицу x2, y будет сдвигаться на m2 единиц, сохраняя все остальные переменные постоянными.

Практически у нас не может быть константы tv_ad_budget при изменении ad_budget, поэтому будет проблема с определением коэффициентов модели. Таким образом, смысл регрессионной модели не выполняется. Итак, в регрессионной модели не должно быть мультиколлинеарности.



Как справиться с мультиколлинеарностью?

  1. Самый простой способ справиться с мультиколлинеарностью — создать матрицу корреляции и установить порог, скажем, 0,9, и удалить переменные, корреляция которых превышает порог.

2. Мы можем рассчитать показатель VIF и отбросить функции с высоким значением VIF. (VIF — это один из методов обнаружения мультиколлинеарности. Мы обсуждали VIF в другом блоге).

  • VIF начинается с 1 и не имеет верхнего предела.
  • VIF = 1, корреляция между независимой переменной и другими переменными отсутствует.
  • VIF, превышающий 5 или 10, указывает на высокую мультиколлинеарность между этой независимой переменной и другими.

3. Используйте небольшие продвинутые методы регрессии, такие как Ridge и Lasso, которые будут наказывать дублирующуюся информацию и уменьшать коэффициенты модели.

Нет/очень мало мультиколлинеарности — это одно из наиболее важных предположений модели линейной регрессии. Если вы заинтересованы в понимании различных предположений линейной регрессии и знаете, как их проверить, рассмотрите возможность прочтения приведенного ниже блога.



Я надеюсь, что вы хорошо разбираетесь в мультиколлинеарности и ее проблемах, спасибо.