tsibble с 2 ключами (не иерархией), имеющими неделю года в качестве индекса

#r #time-series #forecast

#r #временные ряды #прогноз

Вопрос:

Кто-нибудь может дать несколько предложений относительно того, как построить tsibble?

У меня есть набор дат, который содержит четыре исходных столбца: product, market, price, date Я хочу создать объект tsibble. У меня есть key=id(product,market) и «год недели» в качестве индекса. тогда я могу предсказать для каждого продукта на каждом рынке, какой должна быть базовая линия цены.

если вы используете nycflights13::weather набор данных, я могу использовать key=id(origin,year) (здесь у меня нет рынка, поэтому используйте год для представления рынка).

тогда есть idex=week(year month day) . Затем я могу объединить столбец «год», «месяц», «день» в качестве даты, затем вычислить, week() затем добавить год и неделю вместе как «weekyear» и настроить это как индекс, затем использовать median(temp) для этой недели. После этой реформы набора данных у меня может быть tsibble, способный прогнозировать темп на следующие 2-4 недели.

Ответ №1:

Похоже, вы хотите сначала преобразовать date переменную в yearweek класс. Можете ли вы сделать

 library(tsibble)
data %>%
  mutate(index = yearweek(date)) %>%
  as_tsibble(key = id(product, market), index = index)
  

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

1. Я получил эту ошибку: > dft_ts <- dft%>% mutate (index = yearweek (дата)) %>% as_tsibble (ключ = идентификатор (artikel_id, market), индекс = индекс) Ошибка: Допустимый tsibble должен иметь отдельные строки, идентифицируемые ключом и индексом. Пожалуйста, используйте duplicates() для проверки дублирующихся строк.

2. это работает: dft_ts <- dft %>% мутировать (yw= yearweek (дата)) %>% group_by(yw,artikel_id,market) %>% суммировать(avg_w_pric=среднее значение (med_pric)) %>% разгруппировать() %>% as_tsibble(ключ = id (artikel_id, market), индекс = yw)