Series Temporales con R

A continuación vamos a trabajar con una serie de datos para comprobar la utilización del programa R en el análisis y predicción de las series de datos.

Como primer paso vamos a ejecutar los primeros paquetes necesarios para el uso de los comandos necesarios para el análisis.

A continuación cargamos las bases de datos:

Gráfica de tiempo de variables con diferentes escalas.

Los siguientes gráficos trataran sobre las variables metereológicas. Se utilizará un panel para cada una de las variable. Para el primer ejemplo usamos los ocho años de datos diarios de la estación de Aranjuez. Utilizaremos el comando xyplot

Series temporales de variables con la misma escala

Como ejemplo de las series temporales de variables con la misma escala utilizaremos mediciones de radiación solar de diferentes estaciones metereológicas.

El primer comando a utilizar es xyplot.zoométodo. El objetivo de esta gráfica es mostrar el comportamiento de la colección. La transparencia suaviza los problemas de superposición y revela grupos de densidad.

El código a usar es el siguiente:

El siguiente gráfico lo podemos mejorar con el gráfico horizonte. Es útil para examinar cómo cambia un grán número de series a lo largo del tiempo. El siguiente códiigo muestra las variaciones de la radiación solar alrededor del promedio de tiempo con un gráfico de horizonte utilizando una fila para cada serie de tiempo. Utilizaremos el siguiente comando horizonplot:

El gráfico horizonte tambíen es útil para revelar las diferencias entre una serie de tiempo univariante y otra referencia. Vamos a a ilustrar este enfoque con la serie temporal de temperaturas medias diarias medidas en la estación metereológicas de Aranjuez. La referencia es el promedio diario a largo plazo calculado con ave.

El siguiente código se usa horizonplot con el método de cortar y apliar para distinguir entre años.

Otra buena alternativa es un gráfico de nivel que muestra la serie temporal utilizando partes de su indice de tiempo tanto como variable independiente como condicionante.

El siguiente código muestra las diferencias con el dia del mes en el eje horizontal y el año en el eje vetical.

Gráficos interactivos

Esta sección describe las alternativas interactivas de los estáticos cifras incluidas en los apartados anteriores con diferentes paquetes como: dygraphs, highcharacter, o plotly.

Diagramas

Funciona automáticamente con series temporales, o con objetos que puedan ser forzados a esta clase. El resultado final es un gráfico interactivo, donde los valores se muestran de acuerdo con la posición del mouse sobre ñas series de tiempo.

## Warning: package 'widgetframe' was built under R version 3.6.3

Podemos peronalizar los gráficos con comandos adicionales como la función dyOptimons y dyHighlight. Veremos que realizán a continuación:

Highcharter

Este paquete permite la visulización de series temporales con capacidades de selección y zoom.

## Warning: package 'highcharter' was built under R version 3.6.3

Trama

Este paquete no proporciona ninguna función específica encodada a series temporales. Pero mediante el uso de data.frameuna columna que incluya el índice de tiempo. Si data.frame está en formato ancho (una columna por variable), cada variable se representará con una llamada al add_lines. Sin embargo, si data.Frame esta en formato largo(una columna para valores y una columna para nombres de variables), solo se requiere una llamada a add_lines. Con el siguiente código podemos ver su funcionamiento.

##      Index                Series         Value        
##  Min.   :2004-01-01   TempMax:2898   Min.   :-12.980  
##  1st Qu.:2005-12-29   TempAvg:2898   1st Qu.:  7.107  
##  Median :2008-01-09   TempMin:2898   Median : 13.560  
##  Mean   :2008-01-03                  Mean   : 14.617  
##  3rd Qu.:2010-01-03                  3rd Qu.: 21.670  
##  Max.   :2011-12-31                  Max.   : 41.910  
##                                      NA's   :10

Scatterplot matrix: el tiempo como una variable de agrupación.

Las matrices de diagrama de dispersión se basan en la técnica de pequeños múltiplos: pequeñas representaciones en miniatura de imágenes múltiples que se muestran a la vez lo que permite comparar de forma inmediata las diferencias entre cuadrados. A continuación veremos un ejemplo:

Diagrama de dispersión con el tiempo como variable condicionante.

Los gráficos anteriores usan colores para codificar meses. En cambio, ahora mostraremos diagramas de dispersión separados co un panel cada mes. Además el tipo de estadística(media,máxima,mínima)se incluye como una variable acondicionada adicional.

Primero, el conjunto de datos debe reformarse desde el formato ancho, al formato largo. Esta tarea se realiza fácilmente con la función melt.

## Warning: Removed 10 rows containing non-finite values (stat_smooth).
## Warning: Removed 10 rows containing missing values (geom_point).

El tiempo como variables complementaria

Polilíneas

Nuestro primer enfoque es mostrar todos los datos en un panel con un diagrama de dispersión utilizando nombres de países como factor de agrupación. Los puntos de cada país están conectados con polilíneas para revelar la evolución en el tiempo.

Gráficos interactivos: animación

Esta sección describe cómo mostrar los datos a través de animaciones con duncionalidades interactivas con una solución que se asemeja al producto de diagrama de movimiento por Gapminder.

La técnica de visualización de información utilizada por Trendalyzer es un gráfico interactivo de burbujas. De manera predeterminada, muestra cinco variables: dos variables númericas en los ejes vertical y horizontal, tamaño y color de burbuja, y una variable de tiempo que pueda manipularse con un control deslizante.

El plotly que ya hemos utilizado anteriormente para crear un gráfico interactivo que representa el tiempo en el eje x. En esta sección, este paquete produce una animación que canaliza el resultado de las funciones plot_ly y add_marker.

Las variables Co2.capitayGNI representa en el eje x y el eje y y respectivamente:

Co2.PPP codifica con los tamaños de los circulos, mientras que Country.Namese representa con colores y etiquetas.

Finalmente, la animación se crea con animation_opts, para personalizar el marko y los tiempos de transición y con animation_slider para definir el control deslizante.

## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors

## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors

Agradecemos el presente trabajo a al autor del mismo, Oscar Perpiñán Lamigueiro. Publicado en Rbloggers