Visualisiere die Vorhersagen der Fahrradvermietung
In der vorherigen Übung hast du die Vorhersagen des Fahrradmodells mit dem klassischen Scatterplot „Ergebnis vs. Vorhersage“ visualisiert. Da es sich bei den Daten zur Fahrradvermietung um Zeitreihendaten handelt, ist es spannend zu sehen, wie sich das Modell über die Zeit schlägt. In dieser Übung vergleichst du die Vorhersagen und die tatsächlichen Vermietungen stündlich für die ersten 14 Tage im August.
Für die Grafik verwendest du die Funktion tidyr::pivot_longer() (Docs), um die vorhergesagten und tatsächlichen Werte aus bikesAugust in einer einzigen Spalte zu bündeln. pivot_longer() erhält als Argumente:
- Den „breiten“ Data Frame, der umgeformt werden soll (implizit in einer Pipe)
- Die Namen der Spalten, die in eine einzelne Spalte zusammengeführt werden sollen (Schlüsselwort „cols“)
- Den Namen der zu erstellenden Schlüsselspalte – enthält die Namen der zusammengeführten Spalten (Schlüsselwort „names_to“)
- Den Namen der zu erstellenden Wertespalte – enthält die Werte der zusammengeführten Spalten (Schlüsselwort „values_to“)
Du verwendest den umgeformten Data Frame, um die tatsächlichen und vorhergesagten Vermietungszahlen als Funktion der Zeit zu vergleichen. Der Zeitindex instant zählt die Anzahl der Beobachtungen seit Beginn der Datenerfassung. Der Beispielcode konvertiert die Instants in Tage, beginnend bei 0.
Der Data Frame bikesAugust mit den Vorhersagen (bikesAugust$pred) wurde bereits geladen.
Diese Übung ist Teil des Kurses
<Kurs>Überwachtes Lernen in R: Regression</Kurs>Übungsanweisungen
- Fülle die Lücken aus, um die Vorhersagen und tatsächlichen Zählungen stündlich für die ersten 14 Augusttage zu plotten.
- Wandle
instantin Tage statt Stunden um - Führe mit
pivot_longer()die Spaltencntundpredin einer Spalte namensvaluezusammen, mit einem Schlüssel namensvaluetype. filter()auf die ersten zwei Augustwochen- Plotte
valueals Funktion voninstant(Tag).
- Wandle
Erkennt das Modell die allgemeinen zeitlichen Muster bei den Fahrradvermietungen?
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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")