Линейная регрессия для аналитика
Карьерник — квиз-тренажёр в 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 не должны быть сильно коррелированы.
R²
Доля 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 × SEWide 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.
Связанные темы
- Что такое регрессия для аналитика
- Classification vs regression
- Multicollinearity
- Корреляция vs причинность
FAQ
Когда не подходит?
Non-linear relationships, categorical Y, heavy time dependence.
Ridge vs OLS?
OLS — без regularization. Ridge — penalty на large coefficients.
Interpretable ли?
Да, один из самых interpretable. Coefficients — direct meaning.
Тренируйте статистику — откройте тренажёр с 1500+ вопросами для собесов.