EmpezarEmpieza gratis

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

Ver curso

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 instant a unidades de día, en lugar de hora
    • usa pivot_longer() para combinar las columnas cnt y pred en una columna llamada value, con una clave llamada valuetype.
    • aplica filter() para las dos primeras semanas de agosto
    • Representa value en función de instant (día).

¿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")
Editar y ejecutar código