Aqui está um exemplo de uma série não estacionária que nem mesmo um teste de ruído branco pode detectar (muito menos um teste do tipo Dickey-Fuller):
Sim, isso pode ser surpreendente, mas isso não é ruído branco .
A maioria dos contra-exemplos não estacionários se baseia na violação das duas primeiras condições estacionárias: tendências determinísticas (média não constante) ou raiz unitária / série temporal heteroscedástica (variação não constante). No entanto, você também pode ter processos não estacionários com média e variação constantes, mas eles violam a terceira condição: a função de autocovariância (ACVF) deve ser constante ao longo do tempo e uma função desó.| s - t |c o v ( xs, xt)| s-t |
A série temporal acima é um exemplo dessa série, que tem média zero, variação de unidade, mas o ACVF depende do tempo. Mais precisamente, o processo acima é um processo MA (1) localmente estacionário com parâmetros que se tornam ruídos brancos espúrios (consulte as referências abaixo): o parâmetro do processo MA Mudanças ao longo do tempoxt= εt+ θ1εt - 1
θ1( U ) = 0,5 - 1 ⋅ u ,
onde é o tempo normalizado. A razão pela qual isso se parece com ruído branco (embora, por definição matemática, claramente não seja), é que o tempo que varia no ACVF se integra a zero ao longo do tempo. Como o ACVF de amostra converge para o ACVF médio, isso significa que a autocovariância da amostra (e a autocorrelação (ACF)) convergirão para uma função que se parece com ruído branco. Assim, mesmo um teste de Ljung-Box não será capaz de detectar essa não estacionariedade. O artigo (exoneração de responsabilidade: eu sou o autor) sobre Teste de ruído branco contra alternativas localmente estacionárias propõe uma extensão dos testes Box para lidar com esses processos estacionários localmente.u = t / T
Para obter mais código R e mais detalhes, consulte também esta postagem do blog .
Atualizar após o comentário mpiktas :
É verdade que isso pode parecer um caso teoricamente interessante que não é visto na prática. Concordo que é improvável ver diretamente esse ruído branco espúrio em um conjunto de dados do mundo real, mas você verá isso em quase todos os resíduos de um ajuste de modelo estacionário. Sem entrar em muitos detalhes teóricos, imagine um modelo geral variável no tempo
com uma função de covariância variável no tempo . Se você ajustar um modelo constante , essa estimativa será próxima da média de tempo do modelo verdadeiro ; e, naturalmente, os resíduos agora estarão próximos de , que pela construção dey θ ( k , u ) θ θ ( u ) θ ( u ) - θ θθ ( u )γθ( k , u )θˆθ ( u )θ ( u ) - θˆθˆserá integrado a zero (aproximadamente). Veja Goerg (2012) para detalhes.
Vejamos um exemplo
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
Então ajustamos o ruído fracionário com o parâmetro (uma vez que achamos que está tudo bem e temos um modelo estacionário). Vamos verificar os resíduos: d <0,5dˆ= 0,23dˆ< 0,5
arfima.res <- diffseries(tree.ring, mod.arfima$d)
plot(arfima.res)
acf(arfima.res)
Parece bom, certo? Bem, a questão é que os resíduos são ruídos brancos espúrios . Como eu sei? Primeiro, eu posso testar
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
e segundo, sabemos na literatura que os dados do anel das árvores são, de fato, ruído fracionário localmente estacionário: ver Goerg (2012) e Ferreira, Olea e Palma (2013) .
Isso mostra que meu exemplo - reconhecidamente teórico - está realmente ocorrendo na maioria dos exemplos do mundo real.