Detecção robusta de outlier em séries financeiras

16

Estou procurando algumas técnicas robustas para remover discrepâncias e erros (seja qual for a causa) dos dados financeiros das séries temporais (por exemplo, tickdata).

Os dados das séries temporais financeiras de tick-by-tick são muito confusos. Ele contém grandes lacunas (de tempo) quando a bolsa é fechada e faz grandes saltos quando a bolsa é aberta novamente. Quando a troca é aberta, todos os tipos de fatores introduzem negociações nos níveis de preços incorretos (eles não ocorreram) e / ou não são representativos do mercado (um aumento por causa de uma oferta incorreta ou preço de venda incorreto, por exemplo). Este artigo de tickdata.com (PDF) faz um bom trabalho ao descrever o problema, mas oferece poucas soluções concretas.

A maioria dos artigos que posso encontrar on-line que mencionam esse problema o ignoram (os dados dos ticks são assumidos como filtrados) ou incluem a filtragem como parte de um grande modelo comercial que oculta qualquer etapa útil da filtragem.

Alguém está ciente de um trabalho mais aprofundado nesta área?

Atualização: essas perguntas parecem semelhantes na superfície, mas:

  • As séries temporais financeiras são (pelo menos no nível do tick) não periódicas.
  • O efeito de abertura é um grande problema, porque você não pode simplesmente usar os dados do último dia como inicialização, mesmo que realmente queira (porque, caso contrário, não terá nada). Eventos externos podem fazer com que a abertura do novo dia seja drasticamente diferente no nível absoluto e na volatilidade do dia anterior.
  • Frequência extremamente irregular de dados recebidos. Perto da abertura e do fechamento do dia, a quantidade de pontos de dados / segundo pode ser 10 vezes maior que a média durante o dia. A outra pergunta lida com dados amostrados regularmente.
  • Os "discrepantes" nos dados financeiros exibem alguns padrões específicos que podem ser detectados com técnicas específicas não aplicáveis ​​em outros domínios e estou procurando, em parte, essas técnicas específicas.
  • Em casos mais extremos (por exemplo, falha do flash), os valores discrepantes podem atingir mais de 75% dos dados em intervalos mais longos (> 10 minutos). Além disso, a (alta) frequência de dados recebidos contém algumas informações sobre o aspecto externo da situação.
jilles de wit
fonte
1
Eu não acho que isso seja uma duplicata por causa da natureza dos dados. O problema discutido na outra questão dizia respeito a séries temporais observadas regularmente com discrepâncias ocasionais (pelo menos foi assim que eu a interpretei). A natureza dos dados tick-by-tick levaria a diferentes soluções devido ao efeito de abertura da bolsa.
Rob Hyndman
possível duplicata do algoritmo simples para detecção on-line de uma série temporal genérica. Esta questão é proposta para ser fechada como uma duplicata. Você poderia nos informar no meta thread se e como seu contexto é diferente da pergunta que eu vinculei?
@Rob Mas o efeito de abertura de troca só determina quando você precisa executar o algoritmo. A questão fundamental permanece a mesma. Mesmo nos dados da rede, você tem o 'efeito de abertura do escritório', onde o tráfego atinge o pico assim que o escritório é aberto. No mínimo, o OP deve vincular-se a essa pergunta, digitalizar as respostas e explicar por que as soluções não funcionam para que uma resposta adequada possa ser postada para essa pergunta.
1
Eu concordo com o @Rob. Esse tipo de dados pode representar desafios únicos, portanto não é uma duplicata.
Shane
1
Eu acho que pertence aqui. A questão é sobre a análise de séries temporais com espaçamento irregular e muito barulhento. Você já deu uma olhada em "Uma introdução ao financiamento de alta frequência", de Dacorogna, Olsen e muitos outros? Ou os trabalhos dos mesmos autores?
PeterR 04/08/10

Respostas:

14

O problema é definitivamente difícil .

Regras mecânicos como os +/- N1 vezes desvios padrão, ou + / N2 vezes MAD, ou +/- N3 IQR ou ... vai falhar porque há sempre algumas séries que são diferentes, como por exemplo:

  • fixações como a taxa interbancária podem ser constantes por algum tempo e, em seguida, pular de repente
  • da mesma forma para, por exemplo, certas bolsas de valores provenientes de uma peg
  • certo instrumento é implícito se espalha; estes podem ser próximos de zero por períodos e, de repente, um coletor de salto

