Visualizza le previsioni di noleggio bici
Nel precedente esercizio, hai visualizzato le previsioni del modello per le bici usando il classico grafico a dispersione "risultato vs. previsione". Dato che i dati sui noleggi di bici sono una serie temporale, potresti voler capire come il modello si comporta nel tempo. In questo esercizio confronterai previsioni e noleggi effettivi su base oraria, per i primi 14 giorni di agosto.
Per creare il grafico userai la funzione tidyr::pivot_longer() (docs) per unire i valori previsti e quelli reali di bikesAugust in un'unica colonna. pivot_longer() accetta come argomenti:
- Il data frame "wide" da rimodellare (implicito in una pipe)
- I nomi delle colonne da raccogliere in un'unica colonna (parola chiave "cols").
- Il nome della colonna chiave da creare - contiene i nomi delle colonne raccolte (parola chiave "names_to").
- Il nome della colonna dei valori da creare - contiene i valori delle colonne raccolte (parola chiave "values_to").
Userai il data frame rimodellato per confrontare i conteggi dei noleggi reali e previsti in funzione del tempo. L'indice temporale, instant, conta il numero di osservazioni dall'inizio della raccolta dati. Il codice di esempio converte gli istanti in unità giornaliere, a partire da 0.
Il data frame bikesAugust, con le previsioni (bikesAugust$pred), è stato precaricato.
Questo esercizio fa parte del corso
Supervised Learning in R: Regression
Istruzioni dell'esercizio
- Compila gli spazi per tracciare previsioni e conteggi reali per ora nei primi 14 giorni di agosto.
- converti
instantin unità di giorni, invece che ore - applica
pivot_longer()alle colonnecntepredin una colonna chiamatavalue, con una chiave chiamatavaluetype. - usa
filter()per le prime due settimane di agosto - traccia
valuein funzione diinstant(giorno).
- converti
Il modello coglie gli andamenti temporali generali dei noleggi di bici?
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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")