Detecção de Outlier em Séries Temporais: Como reduzir falsos positivos?


11

Estou tentando automatizar a detecção de outlier em séries temporais e usei uma modificação da solução proposta por Rob Hyndman aqui .

Digamos, eu avalio as visitas diárias a um site de vários países. Para alguns países onde as visitas diárias são de algumas centenas ou milhares, meu método parece estar funcionando razoavelmente.

No entanto, nos casos em que um país leva a apenas 1 ou 2 visitas por dia, os limites do algoritmo são muito estreitos (por exemplo, 1 ± 0,001) e, portanto, as 2 visitas são consideradas um desvio. Como eu pude detectar automaticamente tais casos e como eu os tratei para identificar discrepâncias? Eu não gostaria de definir um limite manual de, digamos, 100 visitas por dia.

Obrigado!


2
Uma maneira natural e simples de resolver seu problema - que é devido (pelo menos em parte) a uma variação altamente variável - é aplicar uma transformação estabilizadora de variação, como uma transformação Anscombe ou Freeman-Tukey , aos dados antes de procurar outliers.
whuber

Respostas:


3

Não espere muito por contagens pequenas e discretas. Passar de 1 para 2 visitas é um aumento de 100%, e passar de 0 para 1 visitas é um aumento infinito. Em níveis baixos, você pode estar lidando com modelos inflados a zero , e também pode ser muito barulhento lá em baixo.

Na minha experiência, contar dados com uma mistura de contagens grandes e pequenas como esta resulta em dois problemas com suas contagens pequenas: 1) eles são muito grosseiros para fazer muito com, 2) são gerados por processos diferentes. (Pense nos pequenos correios rurais versus os correios das grandes cidades). Portanto, você precisa pelo menos dividir sua modelagem em duas: faça o que está fazendo com sucesso para contagens maiores e faça algo diferente - mais grosseiro e aproximado - com contagens pequenas. Mas não espere muito das pequenas contagens.

A boa notícia é que as grandes contagens, por definição, incluem mais transações, portanto seu modelo melhor cobre mais dados, mesmo que não abranja a maioria dos sites.

(Eu digo que "modelagem" é geral, mas é claro que a detecção mais externa está assumindo um modelo específico e encontrando pontos altamente improváveis ​​com as suposições desse modelo.)


1

Cada valor de sua série temporal é uma amostra de uma distribuição de probabilidade. Você precisa primeiro descobrir qual é a distribuição de probabilidade e depois definir o que a palavra raro significa nessa distribuição.

Portanto, calcule o cdf empírico e o intervalo de confiança de 95%. Sempre que algo fora dessa região ocorreu, por definição, você sabe que deve ser um evento raro.


0

Uma coisa é detectar um Outlier em um nível específico de confiança e outra é colocar uma segunda especificação que restringiria ainda mais a aceitação do outlier. Uma vez me fizeram a seguinte pergunta "O AUTOBOX pode detectar uma mudança média de unidades xx em um nível de confiança pré-especificado". Essencialmente, o que era necessário era um teste duplo. O AUTOBOX é um software que eu ajudei a desenvolver e que pode ser econômico, pois nenhum software livre implementou esse teste duplo.

Obrigado Nick: Eu estava usando uma mudança de nível como um exemplo particular de um "outlier" ou, em geral, o impacto determinístico empiricamente identificado. Outras formas de "outliers" são Pulsos, Pulsos Sazonais e Tendências da Hora Local E combinações específicas, como uma mudança transitória para um novo nível. O ponto principal foi que podem existir duas hipóteses que refletem a significância estatística e a significância do mundo real. O cliente que originalmente trouxe esse problema à minha atenção estava interessado em ambos.


Um discrepante não precisa implicar uma mudança média ... De fato, a mudança gradual ou acelerada entre regimes com diferentes meios não precisa necessariamente implicar discrepâncias. Você sabe disso muito bem, mas o que eu acho que isso implica é que seria muito útil para outros elaborar sua resposta.
Nick Cox

Obrigado a ambos. Estou interessado no significado do mundo real. Depois de identificar um erro, considero seu significado com, digamos, a proporção de visitas em comparação com o total de visitas para obter seu significado final. Embora essa proporção seja realmente pequena nos casos de 2 visitas, uma vez que os valores esperados são 1 ± 0,001, a 'distância' do ponto real dos limites esperados é muito alta (por exemplo, 2 / 0,002 onde 0,002 é o 'iqr') . Portanto, a questão ganha grande importância no final. Alguma ideia?
Stergios 17/10

Eu sinalizaria que o uso prolongado de "outlier" aqui é muito mais amplo do que o senso generoso de algo extremo que é comum em muitas literaturas. Os leitores experientes saberão que o @IrishStat mantém sua forte análise de séries temporais.
Nick Cox

0

Você está tendo esse problema porque seus dados estão longe de uma distribuição normal. Se a distribuição for altamente assimétrica, com solavancos, corcéis ou caudas muito longas / curtas, você encontrará problemas. Uma boa idéia é aplicar uma transformação como Box Cox ou Yeo-Johnson antes de usar seu método. No seu exemplo, se você usar F (x) = log (1 + x), evita o problema de magnitude diferente e pode converter novamente usando: exp (z) -1

Existem vários procedimentos que você pode usar para encontrar automaticamente um bom lambda para a transformação Box-Cox. Pessoalmente, uso a mediana de todos os métodos da função boxcoxnc do pacote AID em R. Se seus dados não são estritamente positivos, você precisará adicionar 1 ou outro número positivo antes de usá-los.

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.