sábado, 11 de agosto de 2018

Windsurf vs Kitesurf. Series temporales con R

Como divertimento ligero y refrescante, que la canícula aún aprieta, vamos a analizar el interés reportado por Google sobre dos deportes veraniegos de viento rivales: el veterano Windsurf y el relativamente moderno Kitesurf.



Buscamos en Google Trends las consultas hechas por 'Windsurf' (Deporte) e igualmente por 'Kitesurf' (Deporte), para todo el mundo y para el histórico completo: 176 meses desde enero 2004 hasta agosto 2018. Asumimos que el cierre de agosto 2018 lo ha estimado astutamente Google.



Viendo las series hacemos algunas lecturas rápidas:
  • Los dos deportes han perdido mucho fuelle en los últimos años en cuanto a búsquedas en Internet.
  • Existe una fuerte estacionalidad con el verano boreal en ambas series. Esto encaja con el período en que más se practican estos deportes en el hemisferio norte, donde se concentran los recursos económicos y el ocio mundial.
  • Aunque el Windsurf partía en cabeza, se desinfló más rápidamente y a día de hoy el Kitesurf le supera en interés en la Red.

Como curiosidad se muestran los países donde mayor es la proporción del interés a favor de uno u otro deporte.



~~~

Queremos descomponer las series en el habitual modelo aditivo de tendencia, estacionalidad y residuo.

Y[t] = T[t] + S[t] + e[t]

Las cargamos desde surf.csv pero vemos que este modelo no funcionaría porque las estacionalidades no son constantes sino proporcionales al nivel de las series.

Transformamos por logaritmo natural y las series corregidas sí pueden describirse bien como suma de las tres componentes: una tendencia principal, una estacionalidad constante mes a mes, y un residuo aleatorio que se mantiene en niveles bajos y con una distribución aproximadamente normal de media nula. Descomposiciones para Windsurf y Kitesurf respectivamente:




Estas representaciones estándar no me gustan al estar en distintas escalas, por lo que construimos una función decomposedts.plot() que muestra todos los elementos de una descomposición en el mismo gráfico. Aquí podemos constatar más fácilmente lo pequeño del residuo y que no varían sus características a lo largo del tiempo.




La tendencia descendente en Kitesurf es muy regular, sin embargo para la serie Windsurf vemos un punto de inflexión entre 2012 y 2013 a partir del cual se suaviza el ritmo de caída, haciéndose muy parecido al de Kitesurf.

Es interesante comparar el perfil y el peso relativo que la componente estacional tiene en cada serie. El perfil es prácticamente idéntico en las dos series, con picos en julio y agosto y mínimos en los meses invernales, pero tiene un mayor peso relativo respecto al nivel medio de la serie para Windsurf que para Kitesurf.


~~~

Para terminar vamos a hacer una proyección a futuro de ambas series temporales. Podríamos aprovechar las descomposiciones hechas, estimando la evolución de las tendencias (por ejemplo con una exponencial) y sumándole la componente estacional en cada mes. Pero vamos a optar por hacer un forecast más automático con un modelo ARIMA.

Nos fiamos de la parametrización sugerida para nuestras series logarítmicas por la función auto.arima() del paquete forecast. Validaremos el modelo introduciendo en él datos reales solo hasta diciembre 2014, reservando la información de 2015 en adelante como validación. Proyectaremos 7 años hasta diciembre 2021.

Las proyecciones de las tendencias obtenidas con el modelo tienen sentido, llegando a captar el cambio de tendencia visto en Windsurf tras 2012-2013.




Tras deshacer el logaritmo podemos ver la proyección en su escala original, comprobando que ajusta bien en todo el período de validación que reservamos. Probada una parametrización ARIMA(1,1,0)(1,1,0) y se ajusta aún mejor, pero mantenemos la solución automática como forma de trabajo estándar.



El modelo prolonga la tendencia descendente para ambas series, con victoria a largo plazo de kitesurfers sobre windsurfers aunque los dos deportes se hunden en la miseria. Recomendable verla a mayor resolución haciendo clic en la imagen anterior.

~~~

Repositorio con el código R y archivos auxiliares: GitHub.

1 comentario:

Por claridad del blog, por favor trata de utilizar una sintaxis lo más correcta posible y no abusar del uso de emoticonos, mayúsculas y similares.