Sobes.tech
Back to questions
Middle
9

Что такое декомпозиция временных рядов на тренд и сезонность?

Companies where asked
Rubbles

Answer from AI

sobes.tech AI

Что хотят услышать интервьюеры:

Декомпозиция временного ряда — это разложение данных на понятные компоненты, чтобы отдельно увидеть долгосрочное изменение и повторяющиеся колебания. Обычно выделяют тренд, сезонность и остаток. Такой подход помогает понять структуру ряда и сделать прогнозы более устойчивыми.

Определение:

Декомпозиция временного ряда на тренд и сезонность — это метод анализа, при котором исходный ряд представляют как сумму или произведение нескольких частей. Тренд показывает общее направление изменения показателя во времени: рост, падение или стабильность. Сезонность отражает регулярные повторяющиеся паттерны через одинаковые интервалы, например по дням недели, месяцам или кварталам.

Часто также выделяют остаточную компоненту — то, что не объясняется трендом и сезонностью. Это шум, случайные отклонения или влияние разовых событий.

Пример использования:

У интернет-магазина есть данные о продажах по месяцам.
Тренд показывает, что продажи в целом растут из года в год.
Сезонность показывает пики в декабре и спад в январе.
После декомпозиции проще понять, что именно связано с долгосрочным ростом, а что — с календарными эффектами.

import statsmodels.api as sm

# series — временной ряд продаж с датами в индексе
result = sm.tsa.seasonal_decompose(series, model='additive', period=12)

trend = result.trend
seasonal = result.seasonal
resid = result.resid

Пояснение кода:

В этом примере используется стандартная декомпозиция временного ряда.

  1. seasonal_decompose(...) разбивает ряд на компоненты.
  2. model='additive' означает аддитивную модель, когда ряд считается суммой частей: ряд = тренд + сезонность + остаток.
  3. period=12 задаёт длину сезонного цикла, например 12 месяцев.
  4. result.trend содержит сглаженный долгосрочный тренд.
  5. result.seasonal содержит повторяющийся сезонный шаблон.
  6. result.resid содержит остатки после вычитания тренда и сезонности.

Если сезонные колебания растут вместе с уровнем ряда, может использоваться мультипликативная модель, где компоненты перемножаются.

Ключевые моменты:

  • Тренд показывает долгосрочное направление ряда.
  • Сезонность — это регулярные повторяющиеся колебания с фиксированным периодом.
  • Остаток — нерегулярная часть, которую не объясняют тренд и сезонность.
  • Декомпозиция полезна для анализа, очистки данных и улучшения прогноза.
  • Обычно используют аддитивную модель для ряда с примерно постоянной амплитудой сезонности.
  • Для сезонности важно правильно задать период: день, неделя, месяц, квартал и т.д.