Извлечение сезонного эффекта без использования stl или разложения

#r #stl

Вопрос:

У меня есть данные под названием «bicoal», которые состоят из годовой добычи битуминозного угля в Соединенных Штатах с 1920 по 1968 год.

 `Time Series:
Start = 1920 

End = 1968 

Frequency = 1 
 
[1] 569 416 422 565 484 520 573 518 501 505 468 382 310 334 359 372 439 446 349 395
[21] 461 511 583 590 620 578 534 631 600 438 516 534 467 457 392 467 500 493 410 412
[41] 416 403 422 459 467 512 534 552 545`
 

Я сделал временной ряд, сохраненный под именем time_series , и хотел извлечь сезонный эффект с помощью кода plot(decompose(time_series)) и plot(stl(time_series)) , но получил сообщение об ошибке

 Error in stl(time_series) : 
  series is not periodic or has less than two periods
Error in decompose(time_series) : 
  time series has no or less than 2 periods
 

Если stl или разложение не работают, есть ли способ извлечь сезонный эффект?

Ответ №1:

Не видя, как строится ваш временной ряд, я думаю, что это может быть вашей проблемой.

 data <- rep(seq(1,5),5)
ts.1 <- ts(data)
stl(ts.1)
 

введите описание изображения здесь

Теперь, чтобы устранить эту проблему ts , функция имеет аргумент частоты, который определяет период данных.

 ts.2 <- ts(data, frequency = 5)

stl(ts.2, s.window = "periodic")
 

введите описание изображения здесь

Комментарии:

1. Повлияет ли это каким-либо образом на форму графика (например, больше пиков по сравнению с годовыми данными)?

2. Имея годовые данные, трудно определить четкую сезонную закономерность. С ежемесячными данными это легко, так как модель, как ожидается, будет повторяться каждый год. Я рекомендую посмотреть на автокорреляцию ваших данных, чтобы увидеть, какие лаги имеют высокую автокорреляцию. Например, в моем data <- rep(seq(1,5),5) запуске acf(data) мы видим очень высокую автокорреляцию с запаздыванием 5, так как данные повторяются каждые 5. @rrr

3. Выполнение простой линейной регрессии только с переменной времени покажет вам, есть ли тенденция в ваших данных. И проверьте свои остатки с помощью теста Дурбина Уотсона, чтобы увидеть, есть ли еще какая-либо автокорреляция. Если есть сезонный эффект, который вы можете дополнительно изучить с acf помощью функции, то вы можете рассмотреть авторегрессионную модель с запаздыванием, независимо от высокой автокорреляции. Переменная запаздывания в вашей авторегрессионной модели может быть вашим сезонным эффектом, который вас интересует.