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
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
instantpara unidades de dia, em vez de hora - use
pivot_longer()nas colunascntepredpara uma coluna chamadavalue, com uma chave chamadavaluetype. - faça
filter()para as primeiras duas semanas de agosto - Plote
valueem função deinstant(dia).
- converta
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")