Линейная регрессия для аналитика
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 не должны быть сильно коррелированы.
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.