Holt-Winters на собеседовании Data Scientist
Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.
Содержание:
Зачем разбирать на собесе
Holt-Winters — классика time series. На собесе DS: «отличие от ARIMA», «когда multiplicative».
Simple exponential smoothing
Когда нет тренда / сезонности.
S_t = α · y_t + (1-α) · S_{t-1}α ∈ [0, 1] — smoothing factor. Высокий — больше weight на recent.
Forecast: ŷ_t+1 = S_t.
Holt's method
Добавляем trend.
Level: L_t = α · y_t + (1-α)(L_{t-1} + T_{t-1})
Trend: T_t = β · (L_t - L_{t-1}) + (1-β) · T_{t-1}Forecast: ŷ_t+h = L_t + h · T_t.
α, β — smoothing factors.
Damped trend. Мультипликатор φ затухает trend во времени:
ŷ_t+h = L_t + (φ + φ² + ... + φ^h) · T_tРеалистичнее на длинных horizons.
Holt-Winters (seasonal)
Добавляем seasonal.
Additive:
L_t = α · (y_t - S_{t-m}) + (1-α)(L_{t-1} + T_{t-1})
T_t = β · (L_t - L_{t-1}) + (1-β) · T_{t-1}
S_t = γ · (y_t - L_t) + (1-γ) · S_{t-m}
ŷ_t+h = L_t + h·T_t + S_{t-m+h_m}m — длина сезона (12 для monthly, 7 для daily).
Additive vs multiplicative
Additive. Seasonal effect constant amplitude.
y_t = level + trend + seasonal + errorMultiplicative. Seasonal proportional to level.
y_t = (level + trend) × seasonal × errorКогда выручка растёт, сезонные spikes тоже растут — multiplicative.
from statsmodels.tsa.holtwinters import ExponentialSmoothing
model = ExponentialSmoothing(
ts,
trend='add',
seasonal='mul',
seasonal_periods=12
).fit()Когда применять
Подходит:
- Univariate ряд.
- Stable seasonal pattern.
- Short-term forecasts.
- Бенчмарк перед сложными методами.
Не подходит:
- Multiple seasonalities (используй TBATS, Prophet).
- Exogenous variables (нужна regression / SARIMAX).
- Очень нелинейные patterns.
В практике — Holt-Winters часто competitive vs ML на простых рядах.
Связанные темы
- ARIMA на собесе DS
- Time series CV и features для DS
- Cross-validation на собесе DS
- Survival analysis для DS
- Подготовка к собесу Data Scientist
FAQ
Это официальная информация?
Нет. Статья основана на работах Holt 1957, Winters 1960, документации statsmodels.
Тренируйте Data Science — откройте тренажёр с 1500+ вопросами для собесов.