Ejercicio 1

Enunciado

Dado un proceso temporal \(\{y_t\}\) que sigue un modelo

\[ \text{ARIMA}(0,1,1)\times(0,1,1)_{12}, \]

se pide:

  1. Definir el proceso \(z_t\) que resulta de aplicar una diferenciación regular y una diferenciación estacional al proceso \(y_t\).
  2. Expresar el proceso \(z_t\) como un proceso de medias móviles finito en función del ruido blanco.
  3. Obtener las fórmulas de las autocovarianzas teóricas \[ \gamma_k=\operatorname{Cov}(z_t,z_{t-k}) \] para todos los retardos \(k\in\mathbb{Z}\), indicando explícitamente para qué valores de \(k\) son no nulas.

Se supone que \(\{\varepsilon_t\}\) es un ruido blanco con media cero y varianza constante \(\sigma^2\).


Solución

Partimos del modelo

\[ (1-B)(1-B^{12})\,y_t=(1+\theta B)(1+\Theta B^{12})\,\varepsilon_t, \]

donde \(\{\varepsilon_t\}\) es ruido blanco con \(\mathbb{E}(\varepsilon_t)=0\) y \(\operatorname{Var}(\varepsilon_t)=\sigma^2\).


1) Proceso estacionario tras diferenciar

Definimos el proceso diferenciado regular y estacionalmente como

\[ z_t := (1-B)(1-B^{12})\,y_t. \]

Sustituyendo en la ecuación del modelo se obtiene

\[ z_t=(1+\theta B)(1+\Theta B^{12})\,\varepsilon_t. \]


2) Expresión de \(z_t\) como MA finito

Desarrollando el producto:

\[ (1+\theta B)(1+\Theta B^{12}) =1+\theta B+\Theta B^{12}+\theta\Theta B^{13}. \]

Por tanto,

\[ z_t=\varepsilon_t+\theta\,\varepsilon_{t-1} +\Theta\,\varepsilon_{t-12} +\theta\Theta\,\varepsilon_{t-13}. \]

Los únicos coeficientes MA no nulos son

\[ \psi_0=1,\qquad \psi_1=\theta,\qquad \psi_{12}=\Theta,\qquad \psi_{13}=\theta\Theta. \]


3) Fórmula general de las autocovarianzas

Para un proceso MA con coeficientes \(\{\psi_j\}\),

\[ \gamma_k=\operatorname{Cov}(z_t,z_{t-k}) =\sigma^2\sum_{j\in\mathbb{Z}}\psi_j\,\psi_{j+k}, \qquad k\in\mathbb{Z}, \] y se cumple la simetría \(\gamma_{-k}=\gamma_k\).


4) Retardos con autocovarianza no nula

Ver explicación completa

Como los coeficientes MA solo aparecen en los retardos \(\{0,1,12,13\}\), las autocovarianzas solo pueden ser no nulas cuando \(k\) coincide con alguna diferencia entre dichos retardos, es decir,

\[ k\in\{0,\pm1,\pm11,\pm12,\pm13\}. \]

Para cualquier otro retardo, \(\gamma_k=0\).


5) Cálculo explícito de \(\gamma_k\)

Explicacion explicita

  • Varianza (\(k=0\)) \[ \gamma_0 =\sigma^2\left(1+\theta^2+\Theta^2+\theta^2\Theta^2\right) =\sigma^2(1+\theta^2)(1+\Theta^2). \]

  • Retardo \(k=1\) \[ \gamma_1 =\sigma^2(\psi_0\psi_1+\psi_{12}\psi_{13}) =\sigma^2\,\theta(1+\Theta^2). \]

  • Retardo \(k=11\) \[ \gamma_{11} =\sigma^2(\psi_1\psi_{12}) =\sigma^2\,\theta\Theta. \]

  • Retardo \(k=12\) \[ \gamma_{12} =\sigma^2(\psi_0\psi_{12}+\psi_1\psi_{13}) =\sigma^2\,\Theta(1+\theta^2). \]

  • Retardo \(k=13\) \[ \gamma_{13} =\sigma^2(\psi_0\psi_{13}) =\sigma^2\,\theta\Theta. \]

Por simetría, \[ \gamma_{-k}=\gamma_k. \]


Resultado final (todos los retardos)

\[ \gamma_k= \begin{cases} \sigma^2(1+\theta^2)(1+\Theta^2), & k=0,\\[4pt] \sigma^2\,\theta(1+\Theta^2), & |k|=1,\\[4pt] \sigma^2\,\theta\Theta, & |k|=11\ \text{o}\ |k|=13,\\[4pt] \sigma^2\,\Theta(1+\theta^2), & |k|=12,\\[4pt] 0, & \text{en otro caso}. \end{cases} \]

(Si se desean las autocorrelaciones teóricas, basta dividir por \(\gamma_0\): \(\rho_k=\gamma_k/\gamma_0\)).

Anexos

4) Explicación detallada: Retardos con autocovarianza

Volver

El proceso estacionario obtenido tras diferenciar es

\[ z_t = \varepsilon_t + \theta\,\varepsilon_{t-1} + \Theta\,\varepsilon_{t-12} + \theta\Theta\,\varepsilon_{t-13}, \]

donde \(\{\varepsilon_t\}\) es ruido blanco, con

  • \(\mathbb{E}(\varepsilon_t)=0\),
  • \(\operatorname{Cov}(\varepsilon_t,\varepsilon_s)=0\) si \(t\neq s\),
  • \(\operatorname{Var}(\varepsilon_t)=\sigma^2\).

La autocovarianza en el retardo \(k\) se define como

\[ \gamma_k=\operatorname{Cov}(z_t,z_{t-k}). \]

Sustituyendo las expresiones de \(z_t\) y \(z_{t-k}\):

\[ z_t = \sum_{j\in\{0,1,12,13\}} \psi_j\,\varepsilon_{t-j}, \qquad z_{t-k} = \sum_{i\in\{0,1,12,13\}} \psi_i\,\varepsilon_{t-k-i}. \]

Sustituyendo las expresiones de \(z_t\) y \(z_{t-k}\) en la definición de la autocovarianza se tiene:

\[ \gamma_k = \operatorname{Cov}(z_t, z_{t-k}) = \operatorname{Cov}\!\left( \sum_{j\in\{0,1,12,13\}} \psi_j\,\varepsilon_{t-j}, \sum_{i\in\{0,1,12,13\}} \psi_i\,\varepsilon_{t-k-i} \right). \]

Utilizando la bilinealidad de la covarianza, es decir,

\[ \operatorname{Cov}\!\left(\sum_j a_j X_j,\sum_i b_i Y_i\right) = \sum_j\sum_i a_j b_i\,\operatorname{Cov}(X_j,Y_i), \]

se obtiene la expresión:

