Exámen práctico SAA

Author

Jesús Turpín

Published

December 12, 2023

Instrucciones previas

  • Completa la plantilla de código y sube el archivo .qmd a la actividad del examen del aula virtual.

Información del dataset y carga de datos decathlon_df:

Este conjunto de datos contiene resultados reales de la prueba de atletismo decatlón masculino de 2012. Solo se han tenido en cuenta marcas iguales o superiores a 6500 puntos.

En esta competición, los atletas realizan 10 pruebas de atletismo de pista (carreras y saltos) y campo (lanzamientos). La posición en cada prueba no es lo imporante para puntuar, sino la marca obtenida en cada una. Cada registro o marca tiene una puntuación asociada según unas tablas reglamentarias. En carreras, un tiempo inferior otorga mayor puntuación, mientras que en saltos y lanzamientos, la puntuación es mejor a mayor distancia.

El análisis de datos en este deporte es fundamental para programar y optimizar los entrenenamientos de los atletas de élite, pues ciertos estudios demuestran que hay determinadas pruebas que tienen un peso mayor sobre la puntuación total.

Normalmente, este tipo de competición se divide en dos días. Los eventos del primer día incluyen 100 metros, salto de longitud, lanzamiento de peso, salto de altura y 400 metros. Los eventos del segundo día incluyen 110 metros vallas, lanzamiento de disco, salto con pértiga, lanzamiento de jabalina y 1500 metros.

Variables:

  • Total: Puntuación total.

  • Name: Nombre del atleta.

  • Surname: Apellido del atleta.

  • X100m: Marca en la prueba de velocidad 100m, en segundos.

  • LJ: Marca en la prueba de salto de lonjitud, en metros.

  • SP: Marca en la prueba de lanzamiento de peso, en metros.

  • HJ: Marca en la prueba de salto de altura, en metros.

  • X400m: Marca en la prueba de 400m lisos, en segundos.

  • X110H: Marca en la prueba de 110m vallas, en segundos.

  • DT: Marca en la prueba de lanzamiento de disco, en metros.

  • PV: Marca en la prueba de salto con pértiga, en metros.

  • JT: Marca en la prueba de lanzamiento de jabalina, en metros.

  • X1500m: Marca en la prueba de medio fondo 1500m, en segundos

  • First.day: Puntuación de las 5 primeras pruebas (Día 1)

  • Second.day: Puntuación de las 5 pruebas siguentes (del Día 2)

Librerías:

Code
## Librerías
library(tidyverse)
if(!require("scar")) {
  install.packages("scar")
}
library(scar)

if(!require("corrplot")) {
  install.packages("corrplot")
}
library(corrplot)
if(!require("broom")) {
  install.packages("broom")
}
library(broom)

Carga de datos

Code
data("decathlon_raw")
set.seed(133)
decathlon_df <- decathlon_raw %>%
  group_by(Name, Surname) %>%
  slice_max(order_by = Total, n = 1) %>%
  ungroup()
Code
glimpse(decathlon_df)
Rows: 613
Columns: 15
$ Total      <int> 7324, 6611, 7059, 6910, 7010, 7214, 6573, 6715, 8064, 6652,…
$ Name       <chr> "Aaron", "Abdoljalil", "Achim", "Adam", "Adam", "Adam", "Ad…
$ Surname    <chr> "Young", "Toomaj", "Lehner", "Bjorling", "Hromcik", "Salzma…
$ X100m      <dbl> 10.94, 11.39, 11.56, 11.24, 11.23, 11.13, 11.31, 11.12, 11.…
$ LJ         <dbl> 6.68, 6.71, 6.69, 7.00, 7.11, 6.25, 6.69, 6.33, 7.26, 6.66,…
$ SP         <dbl> 12.75, 12.51, 15.21, 12.36, 12.17, 11.34, 11.40, 12.19, 14.…
$ HJ         <dbl> 1.84, 2.02, 1.85, 1.77, 1.84, 1.85, 1.87, 1.90, 2.07, 1.83,…
$ X400m      <dbl> 48.46, 52.36, 53.62, 50.71, 50.68, 48.59, 49.78, 49.19, 49.…
$ X110H      <dbl> 14.85, 15.57, 16.18, 15.43, 15.59, 14.82, 15.41, 15.30, 14.…
$ DT         <dbl> 33.91, 39.16, 48.60, 34.88, 36.60, 37.40, 24.50, 33.11, 41.…
$ PV         <dbl> 4.80, 3.70, 3.90, 3.95, 4.40, 4.70, 4.45, 4.20, 4.82, 4.20,…
$ JT         <dbl> 47.70, 57.42, 55.30, 54.03, 46.85, 45.77, 38.86, 34.50, 60.…
$ X1500m     <dbl> 277.41, 361.78, 286.70, 282.29, 284.98, 262.22, 288.55, 282…
$ First.day  <int> 3813, 3690, 3609, 3634, 3712, 3590, 3616, 3677, 4184, 3417,…
$ Second.day <int> 3511, 2921, 3450, 3276, 3298, 3624, 2957, 3038, 3880, 3235,…

