Holt-Winters на собеседовании Data Scientist

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

Карьерник — 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).

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

Additive vs multiplicative

Additive. Seasonal effect constant amplitude.

y_t = level + trend + seasonal + error

Multiplicative. 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 на простых рядах.

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

FAQ

Это официальная информация?

Нет. Статья основана на работах Holt 1957, Winters 1960, документации statsmodels.


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