\[ \gamma_k = \sum_{j\in\{0,1,12,13\}} \sum_{i\in\{0,1,12,13\}} \psi_j\,\psi_i\, \operatorname{Cov}(\varepsilon_{t-j},\varepsilon_{t-k-i}). \]

Esta doble suma recoge todas las posibles covarianzas cruzadas entre las innovaciones que intervienen en \(z_t\) y las que intervienen en \(z_{t-k}\), ponderadas por los correspondientes coeficientes del proceso de medias móviles.

Dado que \(\{\varepsilon_t\}\) es un ruido blanco, las innovaciones en instantes distintos no están correlacionadas, por lo que

\[ \operatorname{Cov}(\varepsilon_{t-j},\varepsilon_{t-k-i}) = 0 \quad \text{si} \quad t-j \neq t-k-i. \]

En consecuencia, en la doble suma solo sobreviven aquellos términos para los que ambas innovaciones coinciden en el mismo instante temporal, es decir, cuando

\[ t-j = t-k-i \quad \Longleftrightarrow \quad k = j - i. \]

Este razonamiento explica por qué la autocovarianza \(\gamma_k\) únicamente puede ser no nula para aquellos retardos \(k\) que pueden escribirse como la diferencia entre dos retardos presentes en el proceso de medias móviles.

Dado que el ruido blanco no presenta correlación temporal,

\[ \operatorname{Cov}(\varepsilon_{t-j},\varepsilon_{t-k-i}) \neq 0 \quad \text{solo si} \quad t-j = t-k-i. \]

Esta igualdad implica

\[ k = j - i. \]

Por tanto, la autocovarianza \(\gamma_k\) solo puede ser no nula si el retardo \(k\) puede escribirse como la diferencia entre dos retardos presentes en el MA.

En este caso, los retardos no nulos del proceso son

\[ \{0,1,12,13\}. \]

Las diferencias posibles entre ellos generan el conjunto

\[ k\in\{0,\pm1,\pm11,\pm12,\pm13\}. \]

Para cualquier otro valor del retardo \(k\), no existe ninguna pareja de términos en \(z_t\) y \(z_{t-k}\) que compartan la misma innovación, por lo que todas las covarianzas parciales son nulas y se tiene

\[ \gamma_k = 0. \]

Interpretación:
la autocovarianza solo aparece cuando \(z_t\) y \(z_{t-k}\) contienen al menos una innovación común. En los retardos restantes, los términos involucran innovaciones en instantes distintos y, al tratarse de ruido blanco, no covarían.

5) Cálculo explícito de las autocovarianzas \(\gamma_k\)

Volver

Partimos de la expresión del proceso estacionario:

\[ z_t=\varepsilon_t+\theta\,\varepsilon_{t-1} +\Theta\,\varepsilon_{t-12} +\theta\Theta\,\varepsilon_{t-13}, \]

y del proceso retrasado \(k\) periodos:

\[ z_{t-k}=\varepsilon_{t-k} +\theta\,\varepsilon_{t-k-1} +\Theta\,\varepsilon_{t-k-12} +\theta\Theta\,\varepsilon_{t-k-13}. \]

En todos los cálculos se utiliza que \(\{\varepsilon_t\}\) es ruido blanco, es decir,

\[ \operatorname{Cov}(\varepsilon_s,\varepsilon_r)=0 \ \text{si}\ s\neq r, \qquad \operatorname{Var}(\varepsilon_s)=\sigma^2. \]


Varianza (\(k=0\))

\[ \gamma_0=\operatorname{Var}(z_t). \]

Al expandir:

\[ \begin{aligned} \gamma_0 &=\operatorname{Var}(\varepsilon_t) +\theta^2\operatorname{Var}(\varepsilon_{t-1}) +\Theta^2\operatorname{Var}(\varepsilon_{t-12}) +(\theta\Theta)^2\operatorname{Var}(\varepsilon_{t-13}) \\ &=\sigma^2+\theta^2\sigma^2+\Theta^2\sigma^2+\theta^2\Theta^2\sigma^2 \\ &=\sigma^2\left(1+\theta^2+\Theta^2+\theta^2\Theta^2\right) =\sigma^2(1+\theta^2)(1+\Theta^2). \end{aligned} \]


Retardo \(k=1\)

Escribimos:

\[ z_{t-1} =\varepsilon_{t-1} +\theta\,\varepsilon_{t-2} +\Theta\,\varepsilon_{t-13} +\theta\Theta\,\varepsilon_{t-14}. \]

La autocovarianza es:

\[ \gamma_1=\operatorname{Cov}(z_t,z_{t-1}). \]

Los únicos instantes comunes son \(\varepsilon_{t-1}\) y \(\varepsilon_{t-13}\):

\[ \begin{aligned} \gamma_1 &=\operatorname{Cov}(\theta\varepsilon_{t-1},\varepsilon_{t-1}) +\operatorname{Cov}(\theta\Theta\varepsilon_{t-13},\Theta\varepsilon_{t-13}) \\ &=\theta\sigma^2+\theta\Theta^2\sigma^2 \\ &=\sigma^2\,\theta(1+\Theta^2). \end{aligned} \]


Retardo \(k=11\)

\[ z_{t-11} =\varepsilon_{t-11} +\theta\,\varepsilon_{t-12} +\Theta\,\varepsilon_{t-23} +\theta\Theta\,\varepsilon_{t-24}. \]

El único instante común con \(z_t\) es \(\varepsilon_{t-12}\):

\[ \gamma_{11} =\operatorname{Cov}(\Theta\varepsilon_{t-12},\theta\varepsilon_{t-12}) =\theta\Theta\,\sigma^2. \]


Retardo \(k=12\)

\[ z_{t-12} =\varepsilon_{t-12} +\theta\,\varepsilon_{t-13} +\Theta\,\varepsilon_{t-24} +\theta\Theta\,\varepsilon_{t-25}. \]

Hay dos instantes comunes con \(z_t\):

  • \(\varepsilon_{t-12}\): \[ \operatorname{Cov}(\Theta\varepsilon_{t-12},\varepsilon_{t-12}) =\Theta\sigma^2. \]

  • \(\varepsilon_{t-13}\): \[ \operatorname{Cov}(\theta\Theta\varepsilon_{t-13},\theta\varepsilon_{t-13}) =\theta^2\Theta\sigma^2. \]

Sumando ambas contribuciones:

\[ \gamma_{12} =\Theta\sigma^2+\theta^2\Theta\sigma^2 =\sigma^2\,\Theta(1+\theta^2). \]


Retardo \(k=13\)

\[ z_{t-13} =\varepsilon_{t-13} +\theta\,\varepsilon_{t-14} +\Theta\,\varepsilon_{t-25} +\theta\Theta\,\varepsilon_{t-26}. \]

El único instante común con \(z_t\) es \(\varepsilon_{t-13}\):

