Установка параметра "частота" для многолетнего среднего значения почасовых данных по озону

Я пытаюсь разложить временной ряд, который представляет собой среднемесячное многолетнее среднее значение почасовых данных по озону. Есть 288 точек данных (24 часа * 12 месяцев). STL нужен объект ts для извлечения компонентов временных рядов. И тс имеет параметр "частота". Насколько я знаю, это количество наблюдений за один период. Например, это 12 для месячных усредненных данных о температуре. Какова частота для моего случая, так как если я использую 288

data_ts=stl(ts(data,frequency = 288),s.window = "per"))

Как и ожидалось, он выдает ошибку "ряд не является периодическим или имеет менее двух периодов". Кстати, я знаю о других методах извлечения сезонности, но мне также нужно проверить результаты с STL.

Лучший

2 ответа

Решение

Предполагая, что у вас есть почасовые данные, существует 24 периода в день и в среднем 24*365.25 периодов в год. Месяцы, казалось бы, не имеют отношения к природному явлению, такому как озон. Точно так же недели не имеют значения. Так что вам просто нужны сезонные периоды 24 и 24*265,35.

mstl() функция от forecast Пакет может обрабатывать несколько сезонных периодов.

library(forecast)
data_ts <- mstl(msts(data, seasonal.periods = c(24, 24*365.25)))

Однако, если у вас есть ежемесячные данные, то частота будет 12.

data_ts <- mstl(ts(data, frequency = 12))

Как вы можете видеть на рисунке ACF, ACF ваших данных четко показывает ежегодную сезонную тенденцию. он достигает максимума в годовом лаге около 12, 24 и т. д.

Если я от вашего имени, я буду использовать freq=12 для декомпозиции данных своего временного ряда.

Другие вопросы по тегам