Линейная регрессия для аналитика

Проверь себя · 1/3разбор после ответа
Вы сортируете товары по величине скидки discount по убыванию. discount может быть NULL (скидки нет). Чтобы товары без скидки всегда были внизу независимо от настроек СУБД, какой вариант сортировки выбрать?

Зачем это знать

«Как бы вы оценили effect marketing spending на выручку?» — на собесе middle-аналитика. Ответ через linear regression — правильный. Без regression вы не сможете контролировать confounders, оценивать multiple drivers, делать прогнозы.

Linear regression — один из важнейших инструментов аналитика, но многие его не умеют интерпретировать.

Короткое объяснение

Linear regression моделирует:

Y = β0 + β1 × X1 + β2 × X2 + ... + ε
  • Y — dependent variable (то, что предсказываем)
  • X — independent variables (features)
  • β — coefficients (эффект X на Y)
  • ε — error term

Интерпретация коэффициентов

β = 2.5 для X1 значит: «при увеличении X1 на 1 unit (при прочих равных), Y растёт на 2.5 units».

Ключевое: ceteris paribus (прочие равны). Это и есть «controlled effect».

Пример

Модель revenue от spend на ads:

Revenue = 1000 + 3.5 × AdSpend + 50 × Seasonality
  • Каждый рубль в рекламу → +3.5 рубля revenue (ceteris paribus)
  • Baseline (без рекламы, без seasonality) = 1000
  • Seasonality impact: +50 per unit

Assumptions

1. Linearity

Y linearly зависит от X. Проверка: scatter plot.

Если curved — transform (log, squared) или non-linear модель.

2. Independence

Observations независимы. Time series нарушает → нужно adjust.

3. Homoscedasticity

Variance errors constant. Residual plot — должен быть равномерным.

4. Normality of residuals

Residuals normal. QQ plot.

5. No multicollinearity

Features не должны быть сильно коррелированы.

Доля variance Y, объяснённая моделью. От 0 до 1.

  • R² = 0.9: модель хорошо fits
  • R² = 0.1: плохо (остальные 90% variance не объяснены)

Но: высокий R² не значит causation. Low R² не значит модель «плохая» если hypothesis — hold.

Adjusted R²

Penalizes за добавление features без improvement. Used для model selection.

p-value коэффициента

H0: β = 0 (нет эффекта).

p < 0.05: эффект statistically significant.

Но: statistical не equals practical. Большая выборка → все coefficients significant. Смотрите effect size.

Standard error

CI для coefficient:

β ± 1.96 × SE

Wide CI → uncertain estimate. Narrow → precise.

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

В Python

import statsmodels.api as sm

X = data[['ad_spend', 'seasonality']]
X = sm.add_constant(X)  # intercept
y = data['revenue']

model = sm.OLS(y, X).fit()
print(model.summary())

Или sklearn:

from sklearn.linear_model import LinearRegression

model = LinearRegression().fit(X, y)
print(model.coef_)
print(model.intercept_)

Multicollinearity

Два features сильно коррелируют → coefficients нестабильны.

Диагностика: VIF (Variance Inflation Factor). VIF > 5 → red flag.

Fix: удалить один, combine, regularization (Ridge/Lasso).

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

One-hot encoding:

device: iOS, Android, Web
→ is_iOS, is_Android (reference = Web)

Coefficient is_iOS = 10: iOS → +10 vs Web, прочие равные.

Interaction terms

Эффект X1 зависит от X2:

Y = β0 + β1 × X1 + β2 × X2 + β3 × X1 × X2

Пример: эффект ad spend разный в выходные и будни.

Чего linear regression не делает

  • Causation automatically. Control confounders ручной.
  • Non-linear. Use polynomial или другие methods.
  • Categorical Y. Нужна logistic regression.
  • Time dependence. ARIMA, state space.

На собесе

«Что дают коэффициенты regression?» Маргинальный effect X на Y при контроле других переменных.

«R² что значит?» Доля variance Y, explained. Не означает causation.

«Assumptions?» Linearity, independence, homoscedasticity, normal residuals, no multicollinearity.

«p-value coefficient?» Тест H0: β = 0. Не путайте statistical significance с practical.

Частые ошибки

Интерпретация без controls

«ad spend → revenue +3.5» — только если модель правильно specified.

Omitted variable bias

Если важный feature не в модели — coefficients biased.

Extrapolation

Predict на X вне observed range — очень risky.

R² fetish

Высокий R² не значит model good или useful.

Связанные темы

FAQ

Когда не подходит?

Non-linear relationships, categorical Y, heavy time dependence.

Ridge vs OLS?

OLS — без regularization. Ridge — penalty на large coefficients.

Interpretable ли?

Да, один из самых interpretable. Coefficients — direct meaning.