\[ \gamma_{13} =\operatorname{Cov}(\theta\Theta\varepsilon_{t-13},\varepsilon_{t-13}) =\theta\Theta\,\sigma^2. \]


Simetría

Por la simetría de la covarianza,

\[ \gamma_{-k}=\gamma_k, \]

por lo que estas expresiones determinan completamente las autocovarianzas teóricas del proceso.

Ejercicio 2

Enunciado.
Demostrar que el operador de diferencia estacional (con estacionalidad de \(s\) periodos) se obtiene como producto del operador de diferencia regular con el operador de suma del presente y los \(s-1\) últimos términos de la serie temporal: \[ (1 - B^s) = (1 - B)\,(1 + B + B^2 + B^3 + \cdots + B^{s-1}). \]


Solución

1) Interpretación de los operadores

Sea \(\{y_t\}\) una serie temporal y \(B\) el operador de retardo, definido como: \[ B\,y_t = y_{t-1}, \qquad B^k y_t = y_{t-k}. \]

Entonces: - La diferencia regular viene dada por \[ (1 - B)y_t = y_t - y_{t-1}. \] - La diferencia estacional de periodo \(s\) se define como \[ (1 - B^s)y_t = y_t - y_{t-s}. \]

El objetivo es probar una identidad algebraica entre operadores polinómicos en \(B\).


2) Demostración algebraica

Consideremos el producto: \[ (1 - B)(1 + B + B^2 + \cdots + B^{s-1}). \]

Distribuyendo: \[ (1 - B)(1 + B + \cdots + B^{s-1}) = (1 + B + \cdots + B^{s-1}) - B(1 + B + \cdots + B^{s-1}). \]

El segundo término es: \[ B(1 + B + \cdots + B^{s-1}) = B + B^2 + \cdots + B^s. \]

Por tanto, el producto se convierte en: \[ (1 + B + \cdots + B^{s-1}) - (B + B^2 + \cdots + B^s). \]

Todos los términos intermedios se cancelan de forma telescópica, quedando: \[ 1 - B^s. \]

Luego: \[ (1 - B)(1 + B + B^2 + \cdots + B^{s-1}) = 1 - B^s. \]


3) Interpretación sobre la serie temporal

Aplicando el operador factorizado a la serie \(\{y_t\}\): \[ (1 - B^s)y_t = (1 - B)(1 + B + \cdots + B^{s-1})y_t. \]

Primero: \[ (1 + B + \cdots + B^{s-1})y_t = y_t + y_{t-1} + \cdots + y_{t-(s-1)}. \]

Después aplicamos la diferencia regular: \[ \begin{aligned} (1 - B)\big(y_t + y_{t-1} + \cdots + y_{t-(s-1)}\big) &= \big(y_t + y_{t-1} + \cdots + y_{t-(s-1)}\big) \\ &\quad - \big(y_{t-1} + y_{t-2} + \cdots + y_{t-s}\big). \end{aligned} \]

Todos los términos se cancelan salvo los extremos, obteniéndose: \[ y_t - y_{t-s}. \]

Esto coincide exactamente con: \[ (1 - B^s)y_t. \]


Conclusión

El operador de diferencia estacional de periodo \(s\) puede escribirse como: \[ \boxed{1 - B^s = (1 - B)(1 + B + B^2 + \cdots + B^{s-1})}. \]

Es decir, la diferencia estacional equivale a aplicar primero un operador de suma de los \(s\) últimos términos y después una diferencia regular.

Ejercicio 3 — Raíces del operador de diferencia estacional (series trimestrales)

Enunciado.

Obtener con R todas las raíces del operador de diferencia estacional para series trimestrales. Representarlas en el plano complejo.

1. Operador de diferencia estacional trimestral

Para una serie trimestral, con periodicidad \(s = 4\), el operador de diferencia estacional es:

\[ \nabla_4 = 1 - B^4 \]

Las raíces de este operador se obtienen resolviendo la ecuación característica:

\[ 1 - z^4 = 0 \quad \Longleftrightarrow \quad z^4 = 1 \]

2. Raíces teóricas del operador

Más detalladamente

Las soluciones de la ecuación \(z^4 = 1\) son las cuatro raíces cuartas de la unidad:

\[ z_k = \exp\!\left(\frac{2\pi i k}{4}\right), \quad k = 0,1,2,3 \]

Explícitamente, estas raíces son:

\[ z_0 = 1, \quad z_1 = i, \quad z_2 = -1, \quad z_3 = -i \]

Todas ellas se sitúan sobre la circunferencia unidad del plano complejo.

3. Cálculo de las raíces en R

El polinomio asociado al operador \(1 - z^4\) tiene como coeficientes:

\[ (1,\;0,\;0,\;0,\;-1) \]

coef <- c(1, 0, 0, 0, -1)
raices <- polyroot(coef)
raices
## [1] -6.046735e-17+1.000000e+00i -1.000000e+00-3.863424e-17i
## [3] -1.276794e-16-1.000000e+00i  1.000000e+00+2.220446e-16i

4. Representación en el plano complejo

La representación en el plano complejo se realiza graficando la parte real frente a la parte imaginaria de cada raíz y superponiendo la circunferencia unidad para verificar que todas las raíces se encuentran sobre ella.

plot(Re(raices), Im(raices),
     xlim = c(-1.5, 1.5),
     ylim = c(-1.5, 1.5),
     xlab = "Parte real",
     ylab = "Parte imaginaria",
     main = "Raíces del operador de diferencia estacional trimestral",
     pch = 19)

t <- seq(0, 2*pi, length.out = 200)
lines(cos(t), sin(t), lty = 2)
abline(h = 0, v = 0, lty = 3)

5. Interpretación del gráfico

En el gráfico resultante aparecen cuatro puntos situados en:

\[ (1, \;0) (0, \;1) (−1, \;0) (0, \;−1) \]

todos ellos sobre la circunferencia unidad, que representan las raíces del operador de diferencia estacional trimestral.

6. Comentario final

La presencia de raíces en la circunferencia unidad indica que el operador 1 − B^4 introduce una no estacionariedad estacional.
Por este motivo, es necesario aplicar una diferencia estacional de orden 1 para eliminar una estacionalidad trimestral determinista y obtener un proceso estacionario.

Anexo

2) Cálculo raices complejas

Volver La expresión

\[ z^4 = 1 \]

aparece al buscar las raíces del operador de diferencia estacional. Para resolverla se utiliza la representación exponencial de los números complejos.

Representación compleja del número 1

El número complejo \(1\) puede escribirse en forma exponencial como:

\[ 1 = \exp(2\pi i m), \quad m \in \mathbb{Z} \]

ya que sumar múltiplos enteros de \(2\pi\) al argumento no altera el valor del número complejo.

Resolución de la ecuación \(z^4 = 1\)

Si \(z^4 = 1\), entonces puede escribirse:

\[ z^4 = \exp(2\pi i m) \]

Tomando la raíz cuarta en ambos lados se obtiene:

\[ z = \exp\!\left(\frac{2\pi i m}{4}\right) \]

Para obtener soluciones distintas basta considerar los valores:

\[ m = 0, 1, 2, 3 \]

ya que para valores mayores se repiten las soluciones.

Raíces cuartas de la unidad

Por tanto, las soluciones de la ecuación \(z^4 = 1\) son:

\[ z_k = \exp\!\left(\frac{2\pi i k}{4}\right), \quad k = 0,1,2,3 \]

Estas soluciones se denominan las raíces cuartas de la unidad y están igualmente espaciadas sobre la circunferencia unidad del plano complejo.

De forma explícita:

\[ z_0 = 1, \\ z_1 = i, \\ z_2 = -1, \\ z_3 = -i \\ \]

Todas ellas tienen módulo igual a uno y representan los cuatro puntos cardinales de la circunferencia unidad.

Ejercicio 4

Obtener con R todas las raíces del operador de diferencia estacional para series mensuales. Representarlas en el plano complejo.

1. Operador de diferencia estacional mensual

Para una serie mensual, con periodicidad \(s = 12\), el operador de diferencia estacional es:

\[ \nabla_{12} = 1 - B^{12} \]

Las raíces de este operador se obtienen resolviendo la ecuación característica:

\[ 1 - z^{12} = 0 \quad \Longleftrightarrow \quad z^{12} = 1 \]

2. Raíces teóricas del operador

Las soluciones de la ecuación \(z^{12} = 1\) son las doce raíces duodécimas de la unidad:

\[ z_k = \exp\!\left(\frac{2\pi i k}{12}\right), \quad k = 0,1,2,\ldots,11 \]

Todas ellas se sitúan sobre la circunferencia unidad del plano complejo, igualmente espaciadas (separadas por un ángulo de \(2\pi/12 = \pi/6\)).

3. Cálculo de las raíces en R

El polinomio asociado al operador \(1 - z^{12}\) tiene como coeficientes:

\[ (1,\;0,\;0,\;0,\;0,\;0,\;0,\;0,\;0,\;0,\;0,\;0,\;-1) \]

coef <- c(1, rep(0, 11), -1)
raices <- polyroot(coef)
raices
##  [1]  5.000000e-01+8.660254e-01i -8.660254e-01+5.000000e-01i
##  [3] -5.000000e-01-8.660254e-01i  8.660254e-01-5.000000e-01i
##  [5]  1.097852e-16+1.000000e+00i -1.000000e+00-1.237692e-14i
##  [7]  1.303521e-14-1.000000e+00i  1.000000e+00+1.086042e-14i
##  [9] -5.000000e-01+8.660254e-01i -8.660254e-01-5.000000e-01i
## [11]  5.000000e-01-8.660254e-01i  8.660254e-01+5.000000e-01i

4. Representación en el plano complejo

La representación en el plano complejo se realiza graficando la parte real frente a la parte imaginaria de cada raíz y superponiendo la circunferencia unidad para verificar que todas las raíces se encuentran sobre ella.

plot(Re(raices), Im(raices),
     xlim = c(-1.5, 1.5),
     ylim = c(-1.5, 1.5),
     xlab = "Parte real",
     ylab = "Parte imaginaria",
     main = "Raíces del operador de diferencia estacional mensual",
     pch = 19)

t <- seq(0, 2*pi, length.out = 400)
lines(cos(t), sin(t), lty = 2)
abline(h = 0, v = 0, lty = 3)

## 5. Interpretación del gráfico

En el gráfico resultante aparecen doce puntos sobre la circunferencia unidad, correspondientes a:

\[ \left(\cos\left(\frac{2\pi k}{12}\right),\; \sin\left(\frac{2\pi k}{12}\right)\right), \quad k = 0,1,\ldots,11 \]

Estos puntos representan las raíces del operador de diferencia estacional mensual y están distribuidos uniformemente cada \(30^\circ\).

6. Comentario final

La presencia de raíces en la circunferencia unidad indica que el operador \(1 - B^{12}\) introduce una no estacionariedad estacional.
Por ello, aplicar una diferencia estacional de orden 1 (\(D = 1\)) es el mecanismo estándar para eliminar una estacionalidad mensual determinista y trabajar con un proceso estacionario.

Anexo

La afirmación

“La presencia de raíces en la circunferencia unidad indica que el operador \(1 - B^{12}\) introduce una no estacionariedad estacional”

se entiende a partir de la relación entre raíces del operador, memoria infinita y estacionariedad.

1. Qué significa que una raíz esté en la circunferencia unidad

En modelos de series temporales, un proceso es estacionario si los efectos de perturbaciones pasadas se van debilitando con el tiempo.

Matemáticamente, esto ocurre cuando todas las raíces del polinomio autorregresivo están fuera de la circunferencia unidad.

Cuando una raíz está exactamente en módulo 1, el efecto de un shock no se disipa, sino que permanece indefinidamente.

Eso es precisamente una no estacionariedad.

2. El operador estacional \(1 - B^{12}\)

El operador

\[ 1 - B^{12} \]

compara el valor actual de la serie con el valor observado doce periodos antes:

\[ (1 - B^{12}) y_t = y_t - y_{t-12} \]

Si una serie cumple aproximadamente:

\[ y_t \approx y_{t-12} \]

entonces tiene una estructura estacional persistente, es decir, lo que ocurre en un mes se repite año tras año sin amortiguarse.

Esto es una forma clara de no estacionariedad estacional.

3. Relación con las raíces \(z^{12} = 1\)

Las raíces del operador se obtienen resolviendo:

\[ 1 - z^{12} = 0 \quad \Longleftrightarrow \quad z^{12} = 1 \]

Las doce soluciones tienen módulo:

\[ |z_k| = 1 \]

Esto significa que el operador tiene doce raíces exactamente sobre la circunferencia unidad.

Cada una de esas raíces corresponde a una oscilación periódica que no se atenúa en el tiempo.

Por eso el proceso no es estacionario desde el punto de vista estacional.

4. Qué hace la diferencia estacional \(D = 1\)

Aplicar una diferencia estacional de orden 1 consiste en trabajar con:

\[ z_t = (1 - B^{12}) y_t = y_t - y_{t-12} \]

Esta transformación elimina las componentes que se repiten exactamente cada 12 periodos.

Es decir, elimina la raíz unitaria estacional.

Una vez eliminadas esas raíces en módulo 1, el proceso resultante puede ser estacionario (si el resto de la estructura lo permite).

5. Intuición sencilla

– Raíz en módulo 1 → la memoria no se apaga
– Memoria que no se apaga → no estacionariedad
– Raíz en módulo 1 asociada a periodicidad 12 → no estacionariedad estacional
– Aplicar \(1 - B^{12}\) → se cancela esa periodicidad
– Resultado → proceso estacionario

6. Frase tipo examen

