# ══════════════════════════════════════════════════ # T06 · Series Temporales — Estacionalidad, SARIMA y ajuste estacional # Abre primero mSeriesTemporales.Rproj en RStudio # ══════════════════════════════════════════════════ library(tidyverse) library(forecast) library(seasonal) pausa <- function(msg = "\n [Pulsa ENTER para continuar...]") { if (interactive()) { cat(msg); invisible(readline()) } } set.seed(2026) # ── 1. UN PROCESO ESTACIONAL PURO SMA(1)_12 ─────── # y_t = eps_t + Theta * eps_{t-12}: solo hay dependencia en el retardo 12. Theta <- 0.7 n <- 300 eps <- rnorm(n + 12) y_sma12 <- eps[13:(n + 12)] + Theta * eps[1:n] op <- par(mfrow = c(1, 2)) acf(y_sma12, lag.max = 36, main = "FAC de un SMA(1) puro, s=12") pacf(y_sma12, lag.max = 36, main = "FACP de un SMA(1) puro, s=12") par(op) cat("La FAC solo destaca en el retardo 12: firma de un proceso estacional puro.\n") pausa() # ── 2. EL MODELO AIRLINE (Box-Jenkins clasico) ──── # Datos de ejemplo del propio R: pasajeros de lineas aereas 1949-1960. data(AirPassengers) lap <- log(AirPassengers) m_air <- Arima(lap, order = c(0, 1, 1), seasonal = list(order = c(0, 1, 1), period = 12)) print(m_air) plot(forecast(m_air, h = 24), main = "Modelo airline: AirPassengers") cat("El modelo con el que Box y Jenkins (1976) fijaron el estandar SARIMA.\n") pausa() # ── 3. auto.arima() CON ESTACIONALIDAD ──────────── am <- auto.arima(lap, seasonal = TRUE) cat("auto.arima() sobre AirPassengers:\n") print(am) pausa() # ── 4. AJUSTE ESTACIONAL CON X-13ARIMA-SEATS ────── m_x13 <- seas(AirPassengers) summary(m_x13) plot(m_x13) cat("QS test (estacionalidad residual):\n") print(qs(m_x13)) # === FIN Script T06 — Estacionalidad, SARIMA y ajuste estacional ===