R: объект ts показывает еженедельную сезонность, но не xts (с теми же параметрами данных и частоты) - PullRequest
0 голосов
/ 13 марта 2020

У меня есть dataframe, который захватывает daily данные:

$dt: Date, format: "2019-01-01" "2019-01-02" "2019-01-03" "2019-01-04"
$new_user_growth: num  NA -0.0254 -0.0469 -0.1257 0.3125 

Я преобразовал dataframe выше в ts с помощью:

ts_h7_2019 <- ts(data=df$new_user_growth, frequency = 7)

Я установил frequency до 7, потому что я хочу сосредоточиться на еженедельной сезонности. Когда я разлагаю данные, используя mstl (алгоритм c stl), он показывает Seasonal7 тренд.

Пока все хорошо.

Но потом я обнаружил, что работать с xts проще, поэтому я создал объект xts:

df_xts <- xts(x=df$new_user_growth, order.by=df$dt, frequency=7)

или альтернативно Я также пытался:

df_xts2 <- xts(x=df$new_user_growth, order.by=df$dt, deltat=7)

Обратите внимание, что оба объекта ts (ts_h7_2019) и объект xts (df_xts, df_xts2) являются производными от того же dataframe (df). Тем не менее, mstl разложение возвращает без сезонности и, следовательно, руководство stl не может быть запущено для xts объектов с этой ошибкой:

y is not a seasonal ts object

Что не так Вот? xts и ts должны иметь одинаковую сезонность, так как оба получены из одного dataframe.

Почему параметр frequency работает на ts, но не на xts?

1 Ответ

0 голосов
/ 13 марта 2020

Вы пытались использовать класс msts (взят из: https://otexts.com/fpp2/complexseasonality.html).
Потенциально что-то вроде этого:

forecast::mstl(msts(data = xts(df$....), seasonal.periods = 7))
...