“Un operador de diferencia estacional introduce no estacionariedad porque sus raíces están en la circunferencia unidad. La aplicación de una diferencia estacional de orden uno elimina dichas raíces unitarias y permite obtener un proceso estacionario.”

Para entender esto mejor ver el ejercicio 2

Ejercicio 5. Análisis de una serie temporal de empleo

Enunciado

Analizar los datos de empleo de la carpeta W9.
Estos datos corresponden a una serie temporal mensual del empleo de varones en Estados Unidos, observada desde enero de 1971 hasta diciembre de 1981.


1. Descripción inicial de los datos

La serie es mensual, por lo que se considera una posible estacionalidad anual con periodicidad \(s = 12\).

  • Periodo temporal: enero de 1971 – diciembre de 1981
  • Frecuencia: mensual
  • Número de observaciones: \(11 \times 12 = 132\)

Se trata de una serie macroeconómica agregada, en la que cabe esperar tendencia, estacionalidad y fuerte dependencia temporal.


2. Representación gráfica de la serie

empleo <- scan("../Dia01/Datos/W9/W9.txt")

empleo_ts <- ts(empleo, start = c(1971, 1), frequency = 12)

plot(empleo_ts,
     main = "Empleo mensual de varones en EE.UU. (1971–1981)",
     ylab = "Empleo",
     xlab = "Año")

A partir del gráfico se aprecia un comportamiento no estacionario, con cambios en el nivel medio y una posible estacionalidad, lo que sugiere la necesidad de diferenciación regular y, en su caso, estacional.


3. Análisis de la estacionalidad

boxplot(empleo_ts ~ cycle(empleo_ts),
        xlab = "Mes",
        ylab = "Empleo",
        main = "Distribución mensual del empleo")

La existencia de diferencias sistemáticas en el nivel medio del empleo entre meses confirma la presencia de una componente estacional anual (periodo 12).

4. Análisis de estacionariedad

acf(empleo_ts, main = "ACF de la serie original")  

pacf(empleo_ts, main = "PACF de la serie original")

Interpretación teórica de la ACF y la PACF y justificación de la diferenciación

La función de autocorrelación (ACF) mide la dependencia lineal entre \(y_t\) y sus retardos \(y_{t-k}\). En una serie estacionaria, la ACF debe:

  • decrecer rápidamente hacia cero,
  • o bien cortarse tras unos pocos retardos, reflejando que la dependencia temporal es de corto alcance.

Por el contrario, en la serie original se observa que la ACF:

  • presenta un decaimiento lento, manteniendo valores significativos durante muchos retardos,
  • muestra picos pronunciados en retardos múltiplos de 12.

El decaimiento lento es característico de series no estacionarias en media, típicamente asociadas a la presencia de una raíz unitaria o tendencia estocástica. Esto indica que los choques tienen efectos persistentes en el tiempo y justifica la necesidad de aplicar diferenciación regular para eliminar dicha tendencia.

Además, la presencia de picos periódicos en la ACF y la forma oscilante o “sinusoidal” de su envolvente son indicativos de una componente estacional, en este caso con periodicidad anual (\(s = 12\)), propia de una serie mensual. Esta dependencia periódica no desaparece con la diferenciación regular, por lo que resulta necesario aplicar también diferenciación estacional.

La función de autocorrelación parcial (PACF) mide la correlación entre \(y_t\) y \(y_{t-k}\) eliminando el efecto de los retardos intermedios. En series estacionarias simples:

  • la PACF suele presentar un corte claro tras un cierto número de retardos en modelos AR,
  • o un decaimiento gradual en modelos MA.

En la serie original, la PACF:

  • no muestra un patrón de corte definido,
  • presenta varios retardos significativos, incluidos retardos estacionales, lo que es coherente con una estructura no estacionaria y estacional, y refuerza la idea de que no es adecuado identificar directamente un modelo ARMA sobre la serie sin transformar.

En conjunto, el comportamiento observado de la ACF y la PACF indica que la serie:

  • no es estacionaria en media,
  • presenta una componente estacional anual persistente.

Por ello, se recomienda aplicar diferenciación regular (\(d = 1\)) para eliminar la tendencia estocástica y diferenciación estacional (\(D = 1\), \(s = 12\)) para eliminar la dependencia periódica, como paso previo al ajuste de un modelo SARIMA sobre una serie aproximadamente estacionaria.


5. Diferenciación regular y estacional

Se aplica una diferenciación regular y una estacional:

empleo_diff <- diff(diff(empleo_ts), lag = 12)

plot(empleo_diff,
     main = "Serie diferenciada regular y estacionalmente",
     ylab = "Empleo diferenciado",
     xlab = "Año")

Tras la diferenciación, la serie oscila alrededor de una media constante.

Nota. La transformación aplicada corresponde al operador \[ (1 - B)(1 - B^{12}), \] resultado de combinar una diferenciación regular y una diferenciación estacional de periodo 12. Esta operación elimina simultáneamente la tendencia estocástica y la componente estacional anual de la serie.


6. Diagnóstico de la serie diferenciada

acf(empleo_diff, main = "ACF de la serie diferenciada")  

pacf(empleo_diff, main = "PACF de la serie diferenciada")

La estructura de autocorrelación sugiere un componente MA tanto regular como estacional.

La ACF de la serie diferenciada muestra un pico significativo en el retardo estacional 12, mientras que el resto de autocorrelaciones, incluidos los retardos bajos, son pequeñas y se mantienen dentro de las bandas de confianza. La PACF no presenta un patrón de corte claro. Este comportamiento es característico de un proceso con componentes MA tanto regular como estacional.


7. Ajuste del modelo ARIMA estacional

modelo <- arima(empleo_ts,
                order = c(0, 1, 1),
                seasonal = list(order = c(0, 1, 1), period = 12))

modelo
## 
## Call:
## arima(x = empleo_ts, order = c(0, 1, 1), seasonal = list(order = c(0, 1, 1), 
##     period = 12))
## 
## Coefficients:
##           ma1    sma1
##       -0.3106  -1.000
## s.e.   0.0976   0.128
## 
## sigma^2 estimated as 2353:  log likelihood = -645.18,  aic = 1296.35

El modelo propuesto es un ARIMA(0,1,1)×(0,1,1)\(_{12}\).

Nota. Aunque el modelo incluye dos diferenciaciones (\(d=1\) y \(D=1\)), estas actúan sobre componentes distintas de la serie. La diferenciación regular elimina la tendencia estocástica, mientras que la diferenciación estacional elimina la estacionalidad anual persistente. La combinación \((1-B)(1-B^{12})\) es necesaria para alcanzar estacionariedad y no equivale a una doble diferenciación regular.

Expresión teórica del modelo

El modelo ajustado es un ARIMA(0,1,1)×(0,1,1)\(_{12}\), que puede escribirse como:

\[ (1 - B)(1 - B^{12})\,y_t = (1 + \theta B)(1 + \Theta B^{12})\,\varepsilon_t, \]

donde:

  • \(B\) es el operador retardo,
  • \(\varepsilon_t\) es un ruido blanco,
  • \(\theta\) es el parámetro MA regular,
  • \(\Theta\) es el parámetro MA estacional.

Modelo estimado

A partir del ajuste realizado en R se obtiene:

\[ (1 - B)(1 - B^{12})\,y_t = (1 - 0.3106\,B)(1 - 1.000\,B^{12})\,\varepsilon_t, \]

con errores estándar:

  • s.e.(\(\hat{\theta}\)) = 0.0976,
  • s.e.(\(\hat{\Theta}\)) = 0.128.

El valor estimado del coeficiente MA estacional cercano a \(-1\) indica una dependencia estacional muy marcada, coherente con el patrón observado previamente en la ACF de la serie diferenciada.


8. Diagnóstico del modelo

residuos <- residuals(modelo)

par(mfrow = c(2,2))
plot(residuos, main = "Residuos del modelo", ylab = "Residuo", xlab = "Tiempo")
acf(residuos, main = "ACF de residuos")
pacf(residuos, main = "PACF de residuos")
qqnorm(residuos)
qqline(residuos)

Box.test(residuos, lag = 24, type = "Ljung-Box")
## 
##  Box-Ljung test
## 
## data:  residuos
## X-squared = 23.087, df = 24, p-value = 0.5146
par(mfrow=c(1,1))

Los residuos oscilan alrededor de cero y no muestran estructura temporal apreciable. La ACF y la PACF de los residuos no presentan autocorrelaciones significativas, y el contraste de Ljung–Box no rechaza la hipótesis de independencia hasta el retardo 24 (p-valor = 0.51). El QQ-plot sugiere una aproximación razonable a la normalidad. En conjunto, los residuos pueden considerarse compatibles con ruido blanco.


9. Conclusión

La serie mensual de empleo de varones en EE.UU. presenta tendencia y estacionalidad anual.
Tras aplicar diferenciación regular y estacional, un modelo ARIMA(0,1,1)×(0,1,1)\(_{12}\) describe adecuadamente su dinámica y supera los contrastes de diagnóstico habituales.

Ejercicio 5 — Análisis de la serie mensual de empleo (varones, EE. UU., 1971–1981)

A continuación se comenta la solución propuesta por el profesor. La idea general es:

  1. Explorar la serie en el dominio del tiempo (gráfico, ACF/PACF) y en el dominio de la frecuencia (periodograma suavizado).
  2. Probar estacionariedad mediante diferenciación regular y estacional.
  3. Ajustar candidatos SARIMA sobre la serie original con \(d=1\) y \(D=1\).
  4. Validar con diagnóstico de residuos (ACF/PACF de residuos y de residuos al cuadrado, y un test tipo Ljung–Box a través de TesRes).
  5. (Extra) Ejecutar un análisis automático de estacionalidad y ajuste con seasonal (X-13ARIMA-SEATS / X-11).
# ============================================================
# EJERCICIO 5 — Empleo mensual (varones, EE.UU., 1971–1981)
# Objetivo: analizar tendencia/estacionalidad, transformar para
# estacionarizar, proponer y validar un modelo SARIMA.
# ============================================================
# -----------------------------
# 0) Carga función de diagnosis
# -----------------------------
source("../Dia01/Programas/TesRes.R")
# -----------------------------
# 1) Carga de datos y serie ts
# -----------------------------
# y0: vector numérico con las observaciones mensuales
y0 <- scan("../Dia01/Datos/W9/W9.txt")

# y: serie temporal mensual (frequency = 12) desde enero de 1971
y <- ts(y0, frequency = 12, start = c(1971, 1))

# -------------------------------------------
# 2) Periodograma suavizado (kernel Daniell)
# -------------------------------------------
# kernel(): define el filtro de suavizado para el periodograma.
# "modified.daniell" con m=c(2,2) aplica un suavizado moderado
# para resaltar picos de frecuencia (por ejemplo estacionales).
k2 <- kernel("modified.daniell", m = c(2, 2))

# Para ver varias salidas en una misma ventana
par(mfrow = c(2, 2))

# ------------------------------------------------
# 3) Exploración inicial: serie original (nivel)
# ------------------------------------------------
# Gráfico de la serie: ayuda a detectar tendencia y cambios de nivel
plot.ts(y)

# spec.pgram(): periodograma (dominio frecuencia)
# - log='yes': escala logarítmica para visualizar picos relativos
# - taper=0: sin atenuación en bordes
# - detrend=FALSE: no elimina tendencia (queremos verla en el espectro)
# - demean=TRUE: centra la serie para el cálculo espectral
spec.pgram(y, k2, taper = 0, log = 'yes', detrend = FALSE, demean = TRUE)

# ACF/PACF: dependencia temporal en el dominio del tiempo
# En series ts, el eje X suele aparecer en "unidades de tiempo":
# con frequency=12, x=1 equivale a 12 meses (un año).
acf(y)
pacf(y)

# ------------------------------------------------------------
# 4) Diferenciación regular: dy = (1 - B) y_t
# ------------------------------------------------------------
# Objetivo: eliminar tendencia estocástica (no estacionariedad regular)
dy <- diff(y)

# Comprobación visual y en frecuencia + ACF/PACF
plot(dy)
spec.pgram(dy, k2, taper = 0, log = 'yes', detrend = FALSE, demean = TRUE)
acf(dy)
pacf(dy)

# ------------------------------------------------------------
# 5) Diferenciación estacional: d12y = (1 - B^12) y_t
# ------------------------------------------------------------
# Objetivo: eliminar estacionalidad anual persistente (periodo 12)
d12y <- diff(y, lag = 12)

# Diagnóstico tras solo diferencia estacional
plot(d12y)
spec.pgram(d12y, k2, taper = 0, log = 'yes', detrend = FALSE, demean = TRUE)
acf(d12y)
pacf(d12y)

# -------------------------------------------------------------------
# 6) Diferenciación regular + estacional: ddy = (1 - B)(1 - B^12) y_t
# -------------------------------------------------------------------
# Objetivo: eliminar simultáneamente tendencia y estacionalidad
ddy <- diff(dy, lag = 12)

# Diagnóstico de la serie ya (aprox.) estacionaria
plot(ddy)
spec.pgram(ddy, k2, taper = 0, log = 'yes', detrend = FALSE, demean = TRUE)
acf(ddy)
pacf(ddy)

# ------------------------------------------------------------
# 7) Ajuste de modelos SARIMA candidatos y diagnóstico residuos
# ------------------------------------------------------------
# A partir de los diagnósticos previos, se prueban modelos simples:
# - (0,1,0)x(0,1,1)[12]
# - (0,1,1)x(0,1,1)[12]
# Se evalúan residuos: ACF/PACF, espectro y posibles patrones en varianza.

