¿Un buen ejemplo donde una serie sin una raíz unitaria no es estacionaria?

18

He visto varias veces que las personas rechazan el nulo en una prueba aumentada de Dickey-Fuller , y luego afirman que muestra que su serie es estacionaria (desafortunadamente, no puedo mostrar las fuentes de estas afirmaciones, pero imagino que existen afirmaciones similares aquí y allá en uno u otro diario).

Sostengo que es un malentendido (que el rechazo del nulo de una raíz unitaria no es necesariamente lo mismo que tener una serie estacionaria, especialmente porque las formas alternativas de no estacionariedad rara vez se investigan o incluso se consideran cuando se realizan tales pruebas).

Lo que busco es:

a) un buen contraejemplo claro al reclamo (puedo imaginar un par en este momento, pero apuesto a que alguien que no sea yo tendrá algo mejor de lo que tengo en mente). Podría ser una descripción de una situación específica, tal vez con datos (simulados o reales; ambos tienen sus ventajas); o

b) un argumento convincente de por qué el rechazo en un Dickey-Fuller aumentado debería considerarse como un factor estacionario

(o incluso ambos (a) y (b) si te sientes inteligente)

Glen_b -Reinstate a Monica
fuente
3
Xn=(1)norte con probabilidad 1.
cardenal
@cardinal Bueno, eso ciertamente obtendría un rechazo por la prueba ADF (editar: sí, lo hace), y es claramente no estacionario (una raíz en el círculo unitario, pero no una raíz igual a 1 que detecta el ADF); entonces eso contaría.
Glen_b -Reinstale a Monica el
Tenga en cuenta que la prueba ADF tiene variantes donde se incluye la tendencia. Si se rechaza el valor nulo, la serie es estacionaria de tendencia, es decir, estacionaria si se elimina la tendencia, pero no estacionaria de todos modos.
mpiktas
+1. Glen_b, ¿contaría una tendencia lineal + ruido AR (1) estacionario como un contraejemplo?
ameba dice Reinstate Monica

Respuestas:

15

Aquí hay un ejemplo de una serie no estacionaria que ni siquiera una prueba de ruido blanco puede detectar (y mucho menos una prueba de tipo Dickey-Fuller):

esto no es ruido blanco

Sí, esto puede ser sorprendente, pero esto no es ruido blanco .

La mayoría de los ejemplos de contadores no estacionarios se basan en una violación de las dos primeras condiciones estacionarias: tendencias deterministas (media no constante) o series temporales de raíz unitaria / heteroscedastica (varianza no constante). Sin embargo, también puede tener procesos no estacionarios que tienen media constante y varianza, pero violan la tercera condición: la función de autocovarianza (ACVF) debe ser constante en el tiempo y una función desolamente.| s - t |Cov(Xs,Xt)El |s-tEl |

La serie de tiempo anterior es un ejemplo de una serie de este tipo, que tiene media cero, varianza unitaria, pero el ACVF depende del tiempo. Más precisamente, el proceso anterior es un proceso MA (1) localmente estacionario con parámetros tales que se convierte en ruido blanco espurio (ver Referencias a continuación): el parámetro del proceso MA cambia con el tiempoXt=εt+θ1εt-1

θ1(tu)=0,5-1tu,

donde es el tiempo normalizado. La razón por la que esto parece ruido blanco (aunque, por definición matemática, claramente no lo es), es que el ACVF variable en el tiempo se integra a cero con el tiempo. Dado que el ACVF de muestra converge al ACVF promedio, esto significa que la autocovarianza de muestra (y la autocorrelación (ACF)) convergerán en una función que parece ruido blanco. Entonces, incluso una prueba de Ljung-Box no podrá detectar esta no estacionariedad. El documento (descargo de responsabilidad: soy el autor) sobre Pruebas de ruido blanco contra alternativas localmente estacionarias propone una extensión de las pruebas de Box para hacer frente a dichos procesos localmente estacionarios.tu=t/ /T

Para obtener más código R y más detalles, consulte también esta publicación de blog .

Actualización después del comentario de mpiktas :

