Serie de tiempo sobre el rendimiento del Atleta Iván Darío González González

Es un atleta colombiano nacido en Bogotá, destacado en pruebas de fondo. Sus principales carreras han sido en 10000 metros planos, 10 kilómetros en ruta, media maratón y últimamente enfocándose en la maratón. Ha venido escalando a nivel internacional representado a Colombia, su última gran aparición fue en los juegos olímpicos de verano de 2020. Cada 2 años se nota que el atleta busca subir la carga de sus entrenamientos y esto se debe a que desea buscar las marcas mínimas para poder participar a Juegos Panamericanos y Olímpicos.

Su ultima carrera fue en Sevilla el 18 de febrero de 2024 en la distancia de maratón, donde buscaba bajar de 2:08:10 y tener un cupo para la maratón de los juegos olímpicos. Sin embargo, tuvo que retirarse y buscara en otra ocasión ese cupo.

Durante su preparación para las carreras, corre diariamente cierta cantidad de kilómetros y diferentes entrenamientos medidos por pruebas de lactatos. Los resultados fueron extraídos de STRAVA, el cual es una app que se conecta a través de garmin connect que es quien toma los datos del reloj y/o pulsometro. De aquí se miden los kms, watts, pace, etc.

Descripción de la serie de tiempo

Esta serie de tiempo consiste en los kms acumulados en 7 dias del atleta Iván Darío González González ,es decir cada semana, empezando la semana 1 el 31 de diciembre del 2018 y terminando el 12 de febrero de 2024 (269 datos).

## Time Series:
## Start = 2018.98083556918 
## End = 2019.07665772327 
## Frequency = 52.18 
## [1] 2018.981 2019.000 2019.019 2019.038 2019.057 2019.077

Se evidencia por medio del anterior gráfico que la serie a simple vista NO pareciera que presente tendencia y varianza marginal. Tampoco pareciera ser muy necesaria estabilizar varianza por medio de la transformación de Box-cox, sin embargo, veamos:

## [1] -3

## [1] -5

Como bien se sospechaba, al ser el valor de \(\lambda=0.95\) ,muy cercano a 1 se puede decir que no es necesaria la transformación mencionada.

Análisis de tendencias

Análisis 1: Modelo lineal

Conforme al gráfico descriptivo anterior, se puede observar que la serie no parece tener una tendencia lineal creciente tan clara, es decir, sin embargo procederemos a modelarla como sigue:

\[\mu_t=\beta_0 + \beta_1 t \] Procedemos a estimar los parámetros de la tendencia determinista, con la cual obtenemos:

## 
## Call:
## lm(formula = ivan ~ time(ivan), na.action = NULL)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -132.340  -32.164    6.263   39.507  141.374 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)   
## (Intercept) -11038.950   4060.776  -2.718  0.00699 **
## time(ivan)       5.524      2.009   2.750  0.00637 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 48.76 on 266 degrees of freedom
## Multiple R-squared:  0.02764,    Adjusted R-squared:  0.02398 
## F-statistic: 7.561 on 1 and 266 DF,  p-value: 0.006373

Así, \(\beta_0=-11000.586\) y \(\beta_1=5.504\) ambos significativos.

Eliminamos la tendencia con la predicción de la recta resultando la serie de la siguiente forma:

Veamos cómo se comporta la autocorrelación en el gráfico de autocorrelación simple antes y después de quitar la tendencia.

Muestra una correlacion en un rezago de 1 y ademas parece tener un patrón es decir tal vez tenga un ciclo.

Análisis 2: Promedio móvil

El promedio móvil es un método útil para descubrir ciertos rasgos en una serie de tiempo, como tendencias a largo plazo y componentes estacionales.En particular, si \(x_t\) representa las observaciones, entonces una forma de estimar la tendencia de la serie es:

\[m_t=\sum_{i=-k}^{k}a_jx_{t-j}\] Con \(a_j \geq 0\), \(\sum_{i=-k}^{k}a_j=1\).

