НачатьНачать бесплатно

Визуализация прогнозов аренды велосипедов

В предыдущем упражнении вы визуализировали прогнозы модели с помощью стандартного точечного графика «фактические значения vs. прогнозы». Поскольку данные об аренде велосипедов представляют собой временной ряд, интересно также оценить, как модель работает в зависимости от времени. В этом упражнении вы сравните прогнозы и фактические данные об аренде с почасовой детализацией за первые 14 дней августа.

Для построения графика используйте функцию tidyr::pivot_longer() (docs), чтобы объединить прогнозируемые и фактические значения из bikesAugust в один столбец. Функция pivot_longer() принимает следующие аргументы:

  • «Широкий» фрейм данных для преобразования (передаётся неявно через пайп).
  • Названия столбцов, которые нужно собрать в один (ключевое слово cols).
  • Название создаваемого столбца-ключа — содержит названия собранных столбцов (ключевое слово names_to).
  • Название создаваемого столбца значений — содержит значения собранных столбцов (ключевое слово values_to).

Полученный фрейм данных после преобразования вы используете для сравнения фактического и прогнозируемого числа аренд как функции времени. Индекс времени instant отсчитывает количество наблюдений с начала сбора данных. Пример кода переводит значения instant в дневные единицы, начиная с 0.

Фрейм данных bikesAugust с прогнозами (bikesAugust$pred) уже загружен.

Это упражнение является частью курса

Обучение с учителем в R: регрессия

Посмотреть курс

Инструкции к упражнению

  • Заполните пропуски, чтобы построить почасовой график прогнозов и фактических значений за первые 14 дней августа.
    • Преобразуйте instant из часовых единиц в дневные.
    • Примените pivot_longer() к столбцам cnt и pred, объединив их в столбец value с ключом valuetype.
    • Используйте filter(), чтобы оставить только первые две недели августа.
    • Постройте график value как функции от instant (в днях).

Улавливает ли модель общие временны́е закономерности в аренде велосипедов?

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Plot predictions and cnt by date/time
bikesAugust %>% 
  # set start to 0, convert unit to days
  mutate(instant = (instant - min(instant))/24) %>%  
  # collect cnt and pred into a value column
  pivot_longer(cols = c('cnt', 'pred'), names_to = '___', values_to = '___') %>%  
  filter(instant < 14) %>% # restric to first 14 days
  # plot value by instant
  ggplot(aes(x = ___, y = ___, color = valuetype, linetype = valuetype)) + 
  geom_point() + 
  geom_line() + 
  scale_x_continuous("Day", breaks = 0:14, labels = 0:14) + 
  scale_color_brewer(palette = "Dark2") + 
  ggtitle("Predicted August bike rentals, Quasipoisson model")
Редактировать и запускать код