Estive lá, fiz isso, ... em um trabalho anterior. Você pode tentar agrupar cada série usando navios de relações de arbitragem ( por exemplo, supondo que USD / EUR e EUR / JPY sejam presumidamente bons, você pode calcular faixas em torno do que USD / JPY deve ser; da mesma forma para derivativos de um subjacente etc pp.

Os fornecedores de dados comerciais expandem algum esforço nisso, e aqueles que são clientes deles sabem ... isso ainda não exclui erros.

Dirk Eddelbuettel
fonte
+1 Sim, nada é perfeito. Tickdata.com (cujo artigo é mencionado) também inclui valores discrepantes e também retira muitos dados bons (quando comparado com outra fonte). Os dados de Olsen estão perto de serem terríveis, e geralmente sou apenas indicativo. Há uma razão pela qual os bancos pagam grandes equipes de operações para trabalhar nisso.
Shane
Gosto da sua ideia sobre o uso de relações de arbitragem conhecidas. você já tentou isso no seu trabalho anterior?
precisa saber é o seguinte
Não, nunca formalizamos isso completamente. Mas acho que usamos alguns simples (por exemplo, ETF vs índice subjacente etc.). Já faz alguns anos.
Dirk Eddelbuettel 5/08
8

Vou adicionar algumas referências em papel quando voltar ao computador, mas aqui estão algumas sugestões simples:

Definitivamente comece trabalhando com retornos. Isso é fundamental para lidar com o espaçamento irregular, onde você pode obter grandes diferenças de preço (principalmente nos fins de semana). Em seguida, você pode aplicar um filtro simples para remover retornos bem fora da norma (por exemplo, vs um número alto de desvios padrão). Os retornos serão ajustados para o novo nível absoluto, de modo que grandes mudanças reais resultarão na perda de apenas um tick. Sugiro o uso de um filtro de duas passagens com retornos obtidos de 1 e n etapas para lidar com grupos de outliers.

Edit 1: Quanto ao uso de preços em vez de retornos: os preços dos ativos tendem a não ser estacionários; portanto, a IMO pode apresentar alguns desafios adicionais. Para explicar os efeitos da lei da irregularidade e da energia, aconselhamos algum tipo de ajuste se você quiser incluí-los em seu filtro. Você pode dimensionar as alterações de preço pelo intervalo de tempo ou pela volatilidade. Você pode consultar a literatura de "volatilidade realizada" para alguma discussão sobre isso. Também discutido em Dacorogna et. al.

Para explicar as mudanças na volatilidade, você pode tentar basear seu cálculo de volatilidade na mesma hora do dia na semana passada (usando a sazonalidade).

Shane
fonte
Ao usar apenas os retornos, você se torna muito vulnerável às escadas (isto é, uma sequência de preços que sobe ou desce da norma, em que cada retorno individual é aceitável, mas como grupo representa um valor externo). Idealmente, você usaria o retorno e o nível absoluto.
precisa saber é o seguinte
5

Alterei (com algum atraso) minha resposta para refletir sua preocupação com a falta de 'adaptabilidade' da louca / mediana incondicional.

(μ^t,σ^t)

xtμ^tσ^t

Você pode encontrar mais informações (e um link para um pacote R) neste documento :

Boudt, K. e Croux, C. (2010). Estimativa M robusta de modelos GARCH multivariados.

user603
fonte
Eu tentei algo assim, mas esse método não é muito bom para lidar com mudanças bruscas na volatilidade. Isso leva a subfiltragem em períodos silenciosos e a superfiltragem durante períodos mais ocupados.
precisa saber é o seguinte
Eu não entendo isso "Isso leva à subfiltração em períodos silenciosos e à superfiltragem durante os horários de maior movimento" importa explicar?
user603
Em períodos calmos, a volatilidade dos preços tende a ser menor, portanto, os preços mais próximos da média podem ser considerados extremos. No entanto, como você usa o MAD por (presumivelmente) um dia inteiro de negociação (ou até mais), esses valores discrepantes ficam a menos de 3 MAD da mediana e não serão filtrados. O inverso é verdadeiro para períodos ocupados com movimentos de preços mais altos (movimentos de preços aceitáveis ​​serão filtrados). Assim, o problema se reduz à estimativa adequada do MAD o tempo todo, e esse é o problema para começar.
Jilles de Wit