1. Medidas de centralidad y dispersión (1 pts)

Observa y compara las medidas de dispersión sobre los puntos conseguidos en el primer y segundo día. Completa los chunks para justificar tu respuesta.

Indica:

1.1 Desviación estándar de los puntos de cada día: (0.25 Pts)

Code
sd_dias <- decathlon_df %>%
  
  
sd_dias

1.2 Rango de los puntos de cada día: (0.25 Pts)

Code
rango_dias <- decathlon_df %>%
  
  
rango_dias

1.3 Media y mediana de los puntos de cada día: (0.25 Pts)

Code
media_dias <- decathlon_df %>%
  
  
media_dias
Code
mediana_dias <- decathlon_df %>%
  
  
mediana_dias  

1.4 Nombre y apellido más común y su frecuencia de aparición (si hubiera varios, indicar todos): (0.25 Pts)

Code
decathlon_df %>%

2. Distribución y posición de los datos (1,5 pts)

2.1 (0,25 Pts) Observa la distribución de los datos de las marcas de las 10 pruebas:

Code
decathlon_df %>%
  select_if(is.double) %>%
  pivot_longer(cols = everything(), names_to = "Prueba", values_to = "marca") %>%
  ggplot(aes(x = marca)) +
    geom_histogram(bins = 10)+
    labs(
      title = "Distribución Marcas",
      x = "marca"
    ) +
  facet_wrap(~ Prueba, scales = "free")+
    theme_bw()

¿Son las marcas de los atletas distribuciones simétricas y que tienden a una normal aproximadamente?

2.2 (0,25 Pts) Dibuja el histograma de los puntos totales con ggplot. Para obtener el número de bins, utiliza la fórmula de Sturges:

\[k = 1 + \log_2(N)\] siendo k el nº de barras del histograma (bins) y N el tamaño de la muestra

