Continúo con el análisis, recuperando los datos del dataset limpio del anterior notebook https://rpubs.com/cperaltap/actividad_1_limpieza
X | Hora | Dia | Mes | Year | Distancia | Calorias | Tiempo | FCMedia | Zancada | Ascenso | Velocidad | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Min. : 1.0 | Min. : 5.0 | Min. : 2.0 | Min. : 1.000 | Min. :2015 | Min. : 1.01 | Min. : 48.0 | Min. : 4.53 | Min. :105.0 | Min. :0.7422 | Min. : 0.00 | Min. : 7.30 | |
1st Qu.:116.5 | 1st Qu.: 9.0 | 1st Qu.:112.0 | 1st Qu.: 4.000 | 1st Qu.:2017 | 1st Qu.: 5.63 | 1st Qu.: 349.5 | 1st Qu.: 32.87 | 1st Qu.:140.0 | 1st Qu.:0.9546 | 1st Qu.: 42.00 | 1st Qu.: 9.74 | |
Median :232.0 | Median :10.0 | Median :212.0 | Median : 7.000 | Median :2018 | Median : 7.02 | Median : 445.0 | Median : 40.57 | Median :147.0 | Median :1.0200 | Median : 60.00 | Median :10.44 | |
Mean :232.0 | Mean :11.6 | Mean :196.6 | Mean : 6.989 | Mean :2018 | Mean : 7.07 | Mean : 447.3 | Mean : 40.91 | Mean :146.4 | Mean :1.0226 | Mean : 65.98 | Mean :10.42 | |
3rd Qu.:347.5 | 3rd Qu.:15.0 | 3rd Qu.:278.0 | 3rd Qu.:10.000 | 3rd Qu.:2020 | 3rd Qu.: 8.05 | 3rd Qu.: 528.5 | 3rd Qu.: 47.31 | 3rd Qu.:154.0 | 3rd Qu.:1.0800 | 3rd Qu.: 87.00 | 3rd Qu.:11.03 | |
Max. :463.0 | Max. :21.0 | Max. :364.0 | Max. :12.000 | Max. :2021 | Max. :21.35 | Max. :1252.0 | Max. :119.83 | Max. :186.0 | Max. :1.3586 | Max. :301.00 | Max. :13.77 |
Haciendo un summary(me apoyo en kable para hacerlo más cómodo visualmente) podemos observar los mínimos, máximos, principales cuantiles incluyendo la media y la mediana.
Datos que nos llaman la atención:
## [1] 10.41991
# Desviación típica y variancza de la distancia
# Si lo pongo entre paréntesis asigno a la variable y muestro
(sd_vel <- sd(act_data$Distancia))
## [1] 2.353329
## [1] 5.538157
## [1] FALSE
# Podemos sacar los diferentes cuantiles eligiéndolos en la función
# En este caso para las Calorias
quantile(act_data$Calorias, prob=c(0.25,0.5,0.75))
## 25% 50% 75%
## 349.5 445.0 528.5
## 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
## 48.0 267.2 329.0 364.0 396.0 445.0 472.0 504.4 556.6 636.4 1252.0
## [1] 7.02
# La moda es el valor más repetido (redondeamos a un decimal)
# Creamos una pequeña función para calcularla
moda <- function(x) {
return(as.numeric(names(which.max(table(x)))))
}
moda(round(act_data$Distancia, 1))
## [1] 7
Se observa que las mayorías de las carreras son entre 5 y 8 km. Además la distancia de 10Km también es recurrente
Vemos que la mayoría de las carreras tienen un ascenso acumulado entre 40 y 90 y se ven algunos outliers por encima de 100 (a ojo, sin entrar a valorar que superen el 1.5 del valor intercuartil). Veamos esos outliers:
# Velocidad media por año en la que se realiza la actividad
agrupado_y_velocidad <- act_data %>% group_by(Year) %>% summarise(Velocidad_media = mean(Velocidad))
agrupado_y_velocidad
# Hacemos un gráfico de lineas para visualizar la evolución
ggplot(data = agrupado_y_velocidad) +
geom_line(aes(x = Year, y = Velocidad_media), col="blue", size= 2) +
scale_x_continuous("AÑOS", labels = as.character(agrupado_y_velocidad$Year), breaks = agrupado_y_velocidad$Year)
Se puede observar que los años más veloces del atleta han sido 2017 y 2018, a partir del cual se observa como va bajando esta velocidad paulatinamente hasta 2021. Aproximadamente -1.5 Kmh respecto a esos años.
#Añado columna de acumulador para la actividad
act_data$Acumulado <- ave(act_data$Distancia, act_data$Year, FUN=cumsum)
plot_acumulado <- ggplot(data = act_data) +
geom_line(aes(x = Dia, y = Acumulado, col = factor({Year})),
size = 1,
alpha = 2/5)
ggplotly(plot_acumulado)
Tenemos información interesante, como que el año 2019 se empezó a entrenar tarde, pero finalmente la evolución en más progresiva y es el año con más distancia recorrida. El gráfico también nos muestra que en el año 2015 los registros comienzan pasada la mitad de año y el 2021 deja de tener sesiones el último trimestre (Eso es porque estamos realizando este estudioen Octubre de 2021) Veamos lo que decimos sacando la info directamente:
## [1] 218
## [1] 297
act_dist_by_month_year <- act_data %>% group_by(Mes, Year) %>% summarise(Distancia = sum(Distancia))
## `summarise()` has grouped output by 'Mes'. You can override using the `.groups` argument.
plot_month_year <- ggplot(act_dist_by_month_year, aes(x=Mes, y=Distancia, fill=Year)) +
geom_bar(stat="identity") +
theme_minimal() # Añadimos un tema diferente, para ser más cómodo visualmente
ggplotly(plot_month_year)
Visualmente podemos observar que Octubre (mes 10) es el más activo y Junio es más inactivo. Además, si interactuamos, vemos que hay meses/años especialmente activos. Por ejemplo Marzo de 2019 o Julio de 2018.
# Verificamos ordenando por distancia el dataset de la agrupación
act_dist_by_month_year %>% arrange(desc(Distancia))