Gráficos para analizar series temporales

Como detectar patrones entre series
Gráfico Avanzado
Correlación
Gráfico Estacional
Author

Javier Sánchez García

Published

January 1, 2003

Existen algunos gráficos útiles para analizar más en profundidad las propiedades de las series.

Gráfico estacional

Un gráfico estacional permite visualizar claramente el patrón estacional de la serie:

library(forecast, quietly=TRUE)
data(gas) #Cargar conjunto de datos de produccion de gas en Australia (1956-1996).
forecast::ggseasonplot(gas, year.labels=TRUE, year.labels.left=TRUE) + ggplot2::theme_classic() #Gráfico estacional.

Se observa que la producción de gas en Australia ha aumentado considerablemente con los años (tendencia creciente). En cuanto al componente estacional, se observa que la producción crece considerablemente en los meses de calor, con máximos en verano, y disminuye en los meses de frío, con mínimos en invierno.

Si se quiere obtener mayor comparativa entre meses, el comando polar=TRUE es bastante útil.

library(ggplot2, quietly=TRUE)
forecast::ggseasonplot(gas, polar=TRUE) + ggtitle("Producción de gas en Australia") + theme_classic()

Claramente, los meses líderes en producción son julio y agosto, y los de menor producción, diciembre y enero.

Correlación entre series

Además de analizar los aspectos individuales de una serie temporal, se pueden calcular correlaciones entre series para medir el grado de relación entre dos o más series.

data("EuStockMarkets") 
autoplot(EuStockMarkets[,c(1:2)]) + ylab("Índices bursátiles") + theme_classic()

A priori, parece que ambos índices bursátiles guardarán una fuerte correlación. Para obtener una métrica formal de dicha correlación, es útil calcular el coeficiente de correlación:

\[ \rho_{x,y} = \frac{\sigma_{xy}}{\sigma_x \sigma_y} = \frac{Cov(x,y)}{\sqrt{Var(x)Var(y)}} \]

EUdf <- as.data.frame(EuStockMarkets) #Convertimos las series temporales a data frame
cor(EUdf$DAX, EUdf$SMI) #Coeficiente de correlación.
[1] 0.9911539
ggplot(data=EUdf, aes(x=DAX, y=SMI)) + 
  geom_point() +
  annotate("text", label="cor=0.99", x=2000, y=7000, size=4, color="black") + theme_classic() #Gráfico scatterplot con coeficiente de correlación.

La correlación es casi perfecta. Veamos entre tres índices bursátiles a la vez

autoplot(EuStockMarkets[,c(1:3)]) + ylab("Índices bursátiles") + theme_classic()

A priori debería de haber una correlación muy alta entre los tres.

attach(EUdf)
library(scatterplot3d, quietly=TRUE)
scatterplot3d(DAX, SMI, CAC, grid=TRUE, box=FALSE, color = "black", pch = 16)

Ejercicio: Cargue y analize la estacionalidad de la serie AirPassengers.