Los datos de series temporales permiten responder preguntas de inferencia y predicción en relación a una variable cuyo valor no varía entre sujetos, sino que varía conforme pasa el tiempo.
Para trabajar con R en series temporales, se usa la función ts()
x =data.frame(date=c(2000,2001,2002,2003,2004), z=c(4, 7, 21, 54, 64)) #Crear unos datosy =ts(x) #Decirle a R que son de tipo serie temporal.class(x) #Obtener la clase de objeto de x.
[1] "data.frame"
class(y) #Obtener la clase de objeto de y.
[1] "mts" "ts" "matrix"
head(y) #Visualizar los datos.
date z
[1,] 2000 4
[2,] 2001 7
[3,] 2002 21
[4,] 2003 54
[5,] 2004 64
Si los datos son anuales, R solo necesita la fecha de inicio.
y=ts(c(4, 7, 21, 54, 64), start =2000) #Crear los datos desde la fecha de inicio.head(y)
[1] 4 7 21 54 64
En caso de que las observaciones de la variable se produzcan en una frecuencia distinta a la anual, basta con añadir el comando frequency
x=rnorm(1200, mean=50, sd=20) #Crear unos datos normales aleatorios de media 50 y desviación típica 20.y=ts(x, start=2000, frequency=12) #Decirle a R que esos datos son de series temporales, empiezan en el año 2000, y tienen frecuencia mensual (12).summary(y)
Min. 1st Qu. Median Mean 3rd Qu. Max.
-9.963 36.546 50.230 49.795 62.945 124.281
De forma que frecuencias menores a la anual se especifican teniendo en cuenta el número de veces (\(k\)) que hay que dividir el año, o k-ésimos de año. Si la frecuencia es mensual, el año se divide en 12 meses (\(k=12\)). Si es trimestral, el año se divide en 4 trimestres (\(k=4\)).
Frecuencia
\(k\)
Anual
1
Semestral
2
Trimestral
3
Cuatrimestral
4
Mensual
12
Semanal
52
Diaria
365
Gráfica de series temporales
El dicho popular “una imagen vale más que mil palabras” es perfectamente aplicable al caso de las variables de tipo serie temporal, donde el visualizar tablas de datos es poco informativo. La opción más útil en estos casos es empezar el análisis con un gráfico de serie temporal, que tenga el valor de la variable en el eje y, y el paso del tiempo en el eje x.
La librería forecast es especialmente útil para este tipo de gráficos. Si la variable es de series temporales, el comando autoplot producirá un gráfico de series temporales.
library(forecast, quietly=TRUE)library(ggplot2, quietly=TRUE)#Cargar librerías.data("USAccDeaths") #Conjunto de datos de muertes por accidentes en EEUU desde 1973 a 1979. class(USAccDeaths) #Ver que clase de variable es.
[1] "ts"
autoplot(USAccDeaths) +theme_classic() #Autoplot de una variable de series temporales dará una gráfica de series temporales.
El gráfico de series temporales arroja mucha más información que sus estadísticos descriptivos. Por ejemplo, es fácilmente interpretable que el pico de muertos por accidentes se produce en el primer año de la serie, que sigue a una caída drástica en el número de muertes por accidentes.
Además, es facilmente percibible el hecho de que, a mitad de año, el número de muertes por accidentes aumenta sustancialmente, para después caer a finales del año y principios del siguiente. A mediados del año la estación del año es verano, fecha en la que los trabajadores suelen tomar vacaciones y aumentan actividades como el nado en playas y piscinas que pueden dar lugar a ahogamientos. También aumentan viajes por carretera que pueden dar lugar a accidentes. A finales del año y principios del siguiente, es invierno, fecha en la que se reducen considerablemente tanto el baño como el desplazamiento. Esto es lo que se denomina como patrón estacional o simplemente estacionalidad, haciendo evidente que el comportamiento de la serie depende de la estación del año en que se encuentre. Otros ejemplos claros de patrones estacionales tienen que ver con las temperaturas o la lluvia.
En el paquete Forecast, además de en otros paquetes como Ecdat, se pueden encontrar muchos conjuntos de datos disponibles para el análisis. Sin embargo, el primero se caracteriza por contener variables de series temporales, como por ejemplo EuStockMarkets.
data("EuStockMarkets") #Cargar conjunto de datos.head(EuStockMarkets) #Observar tipo de datos, fecha de comienzo, final, y frecuencia.
autoplot(EuStockMarkets) +theme_classic() #Gráfico de series temporales.
Como se puede comprobar, si se tienen varias series temporales apiladas en un mismo conjunto de datos, autoplot representa cada una por separado.
Este tipo de gráficos es muy útil pues permite obtener mucha información de manera compacta. Por ejemplo:
El índice bursátil de acciones alemán (DAX) superó al francés (CAC) en 1994.
Suiza (SMI) pasó de tener el penúltimo índice bursátil a tener el primero en valor alrededor de 1997.
El crecimiento del índice bursátil inglés (FTSE) presenta una tendencia de tipo lineal y cierto declive, mientras que los índices suizo, alemán y francés presentan tendencias exponenciales de crecimiento. Esto podría implicar que los inversores interpretan que los últimos países experimentarán un gran crecimiento económico y, por tanto, prefieren depositar sus fondos en estos índices, mientras que esperan que el crecimiento económico de Inglaterra se estanque.
Suiza (SMI) y Alemania (DAX) presentan patrones muy similares de crecimiento desde finales de 1997. Podría decirse que co-mueven.