Por medio de la función decompose se descompone una serie de tiempo en componentes estacionales, de tendencia e irregulares utilizando promedios móviles. Se ocupa del componente estacional aditivo o multiplicativo.

Seguiremos explorando otras formas dado que aunque decompose nos da idea del comportamiento de la tendencia y el componente estacional no resulta ser del todo confiable.

Análisis 3: estimacion STL

Se procede primero a realizar un ajuste de un modelo de la tendencia aplicando regresión LOESS utilizando un ajuste local cuadrático a nuestra serie.

## 'data.frame':    268 obs. of  2 variables:
##  $ Fecha: Date, format: "2018-12-31" "2019-01-07" ...
##  $ datos: num  17.3 86.4 107.3 163.1 153.5 ...
## # A tibble: 268 × 3
##    Fecha      datos datos_ajus
##    <date>     <dbl>      <dbl>
##  1 2018-12-31  17.3       113.
##  2 2019-01-07  86.4       113.
##  3 2019-01-14 107.        113.
##  4 2019-01-21 163.        113.
##  5 2019-01-28 154.        113.
##  6 2019-02-04 131         113.
##  7 2019-02-11 146.        113.
##  8 2019-02-18 176.        113.
##  9 2019-02-25  99.2       113.
## 10 2019-03-04 170.        113.
## # ℹ 258 more rows

Nos dice que hay un poco de tendencia y esta es creciente arriba.

## tbl_ts [268 × 2] (S3: tbl_ts/tbl_df/tbl/data.frame)
##  $ Fecha: Date[1:268], format: "2018-12-31" "2019-01-07" ...
##  $ datos: num [1:268] 17.3 86.4 107.3 163.1 153.5 ...
##  - attr(*, "key")= tibble [1 × 1] (S3: tbl_df/tbl/data.frame)
##   ..$ .rows: list<int> [1:1] 
##   .. ..$ : int [1:268] 1 2 3 4 5 6 7 8 9 10 ...
##   .. ..@ ptype: int(0) 
##  - attr(*, "index")= chr "Fecha"
##   ..- attr(*, "ordered")= logi TRUE
##  - attr(*, "index2")= chr "Fecha"
##  - attr(*, "interval")= interval [1:1] 7D
##   ..@ .regular: logi TRUE

En la cual se evidencia un mejor ajuste a la tendencia que presenta la serie.

Análisis 4: Diferencia ordinaria

Usando objeto tsibble

La diferenciación ordinaria de orden 1 elimina una tendencia lineal la cual se identificó al inicio.

Diferenciando basado en el objeto tibble

Se observa que no es necesario diferenciar nuevamente por lo que ya no se muestra una tendencia en la serie, conforme a la figura presentada.

Se puede observar que hay una ligera tendencia y que con diferenciación se logra remover bastante bien.

Índice AMI (average mutual information): ayuda a cuantificar la cantidad de conocimiento obtenido sobre el valor de \(X_{t+d}\) al observar \(X_t\). Equivalentemente, el AMI es una medida de qué tanto el conocimiento de \(X\) reduce la incertidumbre acerca de \(Y\).

## $time.lag
##  [1]  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
## [26] 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
## [51] 50 51 52
## 
## $mutual.information
##  [1] 2.08049544 0.18637757 0.04883233 0.08883336 0.05287532 0.06146781
##  [7] 0.06327098 0.07235017 0.07337034 0.04537722 0.11765413 0.08458638
## [13] 0.06468029 0.08963434 0.07644598 0.04707373 0.04932059 0.05393744
## [19] 0.07886689 0.08635156 0.08062092 0.07815911 0.06431285 0.07589076
## [25] 0.05613649 0.06507543 0.07304325 0.09291690 0.02874878 0.04072128
## [31] 0.03745030 0.07828308 0.06256930 0.11698211 0.01744561 0.06891602
## [37] 0.05794747 0.08257354 0.07686856 0.07905979 0.06658347 0.01151891
## [43] 0.05316289 0.02155420 0.05090962 0.02078122 0.01803718 0.02068842
## [49] 0.02584216 0.07970100 0.03376378 0.04747632 0.04362813
## 
## $units
## [1] "Bits"
## 
## $n.partitions
## [1] 6
## 
## attr(,"class")
## [1] "mutualInf"

