Universidad Externado de Colombia

Profesora: Edna Carolina Moreno

Fecha de entrega: Miércoles 23 de abril de 2025

Introducción

En el presente taller se realizan ejercicios de análisis e interpretación de una base de datos utilizando el lenguaje de programación R, aplicando los conceptos aprendidos en la asignatura Fundamentos de Estadística y Programación. A partir del conjunto de datos correspondiente a los alquileres de bicicletas en Washington D.C., se emplean funciones estadísticas como tapply() y aggregate(), así como herramientas gráficas como diagramas de caja, para explorar patrones de comportamiento asociados a variables temporales como la hora del día y la estación del año. El objetivo principal del ejercicio es desarrollar la capacidad de leer, transformar y visualizar datos, extrayendo conclusiones significativas que conecten los resultados cuantitativos con fenómenos observables del entorno urbano. A través de este proceso, se fortalecen tanto las habilidades técnicas en R como el razonamiento crítico frente a la información contenida en bases de datos reales.

Ejercicios

1. Carga de base de datos

library(readr)
train1 <- read_csv("C:/Users/user/Downloads/train1.csv")
## Rows: 10886 Columns: 12
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (1): date_time
## dbl (11): Season, holiday, working day, weather, temp, Atemp, humidity, wind...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
View(train1)

2. Conversión de variables categóricas

train1$Season <- factor(train1$Season,
                        levels = c(1, 2, 3, 4),
                        labels = c("Primavera", "Verano", "Otono", "Invierno"))
tapply(train1$Count, train1$Season, summary)
## $Primavera
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     1.0    24.0    78.0   116.3   164.0   801.0 
## 
## $Verano
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     1.0    49.0   172.0   215.3   321.0   873.0 
## 
## $Otono
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     1.0    68.0   195.0   234.4   347.0   977.0 
## 
## $Invierno
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       1      51     161     199     294     948
train1$hour <- as.numeric(format(as.POSIXct(train1$date_time, format="%d/%m/%Y %H:%M"), "%H"))

3. Estadísticas Descriptivas

tapply(train1$Count, train1$hour, summary)
## $`0`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    2.00   23.00   41.00   55.07   75.25  283.00 
## 
## $`1`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   10.50   18.00   33.89   47.00  165.00 
## 
## $`2`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    5.00   11.00   22.59   32.00   96.00 
## 
## $`3`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    3.00    6.00   11.88   16.00   66.00 
## 
## $`4`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   3.000   5.500   6.273   9.000  28.000 
## 
## $`5`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    8.00   19.00   19.26   27.75   55.00 
## 
## $`6`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   23.75   74.50   75.12  116.25  211.00 
## 
## $`7`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     1.0    62.0   217.5   210.1   321.5   596.0 
## 
## $`8`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     8.0   131.5   391.0   357.2   549.2   839.0 
## 
## $`9`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    14.0   156.8   217.0   218.7   287.5   408.0 
## 
## $`10`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    17.0   102.5   149.5   173.4   220.0   539.0 
## 
## $`11`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    10.0   119.8   183.5   208.0   260.8   647.0 
## 
## $`12`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    22.0   153.8   234.5   254.1   331.2   757.0 
## 
## $`13`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    11.0   150.8   233.5   255.9   329.0   729.0 
## 
## $`14`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    12.0   143.5   212.5   241.0   314.2   678.0 
## 
## $`15`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     7.0   146.8   233.0   251.9   331.0   724.0 
## 
## $`16`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    11.0   209.5   310.0   312.1   421.0   701.0 
## 
## $`17`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    25.0   261.2   482.5   460.2   601.8   970.0 
## 
## $`18`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    23.0   224.0   418.5   422.0   556.8   977.0 
## 
## $`19`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    11.0   174.8   306.0   310.5   414.0   743.0 
## 
## $`20`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    11.0   119.8   219.0   223.1   300.0   551.0 
## 
## $`21`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     6.0    94.5   169.5   169.7   230.0   584.0 
## 
## $`22`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    9.00   77.75  129.00  131.73  174.25  502.00 
## 
## $`23`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     6.0    51.0    81.0    88.4   123.0   256.0

