Testando a estabilidade em uma série temporal

9

Existe um método padrão (ou melhor) para testar quando uma determinada série temporal se estabilizou?


Alguma motivação

I têm um sistema dinâmico estocástico que gera um valor em cada passo de tempo t N . Este sistema tem algum comportamento transitório até o passo t e depois se estabiliza em torno de algum valor médio x com algum erro. Nenhum de t , x ou o erro são conhecidos por mim. Estou disposto a fazer algumas suposições (como erro gaussiano em torno de x xttNtxtxxpor exemplo), mas quanto menos premissas a priori eu precisar, melhor. A única coisa que tenho certeza é que existe apenas um ponto estável para o qual o sistema converge e as flutuações em torno do ponto estável são muito menores que as flutuações durante o período transitório. O processo também é monotônico, posso assumir que começa perto de 0 e sobe em direção a x (talvez superando um pouco antes de estabilizar em torno de x ).x00xx

As dados estarão vindo de uma simulação, e eu preciso do teste de estabilidade como condição de parada para minha simulação (desde que eu estou interessado apenas no período transitório).xt

Pergunta precisa

Dado apenas acesso ao valor do tempo para algum T finito , existe um método para dizer com razoável precisão que o sistema dinâmico estocástico se estabilizou em algum ponto x ? Pontos de bônus se o teste também retornar x , t e o erro em torno de x . No entanto, isso não é essencial, pois existem maneiras simples de descobrir isso após o término da simulação.x0...xTTxxtx


Abordagem ingênua

A abordagem ingênua que surge pela primeira vez em minha mente (que eu vi usada como condições de vitória para algumas redes neurais, por exemplo) é escolher os parâmetros e E , se, nos últimos timestados T, não houver dois pontos x e x ' Tal que x ' - x > E então concluímos que estabilizamos. Essa abordagem é fácil, mas não muito rigorosa. Isso também me força a adivinhar quais devem ser os bons valores de T e E.TETxxxx>ETE

Parece que deveria haver uma abordagem melhor que analise algumas etapas no passado (ou talvez desconte dados antigos), calcule o erro padrão desses dados e teste se há outros números de etapas (ou outra esquema de descontos) as séries temporais não estiveram fora desse intervalo de erros. Incluí uma estratégia um pouco menos ingênua, mas ainda assim simples, como resposta .


Qualquer ajuda ou referência a técnicas padrão são apreciadas.

Notas

Também cruzei esta questão como está no MetaOptimize e em uma descrição com mais simulação para a Ciência da Computação .

Artem Kaznatcheev
fonte
Você encontrou uma solução clara? Estou interessado na mesma pergunta, mas todas as respostas não são convincentes.
Herman Toothrot
11
@ user4050 infelizmente não tenho. Eu acho que é realmente uma questão muito ampla e existem muitas técnicas que são melhores em alguns domínios e piores em outros.
Artem Kaznatcheev 02/12/19

Respostas:

5

Esta breve observação está longe de ser uma resposta completa, apenas algumas sugestões:

  • se você tiver dois períodos de tempo em que o comportamento é diferente, por diferente, quero dizer diferenças nos parâmetros do modelo (não relevantes nessa situação específica), média ou variação ou qualquer outra característica esperada do objeto de série temporal ( no seu caso ), você pode tentar qualquer método que calcule o tempo (intervalo) da alteração estrutural (ou epidêmica) .xt
  • Em R existe uma strucchange biblioteca para mudanças estruturais em modelos de regressão linear. Embora seja usado principalmente para testar e monitorar alterações nos parâmetros da regressão linear, algumas estatísticas podem ser usadas para alterações estruturais gerais em séries temporais.
