ComeçarComece de graça

Visualizar as previsões de aluguel de bicicletas

No exercício anterior, você visualizou as previsões do modelo de bicicletas usando o clássico gráfico de dispersão "resultado vs. previsão". Como os dados de aluguel de bicicletas são uma série temporal, pode ser interessante ver como o modelo se sai ao longo do tempo. Neste exercício, você vai comparar as previsões e os alugueis reais por hora, nos primeiros 14 dias de agosto.

Para criar o gráfico, você usará a função tidyr::pivot_longer() (docs) para consolidar os valores previstos e reais de bikesAugust em uma única coluna. pivot_longer() recebe como argumentos:

  • O data frame "largo" a ser pivotado (implícito em um pipe)
  • Os nomes das colunas a serem reunidas em uma única coluna (palavra-chave "cols").
  • O nome da coluna de chave a ser criada – contém os nomes das colunas coletadas (palavra-chave "names_to").
  • O nome da coluna de valores a ser criada – contém os valores das colunas coletadas (palavra-chave "values_to").

Você usará o data frame pivotado para comparar as contagens reais e previstas de alugueis ao longo do tempo. O índice de tempo, instant, conta o número de observações desde o início da coleta de dados. O código de exemplo converte os instantes para unidades diárias, começando em 0.

O data frame bikesAugust, com as previsões (bikesAugust$pred), já foi carregado.

Este exercício faz parte do curso

Aprendizado Supervisionado em R: Regressão

Ver curso

Instruções do exercício

  • Preencha as lacunas para plotar as previsões e as contagens reais por hora nos primeiros 14 dias de agosto.
    • converta instant para unidades de dia, em vez de hora
    • use pivot_longer() nas colunas cnt e pred para uma coluna chamada value, com uma chave chamada valuetype.
    • faça filter() para as primeiras duas semanas de agosto
    • Plote value em função de instant (dia).

O modelo capta os padrões gerais de tempo nos alugueis de bicicletas?

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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")
Editar e executar o código