Nos podría indicar un patrón estacional de periodo 19, lo cual se explorará con más detalle en el análisis siguiente.

Detección de estacionalidad

El periodo estacional, \(s\), se define como número de observaciones que forman el ciclo estacional.

Note que hay semanas donde muchas subseries están centradas alrededor de valores diferentes usando el objeto ts.

El gráfico de cajas confirma la presencia de un ciclo estacional.

Periodograma

El periodograma puede verse como una herramienta para la detección de posibles ciclos(ocultos) deterministas en una serie temporal.

Del estudio de la estacionalidad de la serie de tiempo, se pudo ver que ésta componente es cíclica, la cual puede representarse por ejemplo mediante funciones periódicas.

## [1] "El valor de la frecuencia donde se mC!ximiza el periodograma para la serie es: 0.485185185185185"
## [1] "El periodo correspondiente es aproximadamente: 2.06106870229008"

El periodograma no parece ser informativo en cuanto al periodo de la serie. Pues no es muy claro al respecto. Se podría pensar en múltiples patrones estacionales.

Modelamiento de la estacionalidad con componentes de Fourier y dummy

Vamos a empezar el análisis estacionalidad ilustrando el número de kilómetros promedio que recorrió Ivan cada semana para un periódo comprendido desde el 31 de Diciembre de 2018 hasta el 12 de Febrero de 2024.

Podemos observar que el valor medio de los kilometros recorridos es diferente en cada semana, lo que nos indicaría presencia de estacionalidad por semana.

Ahora hagamos la exploración por mes

veamos un grafico de el promedio de kilometros recorridos por cada mes

## # A tibble: 12 × 3
##    month  mean    sd
##    <fct> <dbl> <dbl>
##  1 Jan   157.   47.2
##  2 Feb   130.   36.1
##  3 Mar   130.   37.2
##  4 Apr    95.7  44.4
##  5 May   123.   41.7
##  6 Jun   139.   52.0
##  7 Jul   117.   57.0
##  8 Aug   132.   57.8
##  9 Sep   126.   49.6
## 10 Oct   114.   48.3
## 11 Nov   136.   35.6
## 12 Dec   116.   60.7

Cabe anotar que se define el periodo en \(s=52\) dado que cada 52 semanas se vuelve a presentar el mismo valor medio.

Armónicos

Ajuste Dummy

La idea en estos casos es introducir \(51(s − 1)\) variables impulso o dummy \(I^{(j)}_t\) que tomen 1 en una semana y cero en el resto.

Varios modelos al mismo tiempo
## # A tibble: 4 × 8
##   .model             sigma2 log_lik   AIC  AICc   BIC ar_roots  ma_roots 
##   <chr>               <dbl>   <dbl> <dbl> <dbl> <dbl> <list>    <list>   
## 1 Fourier1/2Ivandiff  2603.  -1429. 2862. 2862. 2869. <cpl [1]> <cpl [0]>
## 2 Fourier1/4Ivandiff  3068.  -1451. 2904. 2904. 2908. <cpl [0]> <cpl [0]>
## 3 Fourier0Ivandiff    3068.  -1451. 2904. 2904. 2908. <cpl [0]> <cpl [0]>
## 4 DummyIvandiff       2814.  -1411. 2927. 2953. 3114. <cpl [0]> <cpl [0]>
## # A tibble: 1 × 6
##   .model             term  estimate std.error statistic  p.value
##   <chr>              <chr>    <dbl>     <dbl>     <dbl>    <dbl>
## 1 Fourier1/2Ivandiff ar1     -0.393    0.0563     -6.98 2.33e-11

Conforme a los criterios de información se puede decir que el modelo de Fourior 1/2 el cual corresponde a un modeelo de la forma: \(Z_t = \mu + A \sin(\omega_t) + B \cos(\omega_t) + a_t\). Con \(\omega=2\pi/52=\pi/26\). es que el mejor se ajusta al componente estacional de la serie.