Autocorrelación de procesos AR (1) independientes concatenados

8

Dejar {Xt} ser un proceso estocástico formado mediante la concatenación de dibujos iid de un proceso AR (1), donde cada dibujo 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 primeras 10 observaciones; etcétera.

¿Cuál será el ACF de X -- llámalo ρ(l)-- ¿parece? Esperaba que fuera cero para los retrasos de longitud ya que, por supuesto, cada bloque de 10 observaciones es independiente de todos los demás bloques.ρ(l)l10

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()

función de autocorrelación de muestra para x

¿Por qué hay autocorrelaciones tan lejos de cero después del retraso 10?

Mi conjetura inicial fue que el quemado en arima.sim era demasiado corto, pero obtengo un patrón similar cuando configuro explícitamente, por ejemplo, burn_in = 500.

¿Qué me estoy perdiendo?


Editar : Tal vez el enfoque en concatenar 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 de vainilla simple ar1

Estoy sorprendido por los grandes bloques de autocorrelaciones significativamente distintas de cero en retrasos tan largos (donde el verdadero ACF es esencialmente cero). ¿Debo ser?ρ(l)=0.9l


Otra edición : quizás todo lo que está sucediendo aquí es que , el ACF estimado, en sí mismo está extremadamente autocorrelacionado. Por ejemplo, aquí está la distribución conjunta de , cuyos valores verdaderos son esencialmente cero ( ) :ρ^(ρ^(60 60),ρ^(61))0.960 600 0

## 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)

distribución muestral de acf estimado

Adrian
fuente
1
Espero que mi respuesta siga siendo útil para usted, más de 1.5 años después. Al menos me ayudó a mejorar mis habilidades de R.
Candamir

Respuestas:

3

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

Simplemente puede confirmar esto aumentando el kparámetro en su código. Vea estos ejemplos a continuación (he usado el mismo set.seed(987)para mantener la replicabilidad):

k = 1000 (su código original)

1000 simulaciones

k = 2000

2000 simulaciones

k = 5000

5000 simulaciones

k = 10000

10000 simulaciones

k = 50000

50000 simulaciones

Esta secuencia de imágenes nos dice dos cosas:

  • La autocorrelación después de las primeras 10 observaciones disminuye enormemente a medida que aumenta el número de iteraciones. De hecho, con un número suficientemente grande de iteraciones, elρ^(l) para cualquier l>10convergerá a cero. Esta es la base de mi declaración al principio: que la autocorrelación que observó fue simplemente ruido.
  • No obstante la observación antes mencionada 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 permanece constante en ρ^(l)=ρ(l)=0.9l, tal como sugeriría la construcción de su modelo.

Tenga en cuenta que me refiero a la autocorrelación observada comoρ^(l)y a la verdadera autocorrelación comoρ(l).

Candamir
fuente
1
La muestra ACF está autocorrelacionada, por lo que no es ruido blanco . Aparte de eso, estoy de acuerdo, es solo un problema de ruido / tamaño de la muestra.
Adrian
@ Adrian Tienes razón. Modifiqué mi respuesta en consecuencia.
Candamir
It also becomes less and less likely to "stray" outside a confidence band¿Estás seguro de que es verdad?
Adrian
1
Gracias por hacer agujeros en las partes débiles de mi respuesta. Tengo que admitir que la declaración solo se basó en la inspección visual. Investigué un poco más y descubrí que la banda de confianza se calcula como qnorm((1 + ci)/2)/sqrt(x$n.used), es decir,CreF(1-α/ /2)/ /norte(ver aquí ) Sin embargo, no he podido determinar la tasa de convergencia para la autocorrelación observada. Hice esta nueva pregunta para resolver el asunto, pero he eliminado este punto de esta respuesta mientras tanto.
Candamir
1
@Adrian Mi pregunta con respecto a la tasa de convergencia de la autocorrelación observada ha sido respondida. Resulta que su tasa de convergencia es la misma que la de la banda de confianza:1/ /norte. Mi afirmación original de que la autocorrelación observada se vuelve cada vez menos probable que se "extravíe" fuera de la banda de confianza es, por lo tanto, incorrecta. Dicho esto, el hecho de queρ^(l) converge a cero para cualquier l>10a medida que aumenta el número de simulaciones, aún resuelve su pregunta, incluso si estaba equivocado acerca de la tasa relativa de convergencia.
Candamir el