Modelos parte I

Ruido blanco

Un proceso a tiempo discreto es puramente aleatorio si consiste de una secuencia de variables aleatorias independientes e idénticamente distribuidas \(\{Z_{t}\}\). Generalmente asumimos que tienen media cero y varianza constante, además de que siguen una distribución normal. Por lo anterior tenemos que

\[ \rho(\tau)=\left\{\begin{array}{cc}1 & \textrm{si} \ \ \tau=0\\ 0& \hspace{1.4cm}\textrm{si} \ \ \tau=1,2,\ldots\end{array}\right. \]

A este tipo de procesos se les conoce como ruido blanco. Realicemos una simulación de una serie de tiempo de un proceso puramente aleatorio

library(forecast)

# Número de datos simulados
n = 100

# desviación estándar
sd = 2
Zt <- rnorm(n, 0, sd)

# Graficamos
tsdisplay(Zt)

donde notamos que, justamente, la media es cero y la variazación constante. Además, vemos que los valores de en ACF y PACF son cercanos a cero y en general no “salen” del intervalo de confianza. Aunque teóricamente dichos valores cercanos a cero deben ser cero para \(\tau\neq0\), en la práctica veremos un comportamiento más como el mostrado en las gráficas anteriores.

De forma alternativa, podemos utilizar la función arima.sim() para simular un ruido blanco, para ello colocaremos order=c(0,0,0):

Zt2 <- arima.sim(model=list(order=c(0,0,0)), n = 100, mean = 0, sd = 2)
tsdisplay(Zt2)

Caminata aleatoria

Sea \(\{Z_{}t\}\) un ruido blanco. Se dice que un proceso \(\{X_{t}\}\) es uan caminata aleatoria si

$$

X_{t}=X_{t-1}+Z_{t},   X_{t}={i=1}^{t}Z{i}     X_{0}=0 X_{1}=Z_{1} $$

de donde \(\mathbb{E}[X_{t}]=t\mu\) y \(var[X_{t}]=t\sigma^{2}_{Z}\), por lo que este proceso no es estacionario. No obstante

\[ \nabla X_{t}=X_{t}-X_{t-1}=Z_{t} \]

si es estacionario.

Simulemos una serie de tiempo con un proceso de Caminata aleatoria:

# Ruido blanco
n = 100
sd = 2
Zt <- rnorm(n,0,sd)

# X_0=0
Xt = c(0)

# X_t = X_t-1 + Z_t
for(t in 2:n){
  Xt[t] = Xt[t-1] + Zt[t]
}

tsdisplay(Xt)

donde notamos que ni la media ni la varianza son constantes. Además, dado que en la Caminata aleatoria un valor en un tiempo depende únicamente del valor en el tiempo inmediato anterior, vemos que los valores en ACF decrecen y tenderán a cero; por otra parte en la PACF vemos que las autocorrelaciones parciales son prácticamente cero, justo por la definición del proceso de Caminata aleatoria.

Recordamos que al sacar diferencia a una serie de tiempo con proceso de Caminata aleatoria obtenemos un ruido blanco:

tsdisplay(diff(Xt))

MA - Proceso de medias móviles

MA(1)

Sea \(\{z_{t}\}\) un ruido blanco. Un proceso \(\{X_{t}\}\) se dice que es un proceso de medias móviles de orden 1 si

\[ X_{t}=Z_{t}-\theta_{1}Z_{t-1}=(1-\theta_{1}\mathbf{B})Z_{t}=\theta_{1}(\mathbf{B})Z_{t} \]

donde \(\mathbb{E}[X_{t}]=0\), \(var[X_{t}]=(1+\theta_{1}^{2})\sigma^{2}_{Z}\) y además

\[ \rho(k)=\left\{\begin{array}{ccc}1 & \textrm{si} \ \ k=0\\ \frac{-\theta_{1}}{1+\theta_{1}^{2}} & \textrm{si} \ \ k\pm1\\ 0 & \textrm{si} \ \ |k|>1\\ \end{array}\right. \]

La función de autocorrelación parcial:

  • \(\phi_{11}=\rho_{1}=\frac{-\theta_{1}}{1+\theta_{1}^{2}}\)

  • \(\phi_{22}=\frac{\theta_{1}^{2}}{(1+\theta_{1}^{2})^{2}-\theta_{1}^{2}}\)

etcétera. Podemos simular una serie de tiempo MA(1)

# Ruido blanco
n = 2000
sd = 2
Zt <- rnorm(n, 0, sd)  

# parámetros
theta1 = -0.8

# valor inicial
Xt = c(Zt[1])

for(t in 2:n){
  Xt[t] = Zt[t] - theta1 * Zt[t-1]
}

tsdisplay(Xt,main="MA(1)")

donde vemos que los valores en la ACF son prácticamente cero para valores \(k\neq0\), además, en la PACF vemos un comportamiento alternado de los valores, pero que de ambos lados (respecto a la recta \(y=0\)) están tendiendo a cero. Si cambiamos el valor del parámetro por uno positivo obtenemos lo siguiente

# parámetros
theta1 = 0.8

# valor inicial
Xt = c(Zt[1])

for(t in 2:n){
  Xt[t] = Zt[t] - theta1 * Zt[t-1]
}

tsdisplay(Xt,main="MA(1)")

en lo cual vemos que el comportamiento es análogo en la ACF salvo que el priemr valor es negativo, lo cual se debe a que \(\rho(k)=\frac{-\theta_{1}}{1+\theta_{1}^{2}}\) para \(k=\pm1\); en la función de autocorrelación parcial los valores son negativos con un compartamiento de convergencia hacía el cero. Como alternativa

Xt2 <- arima.sim(model = list(ma = -0.8), n = 2000)
tsdisplay(Xt2, main="MA(1)")

donde \(\theta\) es tomado con signo contrario, por ello las gráficas de \(\theta=0.8\) es igual a la de \(\theta=-0.8\) utilizando la función arima.sim().

Finalmente, podemos simular una proceso de medias móviles de orden dos MA(2), donde tendremos que

\[ X_{t}=\beta_{0}Z_{t}+\beta_{1}Z_{t-1}+\beta_{2}Z_{t-2} \]

donde usualmente las \(Z's\) se escalan para tener que \(\beta_{0}=1\), lo cual será lo que haremos

# Ruido blanco
n = 1000
sd = 2
Zt <- rnorm(n, 0, sd)

# Valor de las constantes
B1 = -0.4
B2 = -1.2

# Valores iniciales para la serie
Xt3 = c(Zt[1],Zt[2])


for(t in 3:n){
  Xt3[t] = Zt[t] + B1*Zt[t-1] + B2*Zt[t-2]
}

# Graficamos
tsdisplay(Xt3, main="MA(2)")

notamos que, al igual que el PACF del modelo MA(1), la fucnión PACF tiene un comportamiento decreciente; asimismo, los valores para ACF son muy cercanos a cero, salvo que en este caso vemos que el segundo valor de la autocorrelación sale del intervalo de confianza. Alternativamente al código anterior podemos utilizar:

Xt4 <- arima.sim(model = list(ma = c(-0.4, -1.2)), n = 2000)
tsdisplay(Xt4, main="MA(2)")

Finalmente veamos el comportamiento de un modelo MA(3)

Xt5 <- arima.sim(model = list(ma = c(-0.8, -0.4, -1.2)), n = 2000)
tsdisplay(Xt5, main="MA(3)")

ahora el segundo y tercer valor en la función ACF salen del intervalo de confianza y, para el caso de la función PACF, el comportamiento es totalmente análogo respecto a los modelos MA(1) y MA(2).

AR - PROCESOS AUTORREGRESIVOS

Este modelo también se conoce como proceso de Markov:

\[ X_{t}=\alpha X_{t-1}+Z_{t} \] el cual también puede verse como

\[ X_{t}=Z_{t}+\alpha Z_{t-1}+\alpha^{2} Z_{t-2}+\cdots \]

con \(|\alpha|<1\) para garantizar que la serie converge. De tal manera, podemos decir que \(MA(\infty)\) es el equivalente al modelo \(AR(1)\). Podemos simular un modelo AR(1) de la siguiente forma

# Ruido blanco
n = 2000
sd = 2
Zt <- rnorm(n, 0, sd)   

# valor de alfa
A1 = -0.8   

# valor inicial de la serie
Xt6 = c(Zt[1])

for(t in 2:n){
  Xt6[t] = A1*Xt6[t-1] + Zt[t]
}
Xt = ts(Xt6, start = 2000, frequency = 12)

tsdisplay(Xt6,main="AR(1)")

en este caso tendremos que en la gráfica de PACF todos los valores serán prácticamente cero a diferencia del primer valor. Veamos ahora las gráficas para un modelo \(AR(2)\)

Xt7 <- arima.sim(model = list(ar = c(-0.8, -0.4)), n = 2000)
tsdisplay(Xt7, main="AR(2)")

donde en la gráfica PACF todos los valores son prácticamente cero salvo los primeros dos. En general, todos los valores en la gráfica PACF serán cero para un modelo AR(q) salvo por los primeros \(q\) valores.