par(mfrow = c(3, 2))

# --------------------------
# 7.1) Modelo SARIMA(0,1,0)x(0,1,1)[12]
# --------------------------
# Este modelo incluye solo MA estacional (captura dependencia anual residual)
mddy0001 <- arima(y, order = c(0, 1, 0), seasonal = c(0, 1, 1))

# Residuos: deben parecer ruido blanco (sin estructura temporal)
plot(mddy0001$residuals)

# Periodograma de residuos: debería ser "plano" (sin picos dominantes)
spec.pgram(mddy0001$residuals, k2, taper = 0, log = 'yes', detrend = FALSE, demean = TRUE)

# ACF/PACF de residuos: barras dentro de bandas -> independencia temporal
acf(mddy0001$residuals); pacf(mddy0001$residuals)

# ACF/PACF de residuos^2: detecta heterocedasticidad condicional (tipo ARCH)
acf(mddy0001$residuals^2); pacf(mddy0001$residuals^2)

# TesRes(): función auxiliar (si está definida en vuestro entorno)
# Normalmente devuelve estadísticos de diagnóstico (p.ej. Ljung-Box en varios lags).
Temddy0001 <- TesRes(mddy0001, 1)
Temddy0001[6:8]
## [[1]]
##       Resumen              VM
## 1 0.140832659    pvalLjungBox
## 2 0.950933437    pvalMcLeodLi
## 3 0.007702685 pvalShapiroWilk
## 4 0.451615583   pvalLjungEsta
## 5 0.000000000  max(abs(Corr))
## 6 1.000000000        fila max
## 7 1.000000000         col max
## 
## [[2]]
##      Parametros Desv. tipicas Cocientes T    p-valores
## sma1  -0.999996     0.1821091   -5.491192 3.992292e-08
## 
## [[3]]
##   Var. residual  log-vero      aic
## 1      2538.058 -649.6228 1303.246
# --------------------------
# 7.2) Modelo SARIMA(0,1,1)x(0,1,1)[12]
# --------------------------
# Añade un MA(1) regular además del MA(1) estacional:
# suele mejorar el ajuste si queda dependencia de corto plazo (lag 1, 2, ...)
mddy0101 <- arima(y, order = c(0, 1, 1), seasonal = c(0, 1, 1))

plot(mddy0101$residuals)
spec.pgram(mddy0101$residuals, k2, taper = 0, log = 'yes', detrend = FALSE, demean = TRUE)
acf(mddy0101$residuals); pacf(mddy0101$residuals)
acf(mddy0101$residuals^2); pacf(mddy0101$residuals^2)

Temddy0101 <- TesRes(mddy0101, 2)
Temddy0101[6:8]
## [[1]]
##        Resumen              VM
## 1 3.968110e-01    pvalLjungBox
## 2 9.588875e-01    pvalMcLeodLi
## 3 7.113236e-03 pvalShapiroWilk
## 4 1.762821e-01   pvalLjungEsta
## 5 1.221582e-05  max(abs(Corr))
## 6 1.000000e+00        fila max
## 7 2.000000e+00         col max
## 
## [[2]]
##      Parametros Desv. tipicas Cocientes T    p-valores
## ma1  -0.3105852     0.0975969   -3.182326 1.460972e-03
## sma1 -0.9999913     0.1280259   -7.810853 5.680208e-15
## 
## [[3]]
##   Var. residual  log-vero      aic
## 1      2353.294 -645.1761 1296.352
# --------------------------
# 7.3) Mismo modelo estimado con CSS
# --------------------------
# method="CSS" (Conditional Sum of Squares) puede ayudar en convergencia
# o dar una solución alternativa (a veces útil comparar).
mddy0101b <- arima(y, order = c(0, 1, 1), seasonal = c(0, 1, 1), method = "CSS")

plot(mddy0101b$residuals)
spec.pgram(mddy0101b$residuals, k2, taper = 0, log = 'yes', detrend = FALSE, demean = TRUE)
acf(mddy0101b$residuals); pacf(mddy0101b$residuals)
acf(mddy0101b$residuals^2); pacf(mddy0101b$residuals^2)

Temddy0101b <- TesRes(mddy0101b, 2)
Temddy0101b[6:8]
## [[1]]
##      Resumen              VM
## 1 0.42024037    pvalLjungBox
## 2 0.95159744    pvalMcLeodLi
## 3 0.03526324 pvalShapiroWilk
## 4 0.66291028   pvalLjungEsta
## 5 0.18659321  max(abs(Corr))
## 6 2.00000000        fila max
## 7 1.00000000         col max
## 
## [[2]]
##      Parametros Desv. tipicas Cocientes T    p-valores
## ma1  -0.3348697    0.10042937   -3.334381 8.548959e-04
## sma1 -0.8154588    0.05482525  -14.873782 4.877815e-50
## 
## [[3]]
##   Var. residual  log-vero aic
## 1      3081.149 -646.8206  NA
# ------------------------------------------------------------
# 8) Análisis automático (X-13ARIMA-SEATS / X-11) con seasonal
# ------------------------------------------------------------
# Esto NO sustituye al análisis manual, pero sirve como contraste:
# el paquete seasonal llama a X-13ARIMA-SEATS para ajustar/regresar
# y descomponer la serie, y permite forzar X-11.
par(mfrow = c(2, 1))
library(seasonal)
## Warning: package 'seasonal' was built under R version 4.5.2
# Ajuste automático por defecto (X-13ARIMA-SEATS)
mody <- seas(y)
summary(mody)   # resumen: modelo, diagnósticos, estacionalidad, etc.
## 
## Call:
## seas(x = y)
## 
## Coefficients:
##                    Estimate Std. Error z value Pr(>|z|)    
## LS1980.May        179.94676   44.62893   4.032 5.53e-05 ***
## MA-Nonseasonal-01   0.35616    0.07697   4.627 3.70e-06 ***
## MA-Seasonal-12      0.99965    0.07089  14.101  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## SEATS adj.  ARIMA: (0 1 1)(0 1 1)  Obs.: 132  Transform: none
## AICc:  1284, BIC:  1294  QS (no seasonality in final):    0  
## Box-Ljung (no autocorr.): 29.17   Shapiro (normality): 0.9902
plot(mody)      # descomposición y gráficos estándar

# Forzar descomposición X-11
modyx11 <- seas(y, x11 = "")
plot(modyx11)

summary(modyx11)
## 
## Call:
## seas(x = y, x11 = "")
## 
## Coefficients:
##                    Estimate Std. Error z value Pr(>|z|)    
## LS1980.May        179.94676   44.62893   4.032 5.53e-05 ***
## MA-Nonseasonal-01   0.35616    0.07697   4.627 3.70e-06 ***
## MA-Seasonal-12      0.99965    0.07089  14.101  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## X11 adj.  ARIMA: (0 1 1)(0 1 1)  Obs.: 132  Transform: none
## AICc:  1284, BIC:  1294  QS (no seasonality in final):0.05827  
## Box-Ljung (no autocorr.): 29.17   Shapiro (normality): 0.9902
par(mfrow = c(1, 1))

