Detectar alterações em séries temporais


11

Me deparei com uma imagem de um protótipo de aplicativo que encontra alterações significativas ("tendências" - não picos / outliers) nos dados de tráfego:

texto alternativo

Quero escrever um programa (Java, opcionalmente R) capaz de fazer o mesmo - mas como minhas habilidades estatísticas estão um pouco enferrujadas, preciso aprofundar-me neste tópico novamente.

Que abordagem / algoritmo devo usar / pesquisar, portanto?



Sim, e as respostas também serão as mesmas.
whuber

Respostas:


4

Existem várias maneiras pelas quais "uma quebra estrutural" pode ocorrer.

Se houver uma mudança no Intercept ou uma mudança na Tendência "na última parte da série temporal", seria mais adequado realizar a Detecção de Intervenção (NB, essa é a identificação empírica do impacto significativo de uma Variável Determinística não especificada, como como uma mudança de nível ou uma mudança de tendência ou o início de um pulso sazonal). A Detecção de Intervenção é um pré-cursor para Modelagem de Intervenção, onde uma variável sugerida é incluída no modelo. Você pode encontrar informações na web pesquisando "DETECÇÃO AUTOMÁTICA DE INTERVENÇÃO". Alguns autores usam o termo "DETECÇÃO DE OUTLIER", mas, como muita linguagem estatística, isso pode ser confuso / impreciso. As intervenções detectadas podem ser uma das seguintes (detectar uma alteração significativa na média dos resíduos);

uma mudança de nível de 1 período (isto é, um pulso), uma mudança contínua contígua no nível (isto é, uma mudança no Intercept), um pulso sistemático (isto é, um pulso sazonal), uma mudança de tendência (isto é, 1,2,3,4,5, 7,9,11,13,15 .....) Esses procedimentos são facilmente programados no R / SAS / Matlab e rotineiramente disponíveis em vários pacotes de séries temporais disponíveis comercialmente. No entanto, existem muitas armadilhas que você precisa ter cuidado. como detectar primeiro a estrutura estocástica ou detectar a intervenção na série original. É como o problema do ovo e da galinha. Os primeiros trabalhos nesta área foram limitados aos do tipo 1 e, como tal, provavelmente serão insuficientes para as suas necessidades, pois seus exemplos ilustram NÍVEIS DE MUDANÇAS.

Há muito material na web e até um programa gratuito em http://www.autobox.com/30day.exe que permite usar seus próprios dados por 30 dias. Você pode aprender muito "simplesmente assistindo", como o Yogi disse uma vez, e replicar seus resultados.

As referências da Web para as equações exatas a serem usadas podem ser encontradas a partir da página 134 em http://www.autobox.com/pdfs/autoboxusersguide.pdf . Eu sou um dos autores da AUTOBOX.


@stefanos: Você pode me dizer o nome do aplicativo, pois estou sempre interessado em buscar soluções de software que lidem com esse problema. Você pode me enviar um email com minhas informações de contato.
IrishStat

1

Experimente o pacote cpm ou changepoint em R. É grátis. Pesquise também o modelo de ponto de mudança ou a detecção sequencial de mudanças.


3
Bem-vindo ao site, @Cherese. No momento, isso é mais um comentário do que uma resposta. Você se importaria de elaborar um pouco isso?
gung - Restabelece Monica
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.