Что такое exponential smoothing и Holt-Winters?
Ответ от нейросети
sobes.tech AI
Что хотят услышать интервьюеры:
Exponential smoothing — это семейство методов сглаживания временных рядов, где более свежие наблюдения имеют больший вес, чем старые. Holt-Winters — это расширение, которое умеет учитывать не только уровень ряда, но и тренд, а также сезонность. Обычно важно показать, что метод подходит для короткосрочного прогнозирования и простых, интерпретируемых моделей.
Определение:
Exponential smoothing — это метод прогнозирования временных рядов, в котором текущее значение сглаженной оценки считается как комбинация нового наблюдения и предыдущей оценки, причём вес прошлых данных убывает экспоненциально.
Базовая идея: чем дальше значение во времени, тем меньше его влияние на текущий прогноз.
Holt-Winters — это расширение exponential smoothing для рядов с:
- уровнем,
- трендом,
- сезонностью.
Бывает два основных варианта сезонности:
- аддитивная — сезонный эффект примерно постоянной величины;
- мультипликативная — сезонный эффект пропорционален уровню ряда.
Пример использования:
Например, в продажах магазина есть регулярный недельный сезонный паттерн: в выходные продажи выше, в будни ниже. Тогда простой moving average будет запаздывать, а Holt-Winters сможет учитывать и общий рост продаж, и повторяющуюся сезонность.
from statsmodels.tsa.holtwinters import ExponentialSmoothing
# sales — временной ряд продаж, например pandas Series
model = ExponentialSmoothing(
sales,
trend="add",
seasonal="add",
seasonal_periods=7
)
fit = model.fit()
forecast = fit.forecast(14)
Пояснение кода:
ExponentialSmoothing(...)создаёт модель сглаживания для временного ряда.trend="add"включает аддитивный тренд, то есть модель учитывает линейный рост или падение.seasonal="add"включает аддитивную сезонность.seasonal_periods=7задаёт длину сезона, например 7 дней для недельной сезонности.fit()оценивает параметры модели по историческим данным.forecast(14)строит прогноз на 14 следующих точек.
Если нужен Holt-Winters, то по сути это именно такой вызов с включёнными компонентами тренда и/или сезонности.
Ключевые моменты:
- Экспоненциальное сглаживание даёт больший вес недавним данным и меньший — старым.
- Holt-Winters = уровень + тренд + сезонность.
- Аддитивная сезонность подходит, когда амплитуда сезонного эффекта примерно постоянна.
- Мультипликативная сезонность подходит, когда сезонный эффект растёт вместе с уровнем ряда.
- Метод хорошо работает для краткосрочного прогноза и интерпретируем, но плохо ловит сложные нелинейные паттерны.
- Важно правильно выбрать период сезонности и тип сезонности, иначе качество прогноза сильно падает.