1) Lectura y definición como serie temporal

Se carga el fichero y se construye una ts mensual con inicio en 1971(1):

  • frequency = 12 fija periodicidad anual.
  • start = c(1971,1) sitúa enero de 1971 como primera observación.

2) Periodograma suavizado y ACF/PACF: serie original \(y_t\)

Se define un kernel Daniell modificado con dos ventanas m=c(2,2) y se usa spec.pgram con:

  • log='yes' para ver mejor picos relativos,
  • taper=0 para no atenuar extremos,
  • detrend=FALSE y demean=TRUE (se centra, pero no se elimina tendencia).

Interpretación esperada:

  • En series macroeconómicas como empleo suele haber:
    • tendencia → no estacionariedad (ACF con decaimiento lento),
    • estacionalidad → picos en el periodograma en frecuencia anual y armónicos; en ACF, picos en retardos 12, 24, etc.

Por eso se calculan también acf(y) y pacf(y).


3) Diferenciación regular: \(\nabla y_t = y_t - y_{t-1}\)

Se calcula dy <- diff(y) y se repite el bloque de diagnóstico (gráfico, periodograma, ACF/PACF).

Objetivo:

  • Reducir/eliminar la tendencia (componente de baja frecuencia).
  • Ver si tras \(d=1\) queda principalmente estructura estacional (picos cada 12) y dependencia corta.

4) Diferenciación estacional: \(\nabla_{12} y_t = y_t - y_{t-12}\)

Se calcula d12y <- diff(y, lag=12) y se vuelve a analizar.

Objetivo:

  • Eliminar estacionalidad determinista/regular anual.
  • Ver si persiste no estacionariedad regular o si queda un proceso estacionario.

5) Diferenciación regular + estacional: \(\nabla \nabla_{12} y_t\)

Se calcula ddy <- diff(dy, lag=12) (equivalente a aplicar \(d=1\) y \(D=1\)) y se repite:

  • gráfico,
  • periodograma,
  • ACF/PACF.

Esta es la transformación típica cuando se sospecha que la serie es integrada tanto en parte regular como estacional, es decir, un esquema SARIMA con:

  • \(d=1\),
  • \(D=1\),
  • \(s=12\).

6) Ajuste de modelos SARIMA candidatos con \(d=1\) y \(D=1\)

Después de explorar ddy, el profesor propone ajustar directamente sobre y modelos SARIMA con:

  • orden regular \((p,d,q)\),
  • orden estacional \((P,D,Q)_{12}\),

y diagnosticar residuos.

6.1) Modelo 1: SARIMA(0,1,0)×(0,1,1)\(_{12}\)

mddy0001 <- arima(y, order=c(0,1,0), seasonal=c(0,1,1))

Interpretación:

  • Tras diferenciar regular y estacionalmente, la dinámica remanente se modela con un MA estacional(1).
  • Es un candidato natural cuando los gráficos/ACF sugieren un “pico” importante en lag 12 y poca estructura adicional.

Diagnóstico aplicado:

  • plot(residuals): inspección visual.
  • spec.pgram(residuals, ...): comprobar si quedan frecuencias dominantes (estacionalidad residual).
  • acf/pacf(residuals): detectar autocorrelación remanente.
  • acf/pacf(residuals^2): buscar heterocedasticidad condicional (patrones tipo ARCH).
  • TesRes(mddy0001,1); Temddy0001[6:8]: extraer medidas de diagnóstico (típicamente incluyen Ljung–Box y/o p-valores en ciertos lags). La selección [6:8] indica que el profesor se fija en un subconjunto concreto de estadísticos/p-valores.

Si aparecen autocorrelaciones residuales claras (o p-valores pequeños), el modelo se considera insuficiente.

6.2) Modelo 2: SARIMA(0,1,1)×(0,1,1)\(_{12}\)

mddy0101 <- arima(y, order=c(0,1,1), seasonal=c(0,1,1))

Interpretación:

  • Añade un MA(1) regular además del MA(1) estacional.
  • Es un candidato muy habitual en series mensuales económicas cuando la ACF de la serie diferenciada muestra un pico marcado en lag 1 y en lag 12.

Se repite exactamente el mismo diagnóstico de residuos.

6.3) Mismo modelo pero estimado con CSS

mddy0101b <- arima(y, order=c(0,1,1), seasonal=c(0,1,1), method="CSS")

Interpretación:

  • CSS (Conditional Sum of Squares) es un método alternativo de estimación.
  • A veces ayuda a la convergencia o produce estimaciones iniciales distintas (puede cambiar ligeramente residuos/diagnósticos).

De nuevo, se valida con periodograma/ACF/PACF de residuos y TesRes.

Criterio final típico: se elige el modelo con residuos “más blancos” (sin autocorrelación significativa) y mejores estadísticos de diagnóstico (p-valores altos en Ljung–Box), además de buena parsimonia.


7) Análisis automático con seasonal (X-13ARIMA-SEATS y X-11)

La parte final:

  • mody <- seas(y) ajusta automáticamente un modelo con X-13ARIMA-SEATS:
    • identifica diferenciaciones, regARIMA, outliers, efectos calendario si procede, y descomposición SEATS (según configuración por defecto).
  • modyx11 <- seas(y, x11="") fuerza el uso de X-11 (descomposición por filtros móviles).

Luego se inspeccionan:

  • summary(mody) y summary(modyx11) para ver:
    • modelo ARIMA interno seleccionado,
    • pruebas de estacionalidad,
    • diagnóstico del ajuste,
    • componentes (tendencia-ciclo, estacional, irregular).
  • plot(mody) y plot(modyx11) para ver la descomposición.

Esta parte sirve como “contraste” automático frente al análisis manual SARIMA.


Conclusión (qué está haciendo realmente la solución)

La solución del profesor implementa un flujo completo:

  1. Confirmar visualmente tendencia y estacionalidad.
  2. Usar periodograma + ACF/PACF para justificar \(d=1\) y \(D=1\).
  3. Probar modelos SARIMA simples, especialmente:
    • (0,1,0)×(0,1,1)\(_{12}\)
    • (0,1,1)×(0,1,1)\(_{12}\)
  4. Elegir por diagnóstico de residuos (blancura y ausencia de estructura, también en residuos²).
  5. Comparar con un procedimiento automático estándar (X-13 / X-11).

Si quieres, te lo adapto a “solución de examen” con: - qué se observa en cada ACF/PACF y cada periodograma, - qué retardo/frecuencia concreta apunta a estacionalidad anual, - y una frase final tipo “modelo recomendado”.