У меня есть 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
?