5 votos

¿Cómo calcular el error estándar de la media de un proceso AR(1)?

Intento calcular el error estándar de la media para un proceso AR(1) degradado $x_{t+1} = \rho x_t + \varepsilon_{t+1} =\sum\limits_{i=0}^{\infty} \rho^i \varepsilon_{t+1-i}$

Esto es lo que hice:

$$ \begin{align*} Var(\overline{x}) &= Var\left(\frac{1}{N} \sum\limits_{t=0}^{N-1} x_t\right) \\ &= Var\left(\frac{1}{N} \sum\limits_{t=0}^{N-1} \sum\limits_{i=0}^{\infty} \rho^i \varepsilon_{t-i}\right) \\ &= \frac{1}{N^2} Var\begin{pmatrix} \rho^0 \varepsilon_0 + & \rho^1 \varepsilon_{-1} + & \rho^2 \varepsilon_{-2} + & \cdots & \rho^{\infty} \varepsilon_{-\infty} + \\ \rho^0 \varepsilon_1 + & \rho^1 \varepsilon_{0} + & \rho^2 \varepsilon_{-1} + & \cdots & \rho^{\infty} \varepsilon_{1-\infty} + \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ \rho^0\varepsilon_{N-1} + & \rho^1 \varepsilon_{N-2} + & \rho^2 \varepsilon_{N-3} + & \cdots & \rho^{\infty} \varepsilon_{N-1-\infty} + \\ \end{pmatrix} \\ &= \frac{1}{N^2} Var\begin{pmatrix} \rho^0 \varepsilon_{N-1} + \\ (\rho^0 + \rho^1) \varepsilon_{N-2} + \\ (\rho^0 + \rho^1 + \rho^2) \varepsilon_{N-3} + \\ \cdots \\ (\rho^0 + \rho^1 + \rho^2 + \dots + \rho^{N-2}) \varepsilon_{1} + \\ (\rho^0 + \rho^1 + \rho^2 + \dots + \rho^{N-1}) \varepsilon_{0} + \\ (\rho^1 + \rho^2 + \rho^3 + \dots + \rho^{N}) \varepsilon_{-1} + \\ (\rho^2 + \rho^3 + \rho^4 + \dots + \rho^{N+1}) \varepsilon_{-2} + \\ \cdots\\ \end{pmatrix} \\ &= \frac{\sigma_{\varepsilon}^2}{N^2} \begin{pmatrix} \rho^0 + \\ (\rho^0 + \rho^1) + \\ (\rho^0 + \rho^1 + \rho^2) + \\ \cdots \\ (\rho^0 + \rho^1 + \rho^2 + \dots + \rho^{N-2}) + \\ (\rho^0 + \rho^1 + \rho^2 + \dots + \rho^{N-1}) + \\ (\rho^1 + \rho^2 + \rho^3 + \dots + \rho^{N}) + \\ (\rho^2 + \rho^3 + \rho^4 + \dots + \rho^{N+1}) + \\ \cdots\\ \end{pmatrix} \\ &= \frac{N \sigma_{\varepsilon}^2}{N^2} (\rho^0 + \rho^1 + \dots + \rho^{\infty}) \\ &= \frac{\sigma_{\varepsilon}^2}{N} \frac{1}{1 - \rho} \\ \end{align*} $$

Probablemente, no todos los pasos se hacen de la manera más obvia, así que permítanme añadir algunas ideas. En la tercera fila, acabo de escribir a dos signos de suma. Aquí, la matriz tiene N filas. En la cuarta fila, realineo la matriz para que haya una fila por cada épsilon, así que el número de filas es infinito aquí. Obsérvese que las tres últimas partes de la matriz tienen el mismo número de elementos, sólo que diferenciados por un factor $\rho$ en cada fila. En la quinta fila, aplico la regla de que la varianza de la suma de choques independientes es la suma de las varianzas de esos choques y observo que cada $\rho^j$ se resume el elemento $N$ tiempos.

El resultado final parece limpio, pero probablemente sea erróneo. ¿Por qué lo pienso? Porque hago un MCS en R y las cosas no cuadran:

nrMCS <- 10000
N <- 100
pers <- 0.9
means <- numeric(nrMCS)
for (i in 1:nrMCS) {
   means[i] <- mean(arima.sim(list(order=c(1,0,0), ar=pers), n = N))
}
#quantile(means, probs=c(0.025, 0.05, 0.5, 0.95, 0.975))
#That is the empirical standard error
sd(means)
0.9459876
#This should be the standard error according to my formula
1/(N*(1-pers))
0.1

Cualquier pista sobre lo que estoy haciendo mal sería genial. O tal vez una pista donde pueda encontrar la derivación correcta (no he podido encontrar nada). ¿Es el problema tal vez que asumo la independencia entre los mismos errores?

$$Var(X + X) = Var(2X) = 4Var(X) \neq 2Var(X)$$

Lo he pensado, pero no veo dónde hago esa suposición errónea en mi derivación.

ACTUALIZACIÓN