Dmitrij Celov
fonte
A ausência de alterações fora do padrão / mudança de nível / tendência E a não contabilização da correlação serial de qualquer atraso nos resíduos do modelo são ingredientes que geralmente fazem com que os testes F padrão sejam mal aplicados, portanto, deve-se tomar cuidado (como você sugeriu!).
precisa saber é o seguinte
@IrishStat, como você pode ver no meu post, não estou sugerindo o uso do modelo de regressão linear, apenas observei que ele pode ter uma forma semelhante de estatística (CUMSUM ou qualquer outra coisa, já que o último é aplicado aos resíduos do modelo, que são claramente objetos de séries temporais) com (provavelmente) diferentes distribuições limitadas que respondem pela autocorrelação (testável) e que, se você quiser, pode fazer ajustes mais exteriores (também testáveis) antes de realizar mais testes. É apenas a única biblioteca R que conheço que trabalha com mudanças estruturais.
Dmitrij Celov
Estou começando a gostar desta resposta cada vez mais. Você tem uma sugestão para uma boa referência (de preferência um artigo de pesquisa recente) para alguns métodos comuns de estimativa do tempo de mudança estrutural?
Artem Kaznatcheev
4

Enquanto eu leio sua pergunta "e as flutuações em torno do ponto estável são muito menores do que as flutuações durante o período transitório", o que recebo é um pedido para detectar quando e se a variação dos erros mudou e se sim, quando! Se esse for o seu objetivo, considere revisar o trabalho ou R. Tsay "discrepantes, mudanças de nível e mudanças de variação nas séries temporais", Journal of Forecasting Vol 7, 1-20 (1988). Eu fiz um trabalho considerável nessa área e considero muito produtivo produzir uma boa análise. Outras abordagens (ols / análise de regressão linear, por exemplo) que assumem observações independentes e sem discrepâncias de pulso e / ou sem alterações de nível ou tendências de hora local e parâmetros invariantes no tempo são insuficientes na minha opinião.

IrishStat
fonte
1

Eu estava pensando mais sobre a questão e pensei em dar uma ligeira melhoria na abordagem ingênua como resposta, na esperança de que as pessoas saibam mais idéias na direção. Também nos permite eliminar a necessidade de saber o tamanho das flutuações.


(T,α)yt=xt+1xttt+1xy

TytαμαEμσEσ0(μEμ,μ+Eμ)ytσ1α


T

Artem Kaznatcheev
fonte
0

Você pode considerar testar para trás (com uma janela rolante) para a co-integração entre xe a média de longo prazo.

Quando você xestá se esquivando da média, espero que o teste Augmented Dickey Fuller em janela, ou qualquer teste de co-integração que você escolher, lhe diga que as duas séries são co-integradas. Depois de entrar no período de transição, onde as duas séries se afastam, espero que seu teste diga que as séries em janelas não são co-integradas.

O problema com esse esquema é que é mais difícil detectar a co-integração em uma janela menor. E uma janela muito grande, se incluir apenas um pequeno segmento do período de transição, informará que a série em janelas é co-integrada quando não deveria. E, como você pode imaginar, não há como saber antecipadamente qual pode ser o tamanho "certo" da janela.

Tudo o que posso dizer é que você terá que brincar com isso para ver se obtém resultados razoáveis.

bill_080
fonte
0

mt+1mt

Pete
fonte
0

Além da solução óbvia do Kalman Filter, você pode usar decomposições de wavelets e obter um espectro de potência localizado em tempo e frequência. Isso satisfaz o seu desejo sem suposições, mas infelizmente não fornece um teste formal de quando o sistema é instalado. Mas, para uma aplicação prática, tudo bem; basta olhar para o momento em que a energia nas altas frequências morre e quando os coeficientes das ondas de pai se estabilizam.

user2763361
fonte
isso não passa a bola, já que tenho que não testar quando o coeficiente de onda do pai estabiliza a série temporal? Ou existe um método padrão para essa série temporal específica? Qual é a solução óbvia de filtro Kalman?
Artem Kaznatcheev
@ArtemKaznatcheev Por que você não pode apenas olhar para um gráfico da série de coeficientes? Eu estava tentando oferecer uma solução que não seguisse o seu desejo de testar, mas, como compensação, não havia muitas suposições.
usar o seguinte comando