Линейная регрессия простыми словами

Что такое линейная регрессия

Линейная регрессия — метод, который находит линейную зависимость между переменными и позволяет предсказывать непрерывное значение по одному или нескольким признакам. Проще говоря: вы даёте модели числа на входе, она выдаёт число на выходе.

Формула простой линейной регрессии:

y = ax + b
  • y — целевая переменная (то, что предсказываем)
  • x — признак (то, на основе чего предсказываем)
  • a — наклон прямой (коэффициент при признаке)
  • b — свободный член (intercept, точка пересечения с осью y)

Пример: вы хотите предсказать выручку по расходам на рекламу. x — бюджет на рекламу, y — выручка. Модель находит такие a и b, чтобы прямая максимально точно описывала связь между ними.

Как работает метод наименьших квадратов (OLS)

Откуда берутся a и b? Метод наименьших квадратов (Ordinary Least Squares, OLS) выбирает такие коэффициенты, чтобы сумма квадратов ошибок была минимальной.

Ошибка (residual) — разница между реальным значением yᵢ и предсказанным ŷᵢ. OLS минимизирует:

Σ(yᵢ - ŷᵢ)²

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

Множественная регрессия

Когда признаков больше одного, формула расширяется:

y = a₁x₁ + a₂x₂ + ... + aₙxₙ + b

Пример: предсказать выручку по расходам на рекламу, количеству посещений сайта и среднему чеку. Каждый признак получает свой коэффициент, который показывает, как изменение этого признака на единицу влияет на y при прочих равных (ceteris paribus).

R²: насколько хороша модель

R² (коэффициент детерминации) показывает, какую долю дисперсии целевой переменной объясняет модель.

  • R² = 1 — модель идеально описывает данные
  • R² = 0 — модель предсказывает не лучше, чем просто среднее
  • R² = 0.75 — модель объясняет 75% разброса y

На практике R² > 0.7 для бизнес-задач — уже хороший результат. Но высокий R² не гарантирует качество: модель может переобучиться на тренировочных данных. Для оценки на новых данных используют adjusted R² или кросс-валидацию.

Примеры из продуктовой аналитики

Прогноз выручки. Зависимость revenue от ad spend. Коэффициент a = 3.2 означает: каждый дополнительный рубль рекламы приносит в среднем 3.2 рубля выручки. Это ROAS, посчитанный через регрессию.

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

Regression adjustment в A/B-тестах. Линейная регрессия используется для увеличения мощности A/B-тестов: добавление ковариат (например, pre-experiment метрики) снижает дисперсию оценки эффекта — CUPED по сути строится именно на регрессии.

Python: пять строк кода

from sklearn.linear_model import LinearRegression
import numpy as np

X = np.array([[100], [200], [300], [400], [500]])  # расходы на рекламу
y = np.array([350, 680, 1020, 1310, 1650])          # выручка

model = LinearRegression().fit(X, y)
print(f"a = {model.coef_[0]:.2f}, b = {model.intercept_:.2f}, R² = {model.score(X, y):.3f}")
# a = 3.23, b = 27.00, R² = 0.999

LinearRegression из sklearn реализует OLS. Для более сложных задач (мультиколлинеарность, гетероскедастичность) — statsmodels.OLS, который выдаёт p-values коэффициентов, доверительные интервалы и диагностику остатков.

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

Чтобы оценки OLS были корректными, данные должны удовлетворять четырём условиям:

  1. Линейность. Связь между x и y линейная. Если зависимость нелинейная — регрессия промахнётся.
  2. Независимость наблюдений. Ошибки одного наблюдения не зависят от ошибок другого. Нарушается, например, во временных рядах.
  3. Нормальность остатков. Ошибки распределены по нормальному закону. Нужно для корректных p-values и доверительных интервалов.
  4. Гомоскедастичность. Разброс ошибок одинаков для всех значений x. Если разброс растёт с ростом x (гетероскедастичность) — стандартные ошибки коэффициентов занижены.

На практике редко все условия выполнены идеально. Но грубые нарушения нужно отслеживать: построить scatter plot остатков, проверить QQ-plot для нормальности.

Когда линейная регрессия не подходит

  • Нелинейные зависимости. Если связь между x и y логарифмическая, степенная или S-образная — линейная модель даст плохой результат. Решение: трансформация признаков, полиномиальная регрессия или другие методы.
  • Классификация. Если нужно предсказать категорию (уйдёт пользователь или нет) — используйте логистическую регрессию, не линейную. Линейная регрессия может выдать вероятность за пределами [0, 1].
  • Мультиколлинеарность. Когда признаки сильно коррелируют друг с другом, коэффициенты нестабильны. Решение: убрать один из коррелирующих признаков или применить регуляризацию (Ridge, Lasso).

Типичные ошибки

Корреляция ≠ причинность. Регрессия показывает ассоциацию, а не каузальную связь. Высокий коэффициент при признаке не значит, что изменение этого признака вызовет изменение y. Для причинно-следственных выводов нужен эксперимент (A/B-тест) или специальные методы (инструментальные переменные, DiD).

Переобучение. Добавление слишком многих признаков повышает R² на обучающей выборке, но ухудшает предсказания на новых данных. Всегда проверяйте модель на hold-out выборке.

Экстраполяция. Модель обучена на данных с бюджетом 100–500 тысяч. Предсказание для бюджета 5 миллионов — за пределами обучающей выборки, и линейная зависимость может не сохраниться.

Вопросы с собеседований

Что такое линейная регрессия? Метод поиска линейной зависимости между признаками и целевой переменной. Минимизирует сумму квадратов ошибок (OLS).

Что показывает R²? Долю дисперсии целевой переменной, объяснённую моделью. R² = 0.8 означает, что модель объясняет 80% разброса.

Какие допущения у линейной регрессии? Линейность, независимость наблюдений, нормальность остатков, гомоскедастичность.

Чем линейная регрессия отличается от логистической? Линейная предсказывает непрерывное значение, логистическая — вероятность принадлежности к классу. Логистическая использует sigmoid-функцию для преобразования линейной комбинации в вероятность.

Как бороться с мультиколлинеарностью? Удалить один из коррелирующих признаков, применить PCA для снижения размерности или использовать регуляризацию (Ridge, Lasso).

FAQ

Нужно ли нормализовать признаки перед линейной регрессией? Для обычного OLS — нет, масштаб не влияет на качество модели. Но если используете регуляризацию (Ridge, Lasso) — да, иначе признаки с большим масштабом будут штрафоваться сильнее.

Может ли R² быть отрицательным? Да. Если модель предсказывает хуже, чем простое среднее, R² < 0. Это признак грубой ошибки в модели.

Чем Ridge отличается от Lasso? Оба добавляют штраф к коэффициентам для борьбы с переобучением. Ridge (L2) уменьшает коэффициенты, но не обнуляет их. Lasso (L1) может обнулить коэффициенты, выполняя отбор признаков. Elastic Net сочетает оба подхода.


Потренируйте вопросы по статистике и ML на реальных задачах — откройте тренажёр. 1500+ вопросов, которые спрашивают на собеседованиях аналитика. Бесплатно. А ещё посмотрите примеры вопросов и прокачайте статистику.