Me olvidé de cuadrar los rhos, como bien señaló Nuzhi. Por lo tanto, debería ser así:

$$ Var(\overline{x}) = \frac{\sigma_{\varepsilon}^2}{N^2} \begin{pmatrix} \rho^{2\times0} + \\ (\rho^0 + \rho^1)^2 + \\ (\rho^0 + \rho^1 + \rho^2)^2 + \\ \cdots \\ (\rho^0 + \rho^1 + \rho^2 + \dots + \rho^{N-2})^2 + \\ (\rho^0 + \rho^1 + \rho^2 + \dots + \rho^{N-1})^2 + \\ (\rho^1 + \rho^2 + \rho^3 + \dots + \rho^{N})^2 + \\ (\rho^2 + \rho^3 + \rho^4 + \dots + \rho^{N+1})^2 + \\ \cdots\\ \end{pmatrix} $$

3voto

otto Puntos 92

Bueno, en realidad cuando se toma lo siguiente

\begin {align*} Var( \overline {x}) &= Var \left ( \frac {1}{N} \sum\limits_ {t=0}^{N-1} x_t \right ) \\ \end {align*}

Es más fácil derivar un valor implícito que un valor explícito en este caso... tu respuesta y la mía son iguales... es sólo que la tuya es un poco más difícil de manejar debido a la expansión de rho's... pero alguna manipulación algebraica debería ser capaz de hacer el truco supongo ....I derivó la respuesta de la siguiente manera

desde $ Var(\overline{x})$ es una combinación lineal..... \begin {align*} Var( \overline {x}) &= \frac {1}{N^2}Cov \left ( \sum\limits_ {t=0}^{N-1} \sum\limits_ {j=0}^{N-1} x_t x_j \right ) \\ \end {align*} \begin {align*} Var( \overline {x}) &= \frac {1}{N^2} \sum\limits_ {t=0}^{N-1}Var \left ( x_t \right ) + \frac {1}{N^2} \sum\limits_ {t=0}^{N-1} \sum\limits_ {j \ne t}^{N-1}Cov \left ( x_t x_j \right ) \\ \end {align*}

Ahora para un proceso AR(1) $Var(x_t) = \frac{{\sigma_{\varepsilon}}^2}{1 - \rho^2} $ y $Cov(x_tx_j) = \frac{{\sigma_{\varepsilon}}^2}{1 - \rho^2}\rho^{|j-t|} $ ....

Sustituyendo lo anterior se obtiene la ecuación requerida... espero que esto responda a tu pregunta :)

2voto

otto Puntos 92

Bueno, hay tres cosas que veo en esta pregunta:

1) En su derivación cuando su toma de la varianza de los términos dentro de Rho debe obtener al cuadrado y usted debe terminar con la expresión .. i no considerar la auto covarianza antes ..sorry about that

$$ Var(\overline{x}) = \frac{\sigma_{\varepsilon}^2}{N} \frac{1}{1 - \rho^2} + \sum\limits_{t=0}^{N-1}\sum\limits_{t\neq j}^{N-1}\frac{\sigma_{\varepsilon}^2}{N^2} \frac{1}{1 - \rho^2}\rho^{|j-t|}$$

2) En tu código has calculado la varianza de xbar... para el error estándar el código debería incluir la toma del cuadrado de la respuesta dada

3) Has asumido que el ruido blanco se ha generado a partir de una distribución (0,1) cuando en realidad el ruido blanco sólo tiene que tener una varianza constante... no sé qué valores de la varianza constante utiliza R para generar las series temporales... quizás puedas comprobarlo...

Espero que esto te ayude :)

2voto

otto Puntos 92

Este es el código R por cierto..

nrMCS <- 10000
N <- 100
pers <- 0.9
means <- numeric(nrMCS)

for (i in 1:nrMCS) {
  means[i] <- mean(arima.sim(model=list(ar=c(pers)), n = N,mean=0,sd=1))
}
#Simulation answer
ans1 <-sd(means)

#This should be the standard error according to the given formula
cov <- 0
for(i in 1:N){
for(j in 1:N){
cov <- cov +(1/((N^2)*(1-pers^2)))*pers^abs(j-i)
 }
}

ans2 <- sqrt(cov)

0voto

Tiberia Puntos 121

No sé si se puede considerar una respuesta formal, pero desde el punto de vista de la simulación, el error estándar de un estimador de medias se define como est(sd(medias))/sqrt(N), lo que daría:

> .9459876/sqrt(100)
[1] 0.09459876

No estoy seguro de por qué estabas usando sd(means) y llamándolo error estándar (si he entendido bien el comentario del código). Tendría más sentido llamar al valor SE(u) en lugar de Var(u) en la derivación también, ya que creo que es lo que pretendías?

La varianza de un proceso AR(1) es la varianza del término de error dividida por (1-phi^2), donde tenías N*(1-phi) (la N no estaría ahí si fuera sólo varianza).

.

Tendré que profundizar para tratar de encontrar una derivación de eso.

varianzaAR1 derivación simple de AR(1) en la página 36

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X