Code
# Fórmula de Sturges
nbins <- round(---
Code
decathlon_df %>%
  
  
  theme_bw()

Según el histograma, ¿Es simétrica la distribución de los puntos totales? ¿A qué se debe? Justifica tu respuesta. Pista: vuelve a leer el primer párrafo de la información del dataset.

2.3 (0.5 Pts) La siguiente gráfica, muestra los diagramas de caja y bigote para cada una de las pruebas. Los registros han sido estandarizados por z-score. A partir de la gráfica, indica para el atleta Aston Eaton (nº 1 en el ranking 2012) y para todas las pruebas si su marca fue un valor atípico y si en caso afirmativo, indica si además, fue la mejor respecto a sus rivales. ¿En qué prueba obtuvo peor rendimiento relativo a sus rivales?

Code
decathlon_df %>%
  mutate_if(is.double, scale) %>%
  select(-First.day, -Second.day) %>%
  mutate(Eaton = Total > 9000) %>%
  pivot_longer(cols = c(-Total, -Name, -Surname, -Eaton), names_to = "Prueba", values_to = "marca_zscore") %>%
  ggplot(aes(x = Prueba, y = marca_zscore, color = Eaton)) +
    geom_boxplot() +
    labs(
      title = "Marcas",
      x = "Prueba",
      y = "marca_zscore"
    ) +
    theme_bw()

  • X100m:

  • LJ:

  • SP:

  • HJ:

  • X400m:

  • X110H:

  • DT:

  • PV:

  • JT:

  • X1500m:

  • Peor especialidad de las 10 en términos relativos a los otros atletas:

2.4 (0.5 Pts) Transforma las 4 variables que están expresadas en tiempo a velocidad en metros/segundo, teniendo en cuenta los metros de cada prueba. Repite la visualización anterior con las modificaciones hechas. ¿Qué ocurrió?

Code
decathlon_df %>%
  mutate(      ) %>% #convierte los tiempos en velocidad
  mutate_if(is.double, scale) %>% # aplica zscore
  select(-First.day, -Second.day) %>%
  mutate(Eaton = Total > 9000) %>%
  pivot_longer(cols = c(-Total, -Name, -Surname, -Eaton), names_to = "Prueba", values_to = "marca_zscore") %>%
  ggplot(aes(x = Prueba, y = marca_zscore, color = Eaton)) +
    geom_boxplot() +
    labs(
      title = "Marcas",
      x = "Prueba",
      y = "marca_zscore"
    ) +
    theme_bw()

3. Relación entre variables, correlación y regresión lineal simple. (2 Pts)

3.1 (0,5 Pts) Grafica la matriz de correlación de las 10 pruebas. Explica las correlaciones más fuertes y trata de justificar su lógica de aquellas positivas que superan 0.60 y la más fuerte de todas las negativas. Utiliza el método number para ver los resultados con mayor precisión.

Code
# Matriz de correlación
decathlon_df %>%
  --- %>%
  --- %>%
  ---(method = ---)

3.2 (1 Pts) Basándote en las pruebas del día 1 y en la matriz de correlación, elige la que crees que puede ser la mejor variable predictora para estimar las marcas de 4 de las pruebas del día 2 con un modelo de regresión lineal simple. Utiliza el dataframe normalizado y con las marcas de tiempo pasadas a velocidad. decathlon_scaled

  • X110H en función de …

  • DT en función de …

  • JT en función de …

  • x1500m en función de …

Code
# Modelando los resultados de 110m vallas en función de ... (prueba del día 1)
lm_X110H <- ---(data=decathlon_scaled,---)
glance(lm_X110H)
Code
# Modelando los resultados de lanz. disco en función de ... (prueba del día 1)
lm_DT <- ---(data=decathlon_scaled,---)
glance(lm_DT)
Code
# Modelando los resultados de lanz. jabalina en función de ... (prueba del día 1)
lm_JT <- ---(data=decathlon_scaled,---)
glance(lm_JT)
Code
# Modelando los resultados de 1500m  en función de ... (prueba del día 1)
lm_x1500m <- ---(data=decathlon_scaled,---)
glance(lm_x1500m)

3.3 (0,5 Pts) ¿Qué modelo explica mejor la varianza de los datos? Observa el coeficiente de determinación del modelo y justifica tu respuesta.

4. Variable aleatoria y distribuciones de probabilidad (1,50 Pts)

Eres responsable de un videojuego de simulación atletismo que está en fase de desarrollo. Te toca trabajar en la prueba de salto de longitud. En esa prueba, cada atleta realiza una carrera de aceleración previa al salto, tomando una distancia que cada atleta elige y fija para llegar sin pasarse a la línea de salto (tabla).

La distancia de la carrera del atleta previa al salto es variable aleatoria. En el momento del salto, la distancia restante de la zapatilla del atleta al límite reglamentario debe ser positiva o cero (ajuste perfecto), si es negativa, significa que el atleta se ha pasado y el salto se considera como nulo.

4.1 (0,25 Pts) Si el ajuste de talonamiento inicial sigue una distribución normal, con media 5 cm (margen de seguridad) y desviación estándar de 5 cm. ¿Cuál es la probabilidad de que el salto resulte nulo, rebasando la tabla? En esa situación, la distancia de la punta del pie a la tabla sería negativa.

Code
# Probabilidad de pisar la línea
---(---)

4.2 (0,25 Pts) Supongamos que el primer salto es bueno y el jugador, decide arriesgar y adelantar la carrera 7,5 cm para ajustar al máximo en los dos intentos restantes. Realiza dos simulaciones de saltos usando -2,5 cm como media y 5 cm de desviación estándar. Utiliza la semilla ‘13’ para reproductividad.

Code
# Semilla 

# Simulando dos saltos centrados en -2.5 cm
---(---)

¿Qué precisión se consiguió en el cada uno de los intentos? ¿Alguno resultó nulo? ¿Cuál?

4.3 (0,25) Calcula la probabilidad de resultado nulo en cada salto tras el ajuste anterior y guárdalo en la variable p.

Code
# Probabilidad de salto nulo (distancia negativa) en cada salto:
p <- 
p

4.4 (0.25 Pts) Usando p, calcula de forma manual (usando aritmética) la probabilidad de obtener, al menos, un salto válido en los dos intentos restantes, suponiendo que los sucesos son independientes.

Code
# Cálculo de la probabilidad de, al menos un salto válido

4.5 (0.25 Pts) Realiza el mismo cálculo usando la distribución binomial a partir del valor de p y dos intentos. Considera éxito como salto válido y su probabilidad es 1-p. Deberías llegar al mismo resultado que en ejercicio anterior.

Code
# Cálculo usando funciones de la distribución binomial

4.6 (0.25 Pts) La computadora simula tres saltos para cada uno de los otros 11 atletas usando la distribución binomial, con probabilidad de salto válido 1-p. Usa la semilla ‘14’. ¿Algún atleta obtuvo 3 nulos y se quedó sin puntuar? ¿Cuál?

Code
# Semilla

# simulación de 3 saltos por cada uno de los 11 atletas, con probabilidad de salto válido 1-p.