El análisis de series temporales es una técnica utilizada para analizar datos secuenciales a lo largo del tiempo. Este tipo de análisis es crucial en diversas disciplinas como la economía, la meteorología, la ingeniería y las ciencias sociales. En este módulo, aprenderás a manejar y analizar series temporales utilizando R.

Contenido

Introducción a las Series Temporales

Conceptos Clave

  • Serie Temporal: Una secuencia de datos puntos medidos en intervalos de tiempo sucesivos.
  • Estacionariedad: Una serie temporal es estacionaria si sus propiedades estadísticas, como la media y la varianza, no cambian con el tiempo.
  • Tendencia: La dirección general en la que se mueven los datos a lo largo del tiempo.
  • Estacionalidad: Fluctuaciones periódicas en los datos que ocurren en intervalos regulares.

Ejemplo de Serie Temporal

# Generar una serie temporal simple
set.seed(123)
time_series <- ts(rnorm(100), frequency = 12, start = c(2020, 1))
plot(time_series, main = "Ejemplo de Serie Temporal", ylab = "Valores", xlab = "Tiempo")

En este ejemplo, generamos una serie temporal de 100 puntos con una frecuencia mensual, comenzando en enero de 2020.

Manipulación de Series Temporales en R

Paquetes Recomendados

  • zoo: Para manipulación de series temporales irregulares.
  • xts: Extensiones de zoo para series temporales.
  • forecast: Para modelado y pronóstico de series temporales.

Creación y Manipulación de Series Temporales

# Instalar y cargar paquetes necesarios
install.packages("zoo")
install.packages("xts")
install.packages("forecast")
library(zoo)
library(xts)
library(forecast)

# Crear una serie temporal con zoo
zoo_series <- zoo(rnorm(100), order.by = as.Date('2020-01-01') + 0:99)
plot(zoo_series, main = "Serie Temporal con zoo", ylab = "Valores", xlab = "Fecha")

# Convertir a xts
xts_series <- as.xts(zoo_series)
plot(xts_series, main = "Serie Temporal con xts", ylab = "Valores", xlab = "Fecha")

Visualización de Series Temporales

Gráficos Básicos

# Gráfico básico de una serie temporal
plot(time_series, main = "Serie Temporal", ylab = "Valores", xlab = "Tiempo")

Gráficos Avanzados con ggplot2

# Instalar y cargar ggplot2
install.packages("ggplot2")
library(ggplot2)

# Convertir la serie temporal a un data frame
df <- data.frame(
  Fecha = as.Date(time(time_series)),
  Valores = as.numeric(time_series)
)

# Gráfico con ggplot2
ggplot(df, aes(x = Fecha, y = Valores)) +
  geom_line() +
  labs(title = "Serie Temporal con ggplot2", x = "Fecha", y = "Valores")

Descomposición de Series Temporales

Descomposición Clásica

# Descomposición clásica
decomposed <- decompose(time_series)
plot(decomposed)

Descomposición STL

# Descomposición STL
stl_decomposed <- stl(time_series, s.window = "periodic")
plot(stl_decomposed)

Modelos ARIMA

Introducción a ARIMA

  • AR (AutoRegresivo): Modelo que utiliza las dependencias entre una observación y un número de rezagos (valores anteriores).
  • I (Integrado): Diferenciación de los datos para hacerlos estacionarios.
  • MA (Media Móvil): Modelo que utiliza la dependencia entre una observación y un error residual de un modelo de media móvil aplicado a rezagos.

Ajuste de un Modelo ARIMA

# Ajuste de un modelo ARIMA
fit <- auto.arima(time_series)
summary(fit)

Pronóstico de Series Temporales

Generación de Pronósticos

# Generar pronósticos
forecasted <- forecast(fit, h = 12)
plot(forecasted)

Ejercicios Prácticos

Ejercicio 1: Crear y Visualizar una Serie Temporal

  1. Genera una serie temporal de 200 puntos con una frecuencia trimestral, comenzando en el primer trimestre de 2015.
  2. Visualiza la serie temporal utilizando plot y ggplot2.

Ejercicio 2: Descomposición de una Serie Temporal

  1. Utiliza la serie temporal generada en el Ejercicio 1.
  2. Realiza una descomposición clásica y una descomposición STL.
  3. Visualiza los resultados de ambas descomposiciones.

Ejercicio 3: Ajuste y Pronóstico con ARIMA

  1. Ajusta un modelo ARIMA a la serie temporal generada en el Ejercicio 1.
  2. Genera pronósticos para los próximos 8 trimestres.
  3. Visualiza los pronósticos.

Soluciones

Solución al Ejercicio 1

# Generar la serie temporal
time_series_ex1 <- ts(rnorm(200), frequency = 4, start = c(2015, 1))

# Visualizar con plot
plot(time_series_ex1, main = "Serie Temporal Trimestral", ylab = "Valores", xlab = "Tiempo")

# Convertir a data frame para ggplot2
df_ex1 <- data.frame(
  Fecha = as.Date(time(time_series_ex1)),
  Valores = as.numeric(time_series_ex1)
)

# Visualizar con ggplot2
ggplot(df_ex1, aes(x = Fecha, y = Valores)) +
  geom_line() +
  labs(title = "Serie Temporal Trimestral con ggplot2", x = "Fecha", y = "Valores")

Solución al Ejercicio 2

# Descomposición clásica
decomposed_ex1 <- decompose(time_series_ex1)
plot(decomposed_ex1)

# Descomposición STL
stl_decomposed_ex1 <- stl(time_series_ex1, s.window = "periodic")
plot(stl_decomposed_ex1)

Solución al Ejercicio 3

# Ajuste de un modelo ARIMA
fit_ex1 <- auto.arima(time_series_ex1)
summary(fit_ex1)

# Generar pronósticos
forecasted_ex1 <- forecast(fit_ex1, h = 8)
plot(forecasted_ex1)

Conclusión

En este módulo, hemos cubierto los conceptos básicos y avanzados del análisis de series temporales en R. Aprendiste a crear, manipular, visualizar y descomponer series temporales, así como a ajustar modelos ARIMA y generar pronósticos. Estos conocimientos te preparan para aplicar técnicas de análisis de series temporales en diversos contextos y proyectos. En el siguiente módulo, exploraremos el análisis de datos espaciales.

Programación en R: De Principiante a Avanzado

Módulo 1: Introducción a R

Módulo 2: Manipulación de Datos

Módulo 3: Visualización de Datos

Módulo 4: Análisis Estadístico

Módulo 5: Manejo Avanzado de Datos

Módulo 6: Conceptos Avanzados de Programación

Módulo 7: Aprendizaje Automático con R

Módulo 8: Temas Especializados

Módulo 9: Proyecto y Estudios de Caso

© Copyright 2024. Todos los derechos reservados