Установка параметра "частота" для многолетнего среднего значения почасовых данных по озону
Я пытаюсь разложить временной ряд, который представляет собой среднемесячное многолетнее среднее значение почасовых данных по озону. Есть 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 для декомпозиции данных своего временного ряда.