IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Compila gli spazi per tracciare previsioni e conteggi reali per ora nei primi 14 giorni di agosto.
    • converti instant in unità di giorni, invece che ore
    • applica pivot_longer() alle colonne cnt e pred in una colonna chiamata value, con una chiave chiamata valuetype.
    • usa filter() per le prime due settimane di agosto
    • traccia value in funzione di instant (giorno).

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")
Modifica ed esegui il codice