Análisis de series temporales con R (I)

5
(5)

Aquí publicaré una serie de entradas para analizar series temporales con el lenguaje de programación R

Para empezar,

¿Qué son las series temporales?

  • Las series temporales contienen valores ordenados cronológicamente.
  • Se pueden definir como una sucesión de observaciones de una variable tomadas en varios instantes del tiempo.

Si traemos el concepto de proceso estocástico, se puede decir:

Un proceso estocástico es una sucesión de variables aleatorias ordenadas en el tiempo, y una serie temporal es una realización de un proceso estocástico.

Series temporales regulares e irregulares

Las series temporales pueden ser regulares o irregulares.

Las series temporales regulares hacen referencia cuando la distancia temporal entre dos datos consecutivos es constante (datos semanales, mensuales, trimestrales, anuales).

Por otro lado, las series irregulares se refieren cuando la distancia entre dos observaciones es variable, como puede ser el caso de las cotizaciones de algunos activos financieros en el mercado continuo.

Estacionariedad

Un punto clave para analizar series temporales es la estacionariedad.

Las series temporales son estacionarias, cuando la media y la variabilidad se mantienen constantes a lo largo del tiempo. Una serie con media constante es «estacionaria en la media» o «estacionaria».

Asimismo, cuando una serie, además de ser estacionaria en la media, tiene una variabilidad constante alrededor de su nivel medio, se le llama «estacionaria en varianza«.

Las series temporales no estacionarias, son aquellas donde se producen cambios en la media y/o variabilidad a lo largo del tiempo.

Por consiguiente, en las series temporales no estacionarias se pueden presentar (1) cambios en la varianza (2) tendencia, con lo cual la media aumenta o disminuye a lo largo del tiempo (3) efectos estacionales.

Vamos a analizar el dataset de R “AirPassengers”, el cual contiene el total de pasajeros mensuales de aerolíneas internacionales entre 1949 y 1960.

Vamos a llamar nuestros datos “Pasajeros”.

data("AirPassengers")
Pasajeros <- AirPassengers
class(Pasajeros)
## [1] "ts"
length(Pasajeros)
## [1] 144
tail(Pasajeros)
## [1] 622 606 508 461 390 432

“class”, nos devuelve “ts”, indicando que tenemos una serie temporal.
“length”, indica la longitud de la serie, aquí tenemos 144 observaciones.
“tail”, nos devuelve las últimas 6 observaciones.

Si queremos conocer la media, la mediana y los cuantiles:

mean(Pasajeros)
## [1] 280.2986
median(Pasajeros)
## [1] 265.5
quantile(Pasajeros)
##    0%   25%   50%   75%  100% 
## 104.0 180.0 265.5 360.5 622.0

Como vemos, el cuantil de orden 0,50 corresponde con la mediana de la distribución.

Si graficamos:

plot(Pasajeros, type="o", pch =20)

plot of chunk unnamed-chunk-3

Al observar el gráfico se puede apreciar:
(1) La serie tiene tendencia
(2) La serie tiene estacionalidad
(3) La serie presenta variabilidad que crece con el nivel de la serie, lo cual se conoce como heterocedasticidad.

Y ahora, ¿como tratamos lo anterior?.

En primer lugar, vamos a eliminar la heterocedasticidad con una transformación logarítmica, la cual suele inducir normalidad y linealidad:

log_Pasajeros <- log(Pasajeros)
plot(log_Pasajeros, type="o", pch =20)

plot of chunk unnamed-chunk-4

Al graficar los datos con la transformación logarítmica podemos apreciar que las fluctuaciones de la serie están constantes a lo largo del tiempo, ya no dependen del nivel de ésta.

Ahora, para conseguir la estacionariedad en la media, podemos aplicar una diferenciación a la serie. Hay que resaltar, que es frecuente combinar la transformación logarítmica con la diferenciación para conseguir una serie estacionaria (en media y varianza), obteniendo así una tasa logarítmica de variación.

est_Pasajeros <- diff(log_Pasajeros)
head(est_Pasajeros)
## [1]  0.05218575  0.11211730 -0.02298952 -0.06402186  0.10948423  0.09193750

Las anteriores transformaciones, también se hubieran podido realizar de la siguiente manera:

data_Pasajeros <- diff(log(Pasajeros))
head(data_Pasajeros)
## [1]  0.05218575  0.11211730 -0.02298952 -0.06402186  0.10948423  0.09193750

Lo anterior, se puede comprobar al observar con «head» las 6 primeras observaciones o con «summary», que nos arroja los estadísticos principales:

  summary(data_Pasajeros)
## Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
##-0.22314 -0.08002  0.01482  0.00944  0.10588  0.22314 
  summary(est_Pasajeros)
## Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
##-0.22314 -0.08002  0.01482  0.00944  0.10588  0.22314

Si estás interesado en seguir aprendiendo y conocer más casos prácticos de R para finanzas, ve a la página de finanzas cuantitativas.

¿Te ha parecido útil? ¡Puntúa esta entrada!

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 5

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

1 comentario en “Análisis de series temporales con R (I)”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Facebook
Twitter
LinkedIn
Scroll al inicio