Es cierto que esto podría parecer un caso teóricamente interesante que no se ve en la práctica. Estoy de acuerdo en que es poco probable que vea un ruido blanco espurio en un conjunto de datos del mundo real directamente, pero lo verá en casi cualquier residuo de un ajuste de modelo estacionario. Sin entrar en demasiados detalles teóricos, imagine un modelo general variable en el tiempo con una función de covarianza variable en el tiempo . Si ajusta un modelo constante , esta estimación estará cerca del promedio de tiempo del modelo verdadero ; y, naturalmente, los residuos ahora estarán cerca de , que por construcción deθ(tu)γθ(k,tu)θ^θ(tu)θ(tu)-θ^θ^se integrará a cero (aproximadamente). Ver Goerg (2012) para más detalles.

Veamos un ejemplo

library(fracdiff)
library(data.table)

tree.ring <- ts(fread(file.path(data.path, "tree-rings.txt"))[, V1])
layout(matrix(1:4, ncol = 2))
plot(tree.ring)
acf(tree.ring)
mod.arfima <- fracdiff(tree.ring)
mod.arfima$d


## [1] 0.236507

Entonces ruido fraccional con el parámetro (dado que creemos que todo está bien y tenemos un modelo estacionario). Verifiquemos los residuos: d <0,5re^=0.23re^<0,5

arfima.res <- diffseries(tree.ring, mod.arfima$d)
plot(arfima.res)
acf(arfima.res)

series de tiempo y diagrama acf

Se ve bien, ¿verdad? Bueno, el problema es que los residuos son ruido blanco espurio . ¿Cómo puedo saber? Primero puedo probarlo

Box.test(arfima.res, type = "Ljung-Box")
## 
##  Box-Ljung test
## 
## data:  arfima.res
## X-squared = 1.8757, df = 1, p-value = 0.1708

Box.test.ls(arfima.res, K = 4, type = "Ljung-Box")
## 
##  LS Ljung-Box test; Number of windows = 4; non-overlapping window
##  size = 497
## 
## data:  arfima.res
## X-squared = 39.361, df = 4, p-value = 5.867e-08

y segundo, sabemos por la literatura que los datos del anillo de los árboles son, de hecho, ruido fraccionado localmente estacionario: ver Goerg (2012) y Ferreira, Olea y Palma (2013) .

Esto muestra que mi, ciertamente, un ejemplo teórico, en realidad está ocurriendo en la mayoría de los ejemplos del mundo real.

Georg M. Goerg
fuente
+1, muy buen ejemplo! Aunque estoy interesado, ¿hay ejemplos reales de tales series?
mpiktas
@mpiktas Agregué una actualización a la publicación que debería responder a su pregunta.
Georg M. Goerg
γ1(tu)=θ(tu)σ(tu)σ(tu-1/ /T)θ(tu)γ^10 01θ(tu)retu=0 00 01θ(tu)σ2(tu)retu=0 0σ(tu)θ(tu)εt
Su ejemplo dado dice que cuando tenemos un modelo que varía en el tiempo, el ajuste del modelo que no varía en el tiempo conduciría a una inferencia incorrecta. Pero esto está lejos de decir que cada serie en tiempo real se puede modelar con un modelo que varía en el tiempo. Por otro lado, su prueba se puede aplicar para probar la presencia de variación en el tiempo. Gracias de nuevo por una idea interesante.
mpiktas
σ(tu)20,5T
7

Ejemplo 1

Se sabe que los procesos de raíz unitaria con un componente MA negativo fuerte conducen a pruebas de ADF con un tamaño empírico muy superior al nominal (por ejemplo, Schwert, JBES 1989 ).

Yt=Yt-1+ϵt+θϵt-1,
θ-1

T(ρ^-1)

library(urca)
reps <- 1000
n <- 100
rejections <- matrix(NA,nrow=reps)

for (i in 1:reps){
  y <- cumsum(arima.sim(n = n, list(ma = -0.98)))
  rejections[i] <- (summary(ur.df(y, type = "drift", selectlags="Fixed",lags=12*(n/100)^.25))@teststat[1] < -2.89)
}
mean(rejections)

Ejemplo 2

Yt

Dependiendo del tipo de cambio de varianza, la prueba ADF aún se rechazará con frecuencia. En mi ejemplo a continuación, tenemos una ruptura de varianza hacia abajo, lo que hace que la prueba "crea" que la serie converge, lo que lleva a un rechazo del nulo de una raíz unitaria.

