Análisis de series temporales con R (I)

Índice de Contenidos

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.

Facebook
Twitter
LinkedIn

Un comentario

Deja una respuesta

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

Picture of Conney Marulanda López
Conney Marulanda López
Analista de Mercado. Certificada en el examen de Asesor Financiero de la CNMV por la Universidad Carlos III de Madrid. Apasionada por los mercados financieros, el emprendimiento y las nuevas tecnologías.
Artículos relacionados
Actualizado octubre 5, 2025

Valor en Riesgo (VaR) con R

Actualizado agosto 7, 2019

Análisis y optimización de portafolios con R (II)

Actualizado agosto 6, 2019

Análisis y optimización de portafolios con R (I)

Suscríbete y accede a contenido exclusivo, análisis semanales y oportunidades reales.
Sin spam. Sin humo. Solo lo que te interesa para que tomes mejores decisiones financieras. Te puedes borrar cuando quieras. Tu privacidad es sagrada.

Responsable: Conney Marulanda López. Finalidad de la recogida y tratamiento de los datos personales: 
Gestionar la solicitud que realizas en este formulario de contacto. 
Legitimación: Consentimiento. 
Destinatarios: Los datos personales serán tratados a través de los servidores de esta web, gestionados por un hosting español: Raiola Networks. No se cederá ni comunicará a ningún tercero tus datos, excepto en los casos legalmente previstos o cuando la prestación de un servicio implique la necesidad de una relación contractual con un Encargado de Tratamiento. 
Derechos: Podrás ejercer tus derechos de acceso, rectificación, limitación y suprimir los datos en info@finanzaszone.com así como el derecho a presentar una reclamación ante una autoridad de control.
Información adicional: En Política de privacidad de finanzaszone.com, encontrarás información adicional sobre la recopilación y el uso de su información personal, incluida información sobre acceso, conservación, rectificación, eliminación, seguridad, y otros temas.