Что такое мультиколлинеарность? и почему мы должны позаботиться о мультиколлинеарности, прежде чем создавать модель машинного обучения
Разберемся, что такое мультиколлинеарность. Почему мультиколлинеарность является проблемой? и как справиться с мультиколлинеарностью в этом блоге.
Что такое мультиколлинеарность?
Мультиколлинеарность — это сценарий, в котором две независимые переменные сильно коррелированы. Итак, теперь вопрос в том, что такое корреляция? Корреляция — это сценарий, в котором две переменные сильно связаны друг с другом.
Например, если у нас есть набор данных, в котором возраст и годы_опыта — это две независимые функции в нашем наборе данных. Вполне возможно, что с возрастом увеличивается и число лет_опыта. Таким образом, в данном случае возраст и многолетний опыт имеют сильную положительную корреляцию.
Если у нас есть возраст и число лет, оставшихся до выхода на пенсию, в качестве независимых признаков, то по мере увеличения возраста количество лет, оставшихся до выхода на пенсию, уменьшается. Итак, здесь мы говорим, что эти две функции сильно отрицательно коррелируют.
Если у нас есть какой-либо из вышеперечисленных сценариев (сильная положительная корреляция или отрицательная корреляция), то мы говорим, что существует мультиколлинеарность.
Рассмотрим сценарий, в котором мы прогнозируем продажи с помощью линейной регрессии, у нас есть одна из функций 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, поэтому будет проблема с определением коэффициентов модели. Таким образом, смысл регрессионной модели не выполняется. Итак, в регрессионной модели не должно быть мультиколлинеарности.
Как справиться с мультиколлинеарностью?
- Самый простой способ справиться с мультиколлинеарностью — создать матрицу корреляции и установить порог, скажем, 0,9, и удалить переменные, корреляция которых превышает порог.
2. Мы можем рассчитать показатель VIF и отбросить функции с высоким значением VIF. (VIF — это один из методов обнаружения мультиколлинеарности. Мы обсуждали VIF в другом блоге).
- VIF начинается с 1 и не имеет верхнего предела.
- VIF = 1, корреляция между независимой переменной и другими переменными отсутствует.
- VIF, превышающий 5 или 10, указывает на высокую мультиколлинеарность между этой независимой переменной и другими.
3. Используйте небольшие продвинутые методы регрессии, такие как Ridge и Lasso, которые будут наказывать дублирующуюся информацию и уменьшать коэффициенты модели.
Нет/очень мало мультиколлинеарности — это одно из наиболее важных предположений модели линейной регрессии. Если вы заинтересованы в понимании различных предположений линейной регрессии и знаете, как их проверить, рассмотрите возможность прочтения приведенного ниже блога.
Я надеюсь, что вы хорошо разбираетесь в мультиколлинеарности и ее проблемах, спасибо.