library(urca)
reps <- 1000
n <- 100
rejections <- matrix(NA,nrow=reps)

for (i in 1:reps){
  u_1 <- rnorm(n/2,sd=5)
  u_2 <- rnorm(n/2,sd=1)
  u <- c(u_1,u_2)
  y <- arima.sim(n=n,list(ar = 0.8),innov=u)
  rejections[i] <- (summary(ur.df(y, type = "drift"))@teststat[1] < -2.89)      
}
mean(rejections)

(Como comentario aparte, la prueba ADF "pierde" su distribución nula asintótica fundamental en presencia de heterocedasticidad incondicional).

Christoph Hanck
fuente
@Glen_b, eso (espero) podría ser una respuesta a su primer párrafo, pero no al título de su pregunta, ¿hay alguna discrepancia o falta de comprensión de mi parte?
Christoph Hanck
"Eso" = Ejemplo 1
Christoph Hanck
Depende de qué "unidad raíz" se defina. Originalmente lo aprendí como "raíz en el círculo unitario" (una raíz del módulo 1) pero ahora parece ser (y en el contexto de la prueba ADF se relaciona) una raíz del polinomio característico realmente igual a 1 . Incluso si tengo el sentido equivocado en el título, su respuesta responde a la pregunta prevista, así que piense que está bien.
Glen_b -Reinstale a Monica el
Probablemente mi punto no esté claramente redactado: en el título busca ejemplos de series "sin raíz unitaria", mientras que el primer párrafo (para mí) parece buscar ejemplos en los que rechazar es incorrecto. Mi primer ejemplo es uno para el último caso, en el que es probable que ADF rechace, aunque el proceso tiene una raíz unitaria.
Christoph Hanck
Ah, lo siento, no estaba pensando en eso correctamente. Sí, estrictamente no está de acuerdo con ninguna de las interpretaciones del título, pero aún así responde a la pregunta más amplia del cuerpo. (Los títulos necesariamente tienen menos matices, por lo que esto no es un problema.) ... Creo que es una respuesta muy interesante, y si algo sirve a mi propósito real mejor de lo que pide el título.
Glen_b -Reinstala a Monica el
7

La prueba de raíz unitaria es notoriamente difícil. Por lo general, usar una prueba no es suficiente y debe tener mucho cuidado con los supuestos exactos que usa la prueba.

La forma en que se construye el ADF lo hace vulnerable a una serie que son tendencias simples no lineales con ruido blanco agregado. Aquí hay un ejemplo:

library(dplyr)
library(tseries)
set.seed(1000)
oo <- 1:1000  %>% lapply(function(n)adf.test(exp(seq(0, 2, by = 0.01)) + rnorm(201)))
pp <- oo %>% sapply("[[","p.value")

> sum(pp < 0.05)
[1] 680

Aquí tenemos la tendencia exponencial y vemos que el ADF funciona bastante mal. Acepta el nulo de raíz unitaria el 30% del tiempo y lo rechaza el 70% del tiempo.

Por lo general, el resultado de cualquier análisis no es afirmar que la serie es estacionaria o no. Si los métodos utilizados en el análisis requieren estacionariedad, la suposición errónea de que la serie es estacionaria cuando en realidad no lo es, generalmente se manifiesta de una forma u otra. Así que personalmente miro todo el análisis, no solo la parte de prueba de raíz unitaria. Por ejemplo, OLS y NLS funcionan bien para datos no estacionarios, donde la no estacionariedad está en la media, es decir, la tendencia. Entonces, si alguien afirma erróneamente que la serie es estacionaria y aplica OLS / NLS, esta afirmación podría no ser relevante.

mpiktas
fuente
1
pag>0,05
Ah sí, confundí los signos. Arreglé la respuesta en consecuencia. ¡Gracias por notarlo!
mpiktas
¿Por qué no lo usaste sapply(oo, "[[","p.value")?
germcd
Bueno, lo usé, solo con sintaxis de tubería. Me gustan las pipas :)
mpiktas
1
Me gusta dplyr también. Para este código no es necesario, cargar magrittr es suficiente.
mpiktas