Detección de valores atípicos robustos en series financieras

16

Estoy buscando algunas técnicas robustas para eliminar los valores atípicos y los errores (cualquiera sea la causa) de los datos financieros de series temporales (es decir, tickdata).

Los datos de series de tiempo financieras tick-by-tick son muy desordenados. Contiene grandes brechas (de tiempo) cuando el intercambio está cerrado, y hace grandes saltos cuando el intercambio se abre nuevamente. Cuando el intercambio está abierto, todo tipo de factores introducen transacciones a niveles de precios que son incorrectos (no ocurrieron) y / o no son representativos del mercado (un aumento debido a un precio de oferta o demanda ingresado incorrectamente, por ejemplo). Este documento de tickdata.com (PDF) hace un buen trabajo al delinear el problema, pero ofrece pocas soluciones concretas.

La mayoría de los documentos que puedo encontrar en línea que mencionan este problema lo ignoran (se supone que los tickdata están filtrados) o incluyen el filtrado como parte de algún modelo comercial enorme que oculta cualquier paso útil de filtrado.

¿Alguien sabe de un trabajo más profundo en esta área?

Actualización: esta pregunta parece similar en la superficie pero:

  • Las series de tiempo financieras son (al menos a nivel de tick) no periódicas.
  • El efecto de apertura es un gran problema porque no puede simplemente usar los datos del último día como inicialización aunque realmente lo desee (porque de lo contrario no tiene nada). Los eventos externos pueden causar que la apertura del nuevo día difiera dramáticamente tanto en nivel absoluto como en volatilidad del día anterior.
  • Frecuencia extremadamente irregular de datos entrantes. Cerca de la apertura y cierre del día, la cantidad de puntos de datos / segundo puede ser 10 veces mayor que el promedio durante el día. La otra pregunta trata con datos muestreados regularmente.
  • Los "valores atípicos" en los datos financieros exhiben algunos patrones específicos que podrían detectarse con técnicas específicas no aplicables en otros dominios y, en parte, estoy buscando esas técnicas específicas.
  • En casos más extremos (p. Ej., El bloqueo del flash), los valores atípicos pueden representar más del 75% de los datos en intervalos más largos (> 10 minutos). Además, la frecuencia (alta) de datos entrantes contiene información sobre el aspecto atípico de la situación.
jilles de wit
fuente
1
No creo que esto sea un duplicado debido a la naturaleza de los datos. El problema discutido en la otra pregunta se refería a series temporales observadas regularmente con valores atípicos ocasionales (al menos así lo interpreté). La naturaleza de los datos tick-by-tick conduciría a diferentes soluciones debido al efecto de apertura del intercambio.
Rob Hyndman el
posible duplicado del algoritmo simple para la detección de valores atípicos en línea de una serie temporal genérica Se propone cerrar esta pregunta como un duplicado. ¿Podría decirnos en el hilo meta si su contexto es diferente de la pregunta que he vinculado?
@Rob Pero el efecto de apertura de intercambio solo determina cuándo debe ejecutar el algoritmo. La cuestión fundamental sigue siendo la misma. Incluso en los datos de red, tiene el 'efecto de apertura de la oficina', donde el tráfico alcanza su punto máximo tan pronto como se abre una oficina. Como mínimo, el OP debe vincularse a esa pregunta, analizar las respuestas allí y explicar por qué las soluciones allí no funcionan para que se pueda publicar una respuesta adecuada para esta pregunta.
1
Estoy de acuerdo con @Rob. Este tipo de datos puede presentar desafíos únicos, por lo que no es un duplicado.
Shane
1
Creo que pertenece aquí. La pregunta es sobre el análisis de series temporales muy ruidosas y espaciadas irregularmente. ¿Has echado un vistazo a "Una introducción a las finanzas de alta frecuencia" de Dacorogna, Olsen y muchos otros? ¿O los artículos de los mismos autores?
PeterR

Respuestas:

14

El problema definitivamente es difícil .

Reglas mecánicas como el +/- desviaciones estándar N1 veces, o + / N2 veces MAD, o +/- N3 IQR o ... se fallan porque siempre hay algunas series que son diferentes como por ejemplo:

  • Las fijaciones como la tasa interbancaria pueden ser constantes durante algún tiempo y luego saltar de repente
  • de manera similar para, por ejemplo ciertos intercambios de divisas que salen de un punto
  • ciertos instrumentos son implícitamente spreads; estos pueden estar cerca de cero por períodos y de repente una variedad de saltos

He estado allí, hecho eso ... en un trabajo anterior. Podría intentar poner entre paréntesis cada serie utilizando las relaciones de arbitraje ( por ejemplo, suponiendo que USD / EUR y EUR / JPY se presuman bien, puede calcular bandas alrededor de lo que debería ser USD / JPY; del mismo modo para derivados de un subyacente, etc. pp.

Los proveedores de datos comerciales amplían algo de esfuerzo en esto, y aquellos de uso que son clientes de ellos lo saben ... todavía no excluye los errores.

Dirk Eddelbuettel
fuente
+1 sí, nada es perfecto. Tickdata.com (cuyo artículo se menciona) también incluye valores atípicos y también eliminan demasiados datos buenos (en comparación con otra fuente). Los datos de Olsen están cerca de ser terribles, y generalmente solo son indicativos. Hay una razón por la que los bancos pagan grandes equipos de operaciones para trabajar en esto.
Shane
Me gusta su idea sobre el uso de relaciones de arbitraje conocidas. ¿Has probado esto en tu trabajo anterior?
jilles de wit
No, nunca formalizamos eso por completo. Pero creo que usamos algunos simples (es decir, ETF vs índice subyacente, etc.). Sin embargo, han pasado algunos años.
Dirk Eddelbuettel
8

Agregaré algunas referencias en papel cuando vuelva a la computadora, pero aquí hay algunas sugerencias simples:

Definitivamente comience trabajando con devoluciones. Esto es crítico para lidiar con el espaciado irregular donde, naturalmente, puede obtener grandes diferencias de precios (especialmente alrededor de los fines de semana). Luego, puede aplicar un filtro simple para eliminar los retornos fuera de la norma (por ejemplo, frente a un gran número de desviaciones estándar). Los retornos se ajustarán al nuevo nivel absoluto, por lo que grandes cambios reales resultarán en la pérdida de solo un tic. Sugiero usar un filtro de dos pasos con retornos tomados de 1 paso yn pasos para tratar con grupos de valores atípicos.

Editar 1: Respecto al uso de precios en lugar de retornos: los precios de los activos tienden a no ser estacionarios, por lo que la OMI puede plantear algunos desafíos adicionales. Para tener en cuenta las irregularidades y los efectos de la ley de potencia, recomendaría algún tipo de ajuste si desea incluirlos en su filtro. Puede escalar los cambios de precio por intervalo de tiempo o por volatilidad. Puede consultar la literatura sobre "volatilidad realizada" para una discusión sobre esto. También discutido en Dacorogna et. Alabama.

Para tener en cuenta los cambios en la volatilidad, puede intentar basar su cálculo de volatilidad desde la misma hora del día durante la semana pasada (utilizando la estacionalidad).

Shane
fuente
Al usar solo los retornos, se vuelve muy vulnerable a las escalas (es decir, una secuencia de precios que sube o baja de la norma, donde cada retorno individual es aceptable, pero como grupo representan un valor atípico). Lo ideal sería utilizar tanto el retorno como el nivel absoluto.
jilles de wit
5

He cambiado (con cierta demora) mi respuesta para reflejar su preocupación por la falta de "adaptabilidad" de la locura / mediana incondicional.

(μ^t,σ^t)

Xt-μ^tσ^t

Puede encontrar más información (y un enlace a un paquete R) en este documento :

Boudt, K. y Croux, C. (2010). Estimación M robusta de modelos GARCH multivariados.

usuario603
fuente
He intentado algo como esto, pero este método no es muy bueno para lidiar con cambios abruptos en la volatilidad. Esto conduce a un filtrado insuficiente en períodos tranquilos y a un filtrado excesivo durante los momentos más ocupados.
jilles de wit
No entiendo esto "¿Esto explica que no se filtre demasiado en períodos tranquilos y se filtre demasiado en momentos más ocupados"?
user603
En períodos tranquilos, la volatilidad de los precios tiende a ser más baja, por lo que los precios más cercanos a la media pueden considerarse valores atípicos. Sin embargo, debido a que usa MAD durante (presumiblemente) un día de negociación completo (o incluso más), estos valores atípicos están a menos de 3 MAD de la mediana y no se filtrarán. Lo contrario es cierto para períodos ocupados con movimientos de precios más altos (se filtrarán los movimientos de precios aceptables). Por lo tanto, el problema se reduce a estimar adecuadamente el MAD en todo momento, que es el problema para comenzar.
jilles de wit