19 votos

Detección robusta de valores atípicos en series temporales financieras

Estoy buscando algunas técnicas sólidas para eliminar los valores atípicos y los errores (sea cual sea la causa) de los datos de las series temporales financieras (es decir, los datos de los tics).

Los datos de las series temporales financieras son muy confusos. Contienen enormes lagunas (temporales) cuando la bolsa está cerrada, y dan enormes saltos cuando la bolsa se abre de nuevo. Cuando la bolsa está abierta, todo tipo de factores introducen operaciones a niveles de precios que son erróneos (no se produjeron) y/o no son representativos del mercado (un pico debido a un precio de compra o venta introducido incorrectamente, por ejemplo). Este documento de tickdata.com (PDF) hace un buen trabajo al esbozar el problema, pero ofrece pocas soluciones concretas.

La mayoría de los artículos que he encontrado en Internet que mencionan este problema o bien lo ignoran (se supone que los datos de los garrapatos están filtrados) o bien incluyen el filtrado como parte de algún modelo comercial enorme que oculta cualquier paso de filtrado útil.

¿Alguien conoce algún trabajo más profundo en este ámbito?

Actualización: estas preguntas parece similar en la superficie pero:

  • Las series temporales financieras son (al menos a nivel de ticks) no periódicas.
  • El efecto de apertura es un gran problema porque no puedes usar simplemente los datos del último día como inicialización aunque te gustaría mucho (porque si no, no tienes nada). Los acontecimientos externos pueden hacer que la apertura del nuevo día difiera drásticamente tanto en el nivel absoluto como en la volatilidad del día anterior.
  • Frecuencia de entrada de datos muy irregular. Cerca de la apertura y el cierre del día, la cantidad de puntos de datos/segundo puede ser 10 veces superior a la media del día. La otra pregunta se refiere a los datos muestreados regularmente.
  • Los "valores atípicos" en los datos financieros muestran algunos patrones específicos que podrían detectarse con técnicas específicas no aplicables en otros dominios y estoy -en parte- buscando esas técnicas específicas.
  • En casos más extremos (por ejemplo, la caída del flash), los valores atípicos pueden suponer más del 75% de los datos en intervalos más largos (> 10 minutos). Además, la (alta) frecuencia de los datos entrantes contiene cierta información sobre el aspecto atípico de la situación.

15voto

Jay Puntos 395

El problema es definitivamente duro .

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

  • Los tipos de interés, como el interbancario, pueden ser constantes durante algún tiempo y luego saltar de repente.
  • de manera similar para Por ejemplo algunas bolsas de valores extranjeras que salen de una clavija
  • ciertos instrumentos están implícitos en los diferenciales; estos pueden estar cerca de cero durante períodos y de repente dar un salto múltiple

Ya lo he hecho en un trabajo anterior. Podrías tratar de poner entre paréntesis cada serie utilizando barcos de relaciones de arbitraje ( Por ejemplo asumiendo que el USD/EUR y el EUR/JPY se presumen buenos, se pueden elaborar bandas en torno a lo que debería ser el USD/JPY; lo mismo para los derivados de un subyacente, etc. pp.

Los proveedores de datos comerciales se esfuerzan en ello, y los que son clientes suyos lo saben... pero esto no excluye los errores.

9voto

Jon Galloway Puntos 28243

Añadiré algunas referencias en papel cuando vuelva a estar frente a un ordenador, pero he aquí algunas sugerencias sencillas:

Definitivamente, empieza por trabajar con las devoluciones. Esto es fundamental para hacer frente a los espacios irregulares en los que, naturalmente, puede haber grandes diferencias de precios (especialmente durante los fines de semana). A continuación, puede aplicar un filtro sencillo para eliminar los rendimientos que se salen de la norma (por ejemplo, frente a un número elevado de desviaciones estándar). Los rendimientos se ajustarán al nuevo nivel absoluto, por lo que los grandes cambios reales sólo supondrán la pérdida de un tick. Sugiero utilizar un filtro de dos pasadas con rendimientos tomados de 1 paso y n pasos para tratar los grupos de valores atípicos.

Editar 1: En cuanto al uso de los precios en lugar de los rendimientos: los precios de los activos tienden a no ser estacionarios, por lo que la OMI puede plantear algunos problemas adicionales. Para tener en cuenta la irregularidad y los efectos de la ley de potencia, aconsejaría algún tipo de ajuste si se quiere incluir en el filtro. Puedes escalar los cambios de precios por el intervalo de tiempo o por la volatilidad. Puede consultar la literatura sobre la "volatilidad realizada" para obtener información al respecto. También se discute en Dacorogna et. al.

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

7voto

Patrick Puntos 183

He cambiado (con un poco de retraso) mi respuesta para reflejar tu preocupación por la falta de "adaptabilidad" del incondicional loco/mediano.

Se puede abordar el problema de la volatilidad variable en el tiempo con el marco de las estadísticas robustas. Esto se hace utilizando un estimador robusto de la varianza condicional (en lugar del estimador robusto de la varianza incondicional que sugería antes): la estimación M del modelo GARCH. De este modo, tendremos una estimación robusta y variable en el tiempo de $(\hat{\mu}_t,\hat{\sigma}_t)$ que no son los mismos que los producidos por el ajuste GARCH habitual. En particular, no están impulsados por unos pocos valores atípicos lejanos. Dado que estas estimaciones no están impulsadas por ellos, se pueden utilizar para marcar de forma fiable los valores atípicos utilizando la distribución histórica de la

$$\frac{x_t-\hat{\mu}_t}{\hat{\sigma}_t}$$

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

Boudt, K. y Croux, C. (2010). Robust M-Estimation of Multivariate GARCH.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X