В обычной множественной линейной регрессии мы используем набор переменных-предикторов p и переменную ответа , чтобы соответствовать модели формы:
Y = β 0 + β 1 X 1 + β 2 X 2 + … + β p X p + ε
куда:
- Y : переменная ответа
- X j : j -я предикторная переменная
- β j : среднее влияние на Y увеличения X j на одну единицу при неизменности всех остальных предикторов.
- ε : Член ошибки
Значения β 0 , β 1 , B 2 , … , β p выбираются методом наименьших квадратов , который минимизирует сумму квадратов невязок (RSS):
RSS = Σ(y i – ŷ i ) 2
куда:
- Σ : греческий символ, означающий сумму
- y i : Фактическое значение отклика для i -го наблюдения
- ŷ i : прогнозируемое значение отклика на основе модели множественной линейной регрессии.
Однако, когда переменные-предикторы сильно коррелированы, мультиколлинеарность может стать проблемой. Это может привести к тому, что оценки коэффициентов модели будут ненадежными и будут иметь высокую дисперсию. То есть, когда модель применяется к новому набору данных, которого она раньше не видела, она, скорее всего, будет работать плохо.
Один из способов обойти эту проблему — использовать метод, известный как регрессия лассо , который вместо этого стремится свести к минимуму следующее:
RSS + λΣ|β j |
где j находится в диапазоне от 1 до p и λ ≥ 0.
Этот второй член уравнения известен как штраф за усадку .
Когда λ = 0, этот штрафной член не действует, и регрессия лассо дает те же оценки коэффициентов, что и метод наименьших квадратов.
Однако по мере того, как λ приближается к бесконечности, штраф за сокращение становится более влиятельным, и переменные-предикторы, которые нельзя импортировать в модель, сжимаются до нуля, а некоторые даже исключаются из модели.
Зачем использовать регрессию Лассо?
Преимущество регрессии лассо по сравнению с регрессией методом наименьших квадратов заключается в компромиссе смещения и дисперсии .
Напомним, что среднеквадратическая ошибка (MSE) — это показатель, который мы можем использовать для измерения точности данной модели, и он рассчитывается как:
MSE = Var( f̂( x0)) + [Bias( f̂( x0))] 2 + Var(ε)
MSE = дисперсия + погрешность 2 + неустранимая ошибка
Основная идея регрессии лассо состоит в том, чтобы ввести небольшое смещение, чтобы можно было существенно уменьшить дисперсию, что приводит к более низкому общему значению MSE.
Чтобы проиллюстрировать это, рассмотрим следующую диаграмму:
Обратите внимание, что по мере увеличения λ дисперсия существенно падает с очень небольшим увеличением смещения. Однако после определенного момента дисперсия уменьшается менее быстро, а сокращение коэффициентов приводит к их значительному недооцениванию, что приводит к значительному увеличению систематической ошибки.
Из диаграммы видно, что тестовая MSE является самой низкой, когда мы выбираем значение для λ, которое обеспечивает оптимальный компромисс между смещением и дисперсией.
Когда λ = 0, штрафной член в регрессии лассо не имеет эффекта и, таким образом, дает те же оценки коэффициентов, что и метод наименьших квадратов. Однако, увеличивая λ до определенной точки, мы можем уменьшить общую тестовую MSE.
Это означает, что модель, подобранная с помощью регрессии лассо, будет давать меньшие ошибки теста, чем модель, подобранная с помощью регрессии наименьших квадратов.
Лассо-регрессия против гребневой регрессии
Лассо-регрессия и гребенчатая регрессия известны как методы регуляризации, потому что они оба пытаются минимизировать сумму квадратов остатков (RSS) вместе с некоторым штрафным сроком.
Другими словами, они ограничивают или упорядочивают оценки коэффициентов модели.
Однако условия наказания, которые они используют, немного отличаются:
- Лассо-регрессия пытается минимизировать RSS + λΣ|β j |
- Регрессия хребта пытается минимизировать RSS + λΣβ j 2
Когда мы используем гребенчатую регрессию, коэффициенты каждого предиктора уменьшаются до нуля, но ни один из них не может полностью обнулиться .
И наоборот, когда мы используем лассо-регрессию, возможно, что некоторые коэффициенты могут полностью обнулиться, когда λ становится достаточно большим.
С технической точки зрения регрессия лассо способна создавать «разреженные» модели — модели, которые включают только подмножество переменных-предикторов.
Возникает вопрос: что лучше: гребенчатая регрессия или лассо-регрессия?
Ответ: Это зависит!
В тех случаях, когда значимым является лишь небольшое количество переменных-предикторов, регрессия лассо имеет тенденцию работать лучше, потому что она способна полностью сжать незначительные переменные до нуля и удалить их из модели.
Однако, когда в модели значимы многие переменные-предикторы и их коэффициенты примерно равны, гребневая регрессия имеет тенденцию работать лучше, поскольку она сохраняет все предикторы в модели.
Чтобы определить, какая модель лучше делает прогнозы, мы проводим k-кратную перекрестную проверку.Какая бы модель ни давала наименьшую среднеквадратичную ошибку теста (MSE), она является предпочтительной моделью для использования.
Шаги для выполнения лассо-регрессии на практике
Для выполнения лассо-регрессии можно использовать следующие шаги:
Шаг 1: Рассчитайте матрицу корреляции и значения VIF для переменных-предикторов.
Во-первых, мы должны создать корреляционную матрицу и вычислить значения VIF (фактор инфляции дисперсии) для каждой переменной-предиктора.
Если мы обнаружим высокую корреляцию между переменными-предикторами и высокими значениями VIF (в некоторых текстах «высокое» значение VIF определяется как 5, а в других используется 10), то, вероятно, целесообразно использовать регрессию лассо.
Однако, если в данных нет мультиколлинеарности, то, возможно, в первую очередь нет необходимости выполнять лассо-регрессию. Вместо этого мы можем выполнить обычную регрессию методом наименьших квадратов.
Шаг 2: Подберите модель регрессии лассо и выберите значение для λ.
Как только мы решим, что регрессия лассо подходит для использования, мы можем подогнать модель (используя популярные языки программирования, такие как R или Python), используя оптимальное значение для λ.
Чтобы определить оптимальное значение λ, мы можем подогнать несколько моделей, используя разные значения λ, и выбрать λ как значение, которое дает наименьшую тестовую MSE.
Шаг 3: Сравните регрессию лассо с регрессией гребня и обычной регрессией наименьших квадратов.
Наконец, мы можем сравнить нашу модель регрессии лассо с моделью регрессии гребня и моделью регрессии наименьших квадратов, чтобы определить, какая модель дает наименьшую тестовую MSE, используя k-кратную перекрестную проверку.
В зависимости от взаимосвязи между переменными-предикторами и переменной отклика одна из этих трех моделей вполне может превзойти другие в различных сценариях.
Лассо-регрессия в R & Python
В следующих руководствах объясняется, как выполнить регрессию лассо в R и Python:
Лассо-регрессия в R (шаг за шагом)
Лассо-регрессия в Python (шаг за шагом)