8 votos

Autocorrelación de procesos AR(1) independientes concatenados

Dejemos que {Xt} sea un proceso estocástico formado por la concatenación de extracciones iid de un proceso AR(1), donde cada extracción es un vector de longitud 10. En otras palabras, {X1,X2,,X10} son realizaciones de un proceso AR(1); {X11,X12,,X20} se extraen del mismo proceso, pero son independientes de las 10 primeras observaciones; etc.

¿Qué hará el ACF de X -- llámalo ρ(l) -- ¿parece? Estaba esperando ρ(l) sea cero para los rezagos de longitud l10 ya que, por supuesto, cada bloque de 10 observaciones es independiente de todos los demás bloques.

Sin embargo, cuando simulo datos, obtengo esto:

simulate_ar1 <- function(n, burn_in=NA) {
    return(as.vector(arima.sim(list(ar=0.9), n, n.start=burn_in)))
}

simulate_sequence_of_independent_ar1 <- function(k, n, burn_in=NA) {
    return(c(replicate(k, simulate_ar1(n, burn_in), simplify=FALSE), recursive=TRUE))
}

set.seed(987)
x <- simulate_sequence_of_independent_ar1(1000, 10)
png("concatenated_ar1.png")
acf(x, lag.max=100)  # Significant autocorrelations beyond lag 10 -- why?
dev.off()

sample autocorrelation function for x

¿Por qué hay autocorrelaciones tan alejadas de cero después del lag 10?

Mi suposición inicial era que el burn-in en arima.sim era demasiado corto, pero obtengo un patrón similar cuando establezco explícitamente, por ejemplo, burn_in=500.

¿Qué me falta?


Editar : Tal vez el enfoque en la concatenación de AR(1)s es una distracción - un ejemplo aún más simple es este:

set.seed(9123)
n_obs <- 10000
x <- arima.sim(model=list(ar=0.9), n_obs, n.start=500)
png("ar1.png")
acf(x, lag.max=100)
dev.off()

acf of plain vanilla ar1

Me sorprenden los grandes bloques de autocorrelaciones significativamente no nulas en rezagos tan largos (donde la verdadera ACF ρ(l)=0.9l es esencialmente cero). ¿Debería?


Otra edición : tal vez todo lo que está pasando aquí es que ρ^ el ACF estimado, está a su vez extremadamente autocorrelacionado. Por ejemplo, aquí está la distribución conjunta de (ρ^(60),ρ^(61)) cuyos valores reales son esencialmente cero ( 0.9600 ):

## Look at joint sampling distribution of (acf(60), acf(61)) estimated from AR(1)
get_estimated_acf <- function(lags, n_obs=10000) {
    stopifnot(all(lags >= 1) && all(lags <= 100))
    x <- arima.sim(model=list(ar=0.9), n_obs, n.start=500)
    return(acf(x, lag.max=100, plot=FALSE)$acf[lags + 1])
}
lags <- c(60, 61)
acf_replications <- t(replicate(1000, get_estimated_acf(lags)))
colnames(acf_replications) <- sprintf("acf_%s", lags)
colMeans(acf_replications)  # Essentially zero
plot(acf_replications)
abline(h=0, v=0, lty=2)

sampling distribution of estimated acf

1 votos

Espero que mi respuesta te siga siendo útil, más de año y medio después. Al menos a mí me ayudó a mejorar mis conocimientos de R.

3voto

Candamir Puntos 135

Resumen ejecutivo: Parece que está confundiendo el ruido con la verdadera autocorrelación debido al pequeño tamaño de la muestra.

Puede confirmarlo simplemente aumentando el k en su código. Vea estos ejemplos a continuación (he utilizado su mismo set.seed(987) para mantener la replicabilidad):

k=1000 (su código original)

1000 simulations

k=2000

2000 simulations

k=5000

5000 simulations

k=10000

10000 simulations

k=50000

50000 simulations

Esta secuencia de imágenes nos dice dos cosas:

  • La autocorrelación después de las 10 primeras observaciones disminuye considerablemente a medida que aumenta el número de iteraciones. En efecto, con un número de iteraciones suficientemente grande, la ρ^(l) para cualquier l>10 convergerá a cero. Esta es la base de mi afirmación al principio: que la autocorrelación que usted observó era simplemente ruido.
  • A pesar de la mencionada observación de que ρ^(l) converge a cero para cualquier l>10 a medida que aumenta el número de simulaciones, ρ^(l) para cualquier l10 en realidad se mantiene constante en ρ^(l)=ρ(l)=0.9l , tal y como sugiere la construcción de su modelo.

Tenga en cuenta que me refiero a la observado autocorrelación como ρ^(l) y al verdadero autocorrelación como ρ(l) .

1 votos

La muestra ACF está autocorrelacionada, por lo que no es blanco ruido. Aparte de eso, estoy de acuerdo, es sólo un problema de ruido / tamaño de la muestra.

0 votos

@Adrian Tienes razón. He modificado mi respuesta en consecuencia.

0 votos

It also becomes less and less likely to "stray" outside a confidence band -- ¿Estás seguro de que es verdad?

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