Линейная регрессия
Задачи по регрессии почти всегда устроены одинаково: дано уравнение, нужно правильно прочитать коэффициент или посчитать разницу между двумя группами.
Модель
- y — зависимая (целевая) переменная, x — объясняющие переменные (признаки).
- b₀ — свободный член: прогноз при всех x = 0. Часто такой точки не бывает в жизни (возраст 0, вес 0), и b₀ не имеет смысла сам по себе.
- Коэффициенты подбираются методом наименьших квадратов: минимизируется сумма квадратов ошибок Σ(yᵢ − ŷᵢ)².
Интерпретация коэффициента
bⱼ — на сколько в среднем изменится y, если xⱼ увеличить на одну единицу, а остальные признаки не менять.
Пример
стоимость_ремонта = 2000 + 500·часов + 300·деталей + 1000·срочно. Коэффициент 500 значит, что каждый лишний час работы в среднем добавляет 500 ₽ при том же числе деталей и той же срочности.
Ловушки
- Следите за единицами измерения. Если y в тысячах долларов, коэффициент 0,8 — это 800 долларов.
- Величина коэффициента не говорит о важности признака: она зависит от единиц. Коэффициент 0,02 на площадь в квадратных метрах может значить больше, чем 0,3 на класс отеля.
- Без отдельного обоснования коэффициент — это связь, а не причинный эффект.
Фиктивные (дамми) переменные
Бинарный признак кодируют 0 и 1 (мужчина = 1, женщина = 0). Его коэффициент — средняя разница y между группой «1» и группой «0» при прочих равных.
У категории с k значениями заводят k−1 дамми. Одна категория остаётся базовой, и каждый коэффициент — это разница с ней.
Порядковые признаки
Если «класс отеля» закодирован числами 1, 2, 3 и стоит в модели как одно число, модель считает, что переход 1→2 и переход 2→3 дают одинаковую прибавку. Это сильное предположение. Отдельные дамми для каждого уровня его не делают.
Взаимодействия
Произведение признаков позволяет эффекту одного зависеть от другого:
- При d = 0 наклон по x равен 2, при d = 1 — 2 + 0,5 = 2,5.
- Разница между группами d = 1 и d = 0 при данном x равна 3 + 0,5·x. При x = 4 это 3 + 2 = 5.
Типичная задача
«Найдите разницу в ожидаемом значении между двумя группами». Подставьте значения признаков каждой группы в уравнение и вычтите. Всё, что у групп одинаково (возраст, свободный член), сократится. Останутся слагаемые с переменной, которая их различает, и её взаимодействия.
Квадратичные члены
Эффект возраста теперь зависит от возраста: Δy/Δage ≈ b₁ + 2·b₂·age. При b₂ < 0 это «горб» с максимумом в точке age* = −b₁ / (2·b₂). Например, у 0,5·age − 0,01·age² максимум в 25 годах.
Логарифмы
| Модель | Как читать b |
|---|---|
| y = b·x | x +1 единица → y + b единиц |
| ln y = b·x | x +1 единица → y + ≈100·b % |
| y = b·ln x | x +1% → y + ≈b/100 единиц |
| ln y = b·ln x | x +1% → y + ≈b % (эластичность) |
Качество модели и значимость
- R² — доля разброса y, объяснённая моделью, от 0 до 1. При добавлении признаков R² не уменьшается, поэтому «R² вырос» ещё не значит, что модель стала лучше. Скорректированный R² штрафует за лишние признаки.
- Значимость коэффициента: если p-value < 0,05, гипотеза b = 0 отвергается на 5% уровне. Незначимый коэффициент значит «не смогли отличить от нуля», а не «точно ноль».
- Пропущенная переменная. Если важный фактор не включён и он связан с x, коэффициент при x «впитывает» его влияние и становится смещённым. Добавили район — коэффициент при площади квартиры изменился: значит, район был связан и с площадью, и с ценой.
- Мультиколлинеарность — сильно связанные признаки (возраст и стаж). Коэффициенты становятся неустойчивыми, а их стандартные ошибки большими.
- Экстраполяция. Прогноз за пределами диапазона данных ненадёжен.
Ещё примеры
цена_билета (тыс. ₽) = 5 + 0,8·часов_полёта + 3·бизнес + 0,5·бизнес·часов_полёта. Насколько бизнес-класс дороже эконома при перелёте на 4 часа?
3 + 0,5·4 = 5 тыс. ₽ = 5000 ₽.
ln(цена) = 12 − 0,08·возраст_телефона. Как меняется цена с каждым годом возраста?
Примерно на −8% в год. Точно: e^(−0,08) − 1 ≈ −7,7%.