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

Карьерник — квиз-тренажёр в Telegram с 1500+ вопросами для собесов аналитика. SQL, Python, A/B, метрики. Бесплатно.

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

«Как бы вы оценили 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.

В 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.


Тренируйте статистику — откройте тренажёр с 1500+ вопросами для собесов.