Estadísticas de count por estación y hora

tapply(train1$Count, list(train1$Season, train1$hour), mean)
##                  0        1        2         3        4         5        6
## Primavera 25.54167 17.27778 12.76812  7.983051 3.190476  9.614286 41.41667
## Verano    59.93056 35.97222 23.12500 11.500000 6.028169 19.875000 83.22222
## Otono     75.66667 45.01408 31.74648 16.056338 7.972222 24.944444 92.63889
## Invierno  59.15278 37.44444 22.43056 11.323944 7.513889 22.333333 83.22222
##                  7        8        9        10       11       12       13
## Primavera 119.3472 245.1806 148.1944  93.04167 111.4306 142.8194 148.3472
## Verano    233.8611 393.8750 240.2917 193.68056 236.1528 282.4444 287.4306
## Otono     251.1528 384.3472 244.0972 218.05556 258.0972 307.5417 307.6250
## Invierno  236.0000 405.4167 242.3333 188.62500 226.2361 283.5417 280.3472
##                 14       15       16       17       18       19       20
## Primavera 139.2778 143.6250 174.5417 262.6528 233.8472 159.2778 111.8333
## Verano    267.2778 282.5833 356.2778 532.2222 489.9583 364.3194 262.8056
## Otono     288.3889 299.7361 368.0833 551.7222 529.5417 408.7361 301.8333
## Invierno  268.9306 281.8056 349.3889 494.2778 434.5000 309.4861 215.8333
##                  21       22        23
## Primavera  88.33333  68.2500  42.04167
## Verano    195.27778 148.0833  99.19444
## Otono     231.69444 184.0000 121.27778
## Invierno  163.56944 126.5833  91.06944
aggregate(train1$Count, list(train1$Season, train1$hour), summary)
##      Group.1 Group.2     x.Min.  x.1st Qu.   x.Median     x.Mean  x.3rd Qu.
## 1  Primavera       0   2.000000  10.750000  17.000000  25.541667  35.000000
## 2     Verano       0   6.000000  29.750000  43.000000  59.930556  86.000000
## 3      Otono       0   8.000000  37.000000  63.500000  75.666667 110.500000
## 4   Invierno       0  13.000000  27.750000  46.000000  59.152778  75.250000
## 5  Primavera       1   1.000000   4.000000   7.000000  17.277778  21.250000
## 6     Verano       1   2.000000  13.000000  20.500000  35.972222  50.500000
## 7      Otono       1   4.000000  16.500000  29.000000  45.014085  73.500000
## 8   Invierno       1   4.000000  11.000000  19.500000  37.444444  62.000000
## 9  Primavera       2   1.000000   2.000000   4.000000  12.768116  15.000000
## 10    Verano       2   1.000000   6.000000  12.000000  23.125000  32.750000
## 11     Otono       2   2.000000   9.000000  15.000000  31.746479  59.000000
## 12  Invierno       2   1.000000   5.000000  10.000000  22.430556  38.750000
## 13 Primavera       3   1.000000   2.000000   3.000000   7.983051   9.500000
## 14    Verano       3   1.000000   3.250000   6.000000  11.500000  16.000000
## 15     Otono       3   1.000000   5.000000   9.000000  16.056338  30.000000
## 16  Invierno       3   1.000000   4.000000   7.000000  11.323944  13.000000
## 17 Primavera       4   1.000000   1.000000   2.000000   3.190476   4.000000
## 18    Verano       4   1.000000   3.000000   5.000000   6.028169   8.000000
## 19     Otono       4   2.000000   5.000000   7.000000   7.972222  10.000000
## 20  Invierno       4   1.000000   5.000000   7.000000   7.513889  10.000000
## 21 Primavera       5   1.000000   3.000000   7.000000   9.614286  16.750000
## 22    Verano       5   2.000000  12.000000  20.500000  19.875000  28.000000
## 23     Otono       5   1.000000  14.750000  24.500000  24.944444  36.250000
## 24  Invierno       5   2.000000  10.000000  23.000000  22.333333  32.000000
## 25 Primavera       6   1.000000   8.500000  33.500000  41.416667  74.000000
## 26    Verano       6   4.000000  33.000000  96.500000  83.222222 126.000000
## 27     Otono       6   3.000000  31.750000  98.500000  92.638889 137.000000
## 28  Invierno       6   4.000000  22.750000  92.500000  83.222222 124.000000
## 29 Primavera       7   1.000000  23.000000  94.500000 119.347222 216.250000
## 30    Verano       7  10.000000  85.500000 266.000000 233.861111 351.500000
## 31     Otono       7  25.000000  66.750000 270.000000 251.152778 400.250000
## 32  Invierno       7  11.000000  66.750000 256.500000 236.000000 358.250000
## 33 Primavera       8   8.000000  65.500000 215.000000 245.180556 441.750000
## 34    Verano       8  54.000000 172.750000 439.000000 393.875000 618.500000
## 35     Otono       8  70.000000 149.500000 403.500000 384.347222 590.000000
## 36  Invierno       8  55.000000 140.000000 412.000000 405.416667 650.750000
## 37 Primavera       9  14.000000  93.500000 133.500000 148.194444 225.500000
## 38    Verano       9  40.000000 178.750000 227.500000 240.291667 315.250000
## 39     Otono       9  69.000000 189.000000 228.000000 244.097222 296.000000
## 40  Invierno       9  64.000000 182.250000 223.000000 242.333333 328.000000
## 41 Primavera      10  17.000000  54.750000  80.500000  93.041667 125.250000
## 42    Verano      10  28.000000 126.500000 167.500000 193.680556 244.500000
## 43     Otono      10  29.000000 138.000000 207.000000 218.055556 273.250000
## 44  Invierno      10  33.000000 129.000000 170.000000 188.625000 230.500000
## 45 Primavera      11  11.000000  56.750000  94.000000 111.430556 150.750000
## 46    Verano      11  19.000000 140.750000 213.000000 236.152778 273.750000
## 47     Otono      11  10.000000 165.000000 232.500000 258.097222 349.000000
## 48  Invierno      11  32.000000 142.000000 200.000000 226.236111 295.000000
## 49 Primavera      12  34.000000  77.000000 115.500000 142.819444 193.500000
## 50    Verano      12  38.000000 186.250000 262.000000 282.444444 336.250000
## 51     Otono      12  22.000000 213.750000 284.500000 307.541667 376.250000
## 52  Invierno      12  33.000000 187.000000 246.000000 283.541667 359.750000
## 53 Primavera      13  12.000000  74.500000 119.000000 148.347222 193.500000
## 54    Verano      13  42.000000 186.750000 264.000000 287.430556 367.000000
## 55     Otono      13  11.000000 204.750000 289.500000 307.625000 374.750000
## 56  Invierno      13  33.000000 180.750000 261.000000 280.347222 329.000000
## 57 Primavera      14  12.000000  68.500000 106.000000 139.277778 175.750000
## 58    Verano      14  15.000000 157.750000 239.500000 267.277778 337.750000
## 59     Otono      14  24.000000 188.250000 262.000000 288.388889 359.500000
## 60  Invierno      14  25.000000 177.250000 241.000000 268.930556 344.250000
## 61 Primavera      15   7.000000  68.750000 110.000000 143.625000 188.750000
## 62    Verano      15  25.000000 163.750000 259.000000 282.583333 358.500000
## 63     Otono      15  58.000000 192.500000 288.500000 299.736111 377.000000
## 64  Invierno      15  30.000000 188.750000 269.000000 281.805556 346.250000
## 65 Primavera      16  11.000000  83.000000 133.500000 174.541667 254.500000
## 66    Verano      16  60.000000 268.500000 353.500000 356.277778 442.000000
## 67     Otono      16 106.000000 285.000000 393.500000 368.083333 450.250000
## 68  Invierno      16  31.000000 271.500000 341.500000 349.388889 434.250000
## 69 Primavera      17  25.000000 152.750000 211.500000 262.652778 389.250000
## 70    Verano      17 148.000000 363.500000 554.000000 532.222222 686.750000
## 71     Otono      17 113.000000 410.000000 521.500000 551.722222 742.500000
## 72  Invierno      17  52.000000 330.000000 498.500000 494.277778 611.500000
## 73 Primavera      18  23.000000 143.000000 174.500000 233.847222 363.000000
## 74    Verano      18  62.000000 331.000000 504.000000 489.958333 642.250000
## 75     Otono      18  68.000000 368.250000 505.500000 529.541667 685.750000
## 76  Invierno      18  51.000000 297.000000 444.500000 434.500000 543.000000
## 77 Primavera      19  11.000000  92.500000 115.000000 159.277778 230.500000
## 78    Verano      19  45.000000 273.750000 383.500000 364.319444 481.000000
## 79     Otono      19  52.000000 305.750000 383.500000 408.736111 498.500000
## 80  Invierno      19  33.000000 223.000000 303.000000 309.486111 373.250000
## 81 Primavera      20  11.000000  63.000000  88.000000 111.833333 160.000000
## 82    Verano      20  39.000000 205.250000 276.000000 262.805556 336.250000
## 83     Otono      20  82.000000 228.250000 289.500000 301.833333 386.750000
## 84  Invierno      20  26.000000 165.000000 204.500000 215.833333 257.750000
## 85 Primavera      21   7.000000  50.250000  71.000000  88.333333 123.750000
## 86    Verano      21  34.000000 147.500000 204.500000 195.277778 246.250000
## 87     Otono      21  38.000000 180.000000 220.000000 231.694444 286.750000
## 88  Invierno      21   6.000000 121.750000 164.000000 163.569444 201.250000
## 89 Primavera      22   9.000000  36.750000  52.500000  68.250000 101.500000
## 90    Verano      22  23.000000 111.750000 153.000000 148.083333 182.750000
## 91     Otono      22  29.000000 149.250000 179.000000 184.000000 218.250000
## 92  Invierno      22  13.000000  94.250000 116.500000 126.583333 153.250000
## 93 Primavera      23   6.000000  22.000000  34.000000  42.041667  59.250000
## 94    Verano      23  26.000000  61.000000  92.000000  99.194444 120.250000
## 95     Otono      23  20.000000  94.500000 127.000000 121.277778 148.500000
## 96  Invierno      23  16.000000  60.000000  83.000000  91.069444 111.500000
##        x.Max.
## 1   91.000000
## 2  206.000000
## 3  180.000000
## 4  283.000000
## 5   93.000000
## 6  123.000000
## 7  124.000000
## 8  165.000000
## 9   80.000000
## 10  93.000000
## 11  96.000000
## 12  78.000000
## 13  66.000000
## 14  50.000000
## 15  48.000000
## 16  56.000000
## 17  22.000000
## 18  17.000000
## 19  28.000000
## 20  16.000000
## 21  29.000000
## 22  45.000000
## 23  55.000000
## 24  49.000000
## 25 109.000000
## 26 184.000000
## 27 211.000000
## 28 179.000000
## 29 344.000000
## 30 569.000000
## 31 596.000000
## 32 515.000000
## 33 594.000000
## 34 710.000000
## 35 770.000000
## 36 839.000000
## 37 314.000000
## 38 408.000000
## 39 396.000000
## 40 400.000000
## 41 224.000000
## 42 493.000000
## 43 495.000000
## 44 539.000000
## 45 324.000000
## 46 575.000000
## 47 585.000000
## 48 647.000000
## 49 410.000000
## 50 684.000000
## 51 757.000000
## 52 743.000000
## 53 464.000000
## 54 686.000000
## 55 729.000000
## 56 710.000000
## 57 512.000000
## 58 678.000000
## 59 647.000000
## 60 654.000000
## 61 487.000000
## 62 702.000000
## 63 696.000000
## 64 724.000000
## 65 509.000000
## 66 662.000000
## 67 701.000000
## 68 659.000000
## 69 644.000000
## 70 869.000000
## 71 970.000000
## 72 948.000000
## 73 712.000000
## 74 831.000000
## 75 977.000000
## 76 887.000000
## 77 446.000000
## 78 645.000000
## 79 686.000000
## 80 743.000000
## 81 302.000000
## 82 478.000000
## 83 551.000000
## 84 497.000000
## 85 233.000000
## 86 339.000000
## 87 584.000000
## 88 321.000000
## 89 191.000000
## 90 291.000000
## 91 502.000000
## 92 264.000000
## 93 119.000000
## 94 256.000000
## 95 248.000000
## 96 220.000000
train1_clean <- train1[complete.cases(train1[, c("Count", "Season", "hour")]), ]

4. Construcción diagrama de caja

boxplot(Count ~ Season,
        data = train1,
        main = "Cantidad de Bicicletas Rentadas por Estacion",
        xlab = "Estacion del Ano",
        ylab = "Total de Bicicletas Rentadas",
        col = c("springgreen", "gold", "orange", "lightblue"))

5. Interpretación de Resultados

¿Qué estación muestra mayor número de bicicleats rentadas? ¿Por qué ocurre?

-Podemos observar que durante el verano y otoño se presenta un mayor número de alquileres de bicicletas, lo cual puede estar relacionado con mejores condiciones climáticas y mayor actividad turística. En contraste, la primavera e invierno tienen una mediana significativamente más baja, lo que sugiere menor demanda posiblemente por temperaturas aún frías o lluvias. Aun así, hay varios valores atípicos, lo que indica que en días puntuales, incluso en invierno puede tener picos de uso (quizá por eventos o condiciones climáticas favorables).

-Las estadísticas descriptivas generadas por tapply() permiten observar cómo varía el número total de bicicletas rentadas (count) según la hora del día y la estación del año. Al analizar la tabla:

  • Se aprecia una tendencia general de mayor uso de bicicletas entre las 7:00 y las 18:00, coincidiendo con los horarios laborales y escolares.
  • En estaciones como Verano y Otoño, los valores máximos y promedios tienden a ser más altos en comparación con Invierno, lo que sugiere un mayor uso del sistema de bicicletas en épocas con mejor clima.
  • La Primavera muestra un comportamiento intermedio, con un uso estable aunque menor que en Verano.
  • Las horas más tempranas (0:00–6:00) y más tardías (21:00–23:00) presentan un bajo número de alquileres, lo cual es esperable dado el ritmo urbano nocturno.

Este análisis pone en evidencia patrones de movilidad urbana asociados a la temporalidad, y es útil para optimizar la disponibilidad de bicicletas según la estación y la hora del día.

Interpretación de los promedios de alquiler por estación y hora

El análisis de los promedios de bicicletas rentadas por hora y estación, obtenido mediante la función tapply(), permite identificar patrones claros de comportamiento:

  • Patrón horario: Durante todas las estaciones, el número de bicicletas alquiladas es bajo entre la medianoche y las primeras horas de la mañana (0:00–5:00). A partir de las 6:00 a.m., el promedio comienza a subir de forma constante, alcanzando sus máximos entre las 8:00 y las 18:00, lo cual coincide con las jornadas laborales y escolares.

  • Estaciones con mayor actividad:

  • Verano destaca como la estación con los promedios más altos de uso durante casi todo el día, alcanzando más de 500 alquileres por hora en algunos momentos (ej. 17:00).

  • Otoño sigue un patrón similar, con cifras también elevadas y consistentes.

  • Invierno, aunque con valores más moderados en la madrugada y noche, presenta también picos de uso importantes entre las 11:00 y 18:00 (hasta 300 bicicletas por hora).

  • Primavera muestra una demanda más baja en comparación con otras estaciones, especialmente durante las horas de la mañana. Sin embargo, sigue un patrón horario similar, reflejando que las dinámicas urbanas mantienen cierta estabilidad a lo largo del año.

Estos resultados reflejan cómo factores como el clima, la hora del día y los hábitos urbanos influyen directamente en el uso del sistema de bicicletas. Esta información puede ser clave para ajustar la disponibilidad de bicicletas en estaciones clave, planear mantenimientos y desarrollar políticas de movilidad más efectivas en la ciudad.