Visualiza las predicciones de alquiler de bicis
En el ejercicio anterior, visualizaste las predicciones del modelo de bicis usando el típico diagrama de dispersión "resultado vs. predicción". Como los datos de alquiler de bicis son una serie temporal, puede interesarte ver cómo rinde el modelo en función del tiempo. En este ejercicio, compararás las predicciones y los alquileres reales por hora, durante los primeros 14 días de agosto.
Para crear el gráfico, usarás la función tidyr::pivot_longer() (docs) para juntar en una sola columna los valores predichos y reales de bikesAugust. pivot_longer() recibe como argumentos:
- El data frame "ancho" que se va a pivotar (implícito en un pipe)
- Los nombres de las columnas que se van a recopilar en una sola columna (palabra clave "cols").
- El nombre de la columna de clave que se va a crear: contiene los nombres de las columnas recopiladas (palabra clave "names_to").
- El nombre de la columna de valores que se va a crear: contiene los valores de las columnas recopiladas (palabra clave "values_to").
Usarás el data frame pivotado para comparar los recuentos reales y predichos de alquileres en función del tiempo. El índice temporal, instant, cuenta el número de observaciones desde el inicio de la recogida de datos. El código de ejemplo convierte los instantes a unidades diarias, empezando en 0.
El data frame bikesAugust, con las predicciones (bikesAugust$pred), ya está precargado.
Este ejercicio forma parte del curso
Aprendizaje supervisado en R: Regresión
Instrucciones del ejercicio
- Rellena los huecos para representar las predicciones y los recuentos reales por hora en los primeros 14 días de agosto.
- convierte
instanta unidades de día, en lugar de hora - usa
pivot_longer()para combinar las columnascntypreden una columna llamadavalue, con una clave llamadavaluetype. - aplica
filter()para las dos primeras semanas de agosto - Representa
valueen función deinstant(día).
- convierte
¿El modelo capta los patrones temporales generales en los alquileres de bicis?
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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")