Множественная линейная регрессия. Часть 1. | Оптимизация

Линейная регрессия. Часть 1.

Все курсы > Оптимизация > Занятие 4 (часть 1)

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

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

Откроем ноутбук к этому занятию

Регрессионный анализ

Вначале несколько теоретических замечаний.

Генеральная совокупность и выборка

Как мы уже знаем, множество всех имеющихся наблюдений принято считать генеральной совокупностью (population). И эти наблюдения, если в них есть взаимосвязи, можно теоретически аппроксимировать, например, линией регрессии. При этом важно понимать, что это некоторая идеальная модель, которую мы никогда не сможем построить.

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

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

Отклонение прогнозного значения от фактического для «идеальной» линии принято называть ошибкой (error или true error).

$$ \varepsilon = y-\hat{y} $$

Отклонение прогноза от факта для выборочной модели (которую мы и строим) называют остатками (residuals или residual error).

$$ \varepsilon = y-f(x) $$

В этом смысле среднеквадратическую ошибку (mean squared error, MSE) корректнее называть средними квадратичными остатками (mean squared residuals).

На практике ошибку и остатки нередко используют как взаимозаменяемые термины.

Уравнение множественной линейной регрессии

Посмотрим на уравнение множественной линейной регрессии.

$$ y = \theta_0 + \theta_1x_1 + \theta_2x_2 + … + \theta_jx_j + \varepsilon $$

В отличие от простой линейной регрессии в данном случае у нас несколько признаков x (независимых переменных) и несколько коэффициентов $ \theta $ («тета»).

Интерпретация результатов модели

Коэффициент $ \theta_0 $ задает некоторый базовый уровень (baseline) при условии, что остальные коэффициенты равны нулю и зачастую не имеет смысла с точки зрения интерпретации модели (нужен лишь для того, что поднять линию на нужный уровень).

Параметры $ \theta_1, \theta_2, …, \theta_n $ показывают изменение зависимой переменной при условии «неподвижности» остальных коэффициентов. Например, каждая дополнительная комната может увеличивать цену дома в 1.3 раза.

Переменная $ \varepsilon $ (ошибка) представляет собой отклонение фактических данных от прогнозных. В этой переменной могут быть заложены две составляющие. Во-первых, она может включать вариативность целевой переменной, описанную другими (не включенными в нашу модель) признаками. Во-вторых, «улавливать» случайный шум, случайные колебания.

Категориальные признаки

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

Перед этим переменную необходимо закодировать, создав, например, через Label Encoder признак «центр», который примет значение 1, если квартира в центре, и 0, если она находится в спальном районе.

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

В модели, представленной выше, если квартира находится в центре (переменная «центр» равна единице), ее стоимость составит 10,1 миллиона рублей, если на окраине (переменная «центр» равна нулю) — лишь восемь.

Для категориального признака с множеством классов можно использовать one-hot encoding, если между классами признака отсутствует иерархия,

категориальная переменная с несколькими классами (one-hot encoding)

или, например, ordinal encoding в случае наличия иерархии классов в признаке

категориальная переменная с несколькими классами (ordinal encoding)

Выбросы в линейной регрессии

Как и коэффициент корреляции Пирсона, модель линейной регрессии чувствительна к выбросам (outliers), то есть наблюдениям, серьезно выпадающим из общей совокупности. Сравните рисунки ниже.

выбросы и модель линейной регрессии

При наличии выброса (слева), линия регрессии имеет наклон и может использоваться для построения прогноза. Удалив это наблюдение (справа), линия регрессии становится горизонтальной и построение прогноза теряет смысл.

При этом различают два типа выбросов:

  • горизонтальные выбросы или влиятельные точки (leverage points) — они сильно отклоняются от среднего по оси x; и
  • вертикальные выбросы или просто выбросы (influential points) — отклоняются от среднего по оси y

Ключевое отличие заключается в том, что вертикальные выбросы влияют на наклон модели (изменяют ее коэффициенты), а горизонтальные — нет.

Сравним два графика.

leverage point vs. influential point

На левом графике черная точка (leverage point) сильно отличается от остальных наблюдений, но наклон прямой линии регрессии с ее появлением не изменился. На правом графике, напротив, появление выброса (influential point) существенно изменяет наклон прямой.

На практике нас конечно больше интересуют influential points, потому что именно они существенно влияют на качество модели.

Если в простой линейной регрессии мы можем оценить leverage и influence наблюдения графически⧉, в многомерной модели это сделать сложнее. Можно использовать график остатков (об этом ниже) или применить один из уже известных нам методов выявления выбросов.

Про выявление leverage и infuential points можно почитать здесь⧉.

Допущения модели регрессии

Применение алгоритма линейной регрессии предполагает несколько допущений (assumptions) или условий, при выполнении которых мы можем говорить о качественно построенной модели.

1. Правильный выбор модели

Вначале важно убедиться, что данные можно аппроксимировать с помощью линейной модели (correct model specification).

Оценить распределение данных можно через график остатков (residuals plot), где по оси x отложен прогноз модели, а на оси y — сами остатки.

график остатков для проверки возможности аппроксимировать данные с помощью линейной модели

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

Остатки модели относительно ее прогнозных значений должны быть распределены случайным образом без систематической составляющей (residuals do not follow a pattern).

  • Если вы попробовали применить линейную модель с коэффициентами первой степени ($x_n^1$) и выявили некоторый паттерн в данных, можно попробовать полиномиальную или какую-либо еще функцию (об этом ниже).
  • Кроме того, количественные признаки можно попробовать преобразовать таким образом, чтобы их можно было аппроксимировать прямой линией.
  • Если ни то, ни другое не помогло, вероятно данные не стоит моделировать линейной регрессией.

Также замечу, что график остатков показывает выбросы в данных.

выброс на графике остатков

2. Нормальность распределения остатков

Среднее значение остатков должно быть равно нулю. Если это не так, и среднее значение меньше нуля (скажем –5), то это значит, что модель регулярно недооценивает (underestimates) фактические значения. В противном случае, если среднее больше нуля, переоценивает (overestimated).

нормальность распределения остатков

Кроме того, предполагается, что остатки следуют нормальному распределению.

$$ \varepsilon \sim N(0, \sigma) $$

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

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

Причинами могут быть (1) выбросы в данных или (2) неверный выбор модели. Решением может быть, соответственно, исследование выбросов, выбор новой модели и преобразование как признаков, так и целевой переменной.

3. Гомоскедастичность остатков

Гомоскедастичность (homoscedasticity) или одинаковая изменчивость остатков предполагают, что дисперсия остатков не изменяется для различных наблюдений. Противоположное и нежелательное явление называется гетероскедастичностью (heteroscedasticity) или разной изменчивостью.

гомоскедастичность остатков

Гетероскедастичность остатков показывает, что модель ошибается сильнее при более высоких или более низких значениях признаков. Как следствие, если для разных прогнозов у нас разная погрешность, модель нельзя назвать надежной (robust).

Как правило, гетероскедастичность бывает изначально заложена в данные. Ее можно попробовать исправить через преобразование целевой переменной (например, логарифмирование)

4. Отсутствие мультиколлинеарности

Еще одним важным допущением является отсутствие мультиколлинеарности. Мультиколлинеарность (multicollinearity) — это корреляция между зависимыми переменными. Например, если мы предсказываем стоимость жилья по квадратным метрам и количеству комнат, то метры и комнаты логичным образом также будут коррелировать между собой.

Почему плохо, если такая корреляция существует? Базовое предположение линейной регрессии — каждый коэффициент $\theta$ оказывает влияние на конечный результат при условии, что остальные коэффициенты постоянны. При мультиколлинеарности на целевую переменную оказывают эффект сразу несколько признаков, и мы не можем с точностью интерпретировать каждый из них.

Также говорят о том, что нужно стремиться к экономной (parsimonious) модели то есть такой модели, которая при наименьшем количестве признаков в наибольшей степени объясняет поведение целевой переменной.

Variance inflation factor

Расчет коэффициента

Variance inflation factor (VIF) или коэффициент увеличения дисперсии позволяет выявить корреляцию между признаками модели.

Принцип расчета VIF заключается в том, чтобы поочередно делать каждый из признаков целевой переменной и строить модель линейной регрессии на основе оставшихся независимых переменных. Например, если у нас есть три признака $x_1, x_2, x_3$, мы поочередно построим три модели линейной регрессии: $x_1 \sim x_2 + x_3, x_2 \sim x_1 + x_3$ и $x_3 \sim x_1 + x_3$.

Обратите внимание на новый для нас формат записи целевой и зависимых переменных модели через символ $\sim$.

Затем для каждой модели (то есть для каждого признака $x_1, x_2, x_3$) мы рассчитаем коэффициент детерминации $R^2$. Если он велик, значит данный признак можно объяснить с помощью других независимых переменных и имеется мультиколлинеарность. Если $R^2$ мал, то нельзя и мультиколлинеарность отсутствует.

Теперь рассчитаем VIF на основе $R^2$:

$$ VIF = \frac{1}{1-R^2} $$

При таком способе расчета большой (близкий к единице) $R^2$ уменьшит знаменатель и существенно увеличит VIF, при небольшом коэффициенте детерминации коэффициент увеличения дисперсии наоборот уменьшится.

Замечу, что $1-R^2$ принято называть tolerance.

Другие способы выявления мультиколлинеарности

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

Интерпретация VIF

VIF находится в диапазон от единицы до плюс бесконечности. Как правило, при интерпретации показателей variance inflation factor придерживаются следующих принципов:

  • VIF = 1, между признаками отсутствует корреляция
  • 1 < VIF $\leq$ 5 — умеренная корреляция
  • 5 < VIF $\leq$ 10 — высокая корреляция
  • Более 10 — очень высокая

После расчета VIF можно по одному удалять признаки с наибольшей корреляцией и смотреть как изменится этот показатель для оставшихся независимых переменных.

5. Отсутствие автокорреляции остатков

На занятии по временным рядам (time series), мы сказали, что автокорреляция (autocorrelation) — это корреляция между значениями одной и той же переменной в разные моменты времени.

Применительно к модели линейной регрессии автокорреляция целевой переменной (для простой линейной регрессии) и автокорреляция остатков, residuals autocorrelation (для модели множественной регрессии) означает, что результат или прогноз зависят не от признаков, а от самой этой целевой переменной. В такой ситуации признаки теряют свою значимость и применение модели регрессии становится нецелесообразным.

Причины автокорреляции остатков

Существует несколько возможных причин:

  • Прогнозирование целевой переменной с высокой автокорреляцией (например, если мы моделируем цену акций с помощью других переменных, то можем ожидать высокую автокорреляцию остатков, поскольку цена акций как правило сильно зависит от времени)
  • Удаление значимых признаков
  • Другие причины

Автокорреляция первого порядка

Дадим формальное определение автокорреляции первого порядка (first order correlation), то есть автокорреляции с лагом 1.

$$ \varepsilon_t = p\varepsilon_{t-1} + u_t $$

где $u_t$ — некоррелированная при различных t одинаково распределенная случайная величина (independent and identically distributed (i.i.d.) random variable), а $p$ — коэффициент автокорреляции, который находится в диапазоне $-1 < p < 1$. Чем он ближе к нулю, тем меньше зависимость остатка $\varepsilon_t$ от остатка предыдущего периода $\varepsilon_{t-1}$.

Такое уравнение также называется схемой Маркова первого порядка (Markov first-order scheme).

Обратите внимание, что для модели автокорреляции первого порядка коэффициент автокорреляции $p$ совпадает с коэффициентом авторегрессии AR(1) $\varphi$.

$$ y_t = c + \varphi \cdot y_{t-1} $$

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

$$ \varepsilon_t = p_1\varepsilon_{t-1} + p_2\varepsilon_{t-2} + p_3\varepsilon_{t-3} + u_t $$

Выявление автокорреляции остатков

Для выявления автокорреляции остатков можно использовать график последовательности и график остатков с лагом 1, график автокорреляционной функции или критерий Дарбина-Уотсона.

График последовательности и график остатков с лагом 1

На графике последовательности (sequence plot) по оси x откладывается время (или порядковый номер наблюдения), а по оси y — остатки модели. Кроме того, на графике остатков с лагом 1 (lag-1 plot) остатки (ось y) можно сравнить с этими же значениями, взятыми с лагом 1 (ось x).

Рассмотрим вариант положительной автокорреляции (positive autocorrelation) на графиках остатков типа (а) и (б).

положительная автокорреляция

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

Теперь обратимся к отрицательной автокорреляции (negative autocorrelation).

отрицательная автокорреляция

Здесь наоборот, если одно наблюдение демонстрирует рост показателя по отношению к предыдущему значению, то последующее наблюдение будет наоборот снижением. Опять же справедливо и обратное утверждение.

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

отсутствие автокорреляции
График автокорреляционной функции

Еще один способ выявить автокорреляцию — построить график автокорреляционной функции (autocorrelation function, ACF).

график автокорреляционной функции
Занятие по временным рядам (данные о рождаемости)

Напомню, такой график показывает автокорреляцию данных с этими же данными, взятыми с первым, вторым и последующими лагами.

Критерий Дарбина-Уотсона

Количественным выражением автокорреляции является критерий Дарбина-Уотсона (Durbin-Watson test). Этот критерий выявляет только автокорреляцию первого порядка.

  • Нулевая гипотеза утверждает, что такая автокорреляция отсутствует ($p=0$),
  • Альтернативная гипотеза соответственно утверждает, что присутствует
    • Положительная ($p \approx -1$) или
    • Отрицательная ($p \approx 1$) автокорреляция

Значение теста находится в диапазоне от 0 до 4.

  • При показателе близком к двум можно говорить об отсутствии автокорреляции
  • Приближение к четырем говорит о положительной автокорреляции
  • К нулю, об отрицательной

Как избавиться от автокорреляции

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

Рассмотрение этих методов находится за рамками сегодняшнего занятия. Перейдем к практике.