Надежное обнаружение выбросов в финансовых временных сериях

16

Я ищу некоторые надежные методы для удаления выбросов и ошибок (независимо от причины) из финансовых данных временных рядов (например, тикданных).

Тик-тик-тик финансовые данные временных рядов очень грязные. Он содержит огромные (временные) промежутки, когда биржа закрыта, и делает огромные скачки, когда биржа открывается снова. Когда биржа открыта, все виды факторов вводят сделки на неправильных уровнях цен (они не произошли) и / или не являются репрезентативными для рынка (например, скачок из-за неправильно введенной цены покупки или продажи). Этот документ tickdata.com (PDF) хорошо описывает проблему, но предлагает несколько конкретных решений.

Большинство статей, которые я могу найти в Интернете, в которых упоминается эта проблема, либо игнорируют ее (тикданные предполагаются отфильтрованными), либо включают фильтрацию как часть какой-то огромной торговой модели, которая скрывает любые полезные этапы фильтрации.

Кто-нибудь знает о более углубленной работе в этой области?

Обновление: этот вопрос кажется похожим на первый взгляд, но:

  • Финансовые временные ряды (по крайней мере на уровне тиков) непериодичны.
  • Эффект открытия - большая проблема, потому что вы не можете просто использовать данные последнего дня в качестве инициализации, даже если вы действительно этого хотите (потому что в противном случае у вас ничего нет). Внешние события могут привести к тому, что открытие нового дня будет резко отличаться как по абсолютному уровню, так и по волатильности от предыдущего дня.
  • Дико нерегулярная частота поступающих данных. При открытии и закрытии дня количество точек данных в секунду может быть в 10 раз выше среднего значения за день. Другой вопрос касается регулярно выбираемых данных.
  • «Выбросы» в финансовых данных демонстрируют некоторые конкретные закономерности, которые могут быть обнаружены с помощью конкретных методов, неприменимых в других областях, и я частично ищу эти конкретные методы.
  • В более экстремальных случаях (например, сбой флэш-памяти) выбросы могут составлять более 75% данных за более длительные интервалы (> 10 минут). Кроме того, (высокая) частота входящих данных содержит некоторую информацию о внешнем аспекте ситуации.
Jilles de остроумие
источник
1
Я не думаю, что это дубликат из-за характера данных. Проблема, обсуждаемая по другому вопросу, касалась регулярно наблюдаемых временных рядов со случайными выбросами (по крайней мере, так я это интерпретировал). Природа тик-тиковых данных может привести к различным решениям из-за эффекта открытия биржи.
Роб Хиндман
Возможный дубликат простого алгоритма для онлайн-обнаружения выбросов общего временного ряда. Этот вопрос предлагается закрыть как дубликат. Не могли бы вы сообщить нам в мета-ветке, если и чем ваш контекст отличается от вопроса, который я связал?
@Rob Но эффект открытия биржи определяет только когда нужно запустить алгоритм. Основная проблема остается той же. Даже в сетевых данных у вас есть «эффект открытия офиса», когда трафик достигает максимума, как только офис открывается. По крайней мере, ОП должен связать этот вопрос, отсканировать ответы там и объяснить, почему решения там не работают, чтобы можно было найти подходящий ответ на этот вопрос.
1
Я согласен с @Rob. Данные такого рода могут создавать уникальные проблемы, поэтому они не являются дубликатами.
Шейн
1
Я думаю, что это принадлежит здесь. Речь идет об анализе нерегулярно расположенных, очень шумных временных рядов. Вы смотрели «Введение в высокочастотные финансы» Дакорогны, Олсена и многих других? Или бумаги тех же авторов?
PeterR

Ответы:

14

Проблема определенно сложная .

Механические правила, такие как +/- N1, умноженное на стандартное отклонение, или + / N2, умноженное на MAD, или +/- N3 IQR или ... , не будут выполнены, потому что всегда есть ряды, которые отличаются, как, например:

  • такие фиксированные показатели, как межбанковский курс, могут быть постоянными в течение некоторого времени, а затем внезапно подскочить
  • аналогично, например, для некоторых иностранных бирж, выходящих из привязки
  • определенный инструмент неявно распространяется; они могут быть близки к нулю для периодов и внезапного скачка

Был там, сделал это, ... на предыдущей работе. Вы можете попытаться заключить в скобки каждую серию, используя суда арбитражных отношений ( например, предполагая, что USD / EUR и EUR / JPY считаются хорошими, вы можете определить диапазоны того, каким должен быть USD / JPY; также для деривативов из базового и т. П.).

Коммерческие поставщики данных прилагают некоторые усилия в этом направлении, и те, кто пользуются ими, являются их клиентами, знают ... что это по-прежнему не исключает ошибок.

Дирк Эддельбюттель
источник
+1 да, нет ничего идеального. Tickdata.com (чья статья упоминается) также включает в себя выбросы, и они также удаляют слишком много хороших данных (по сравнению с другим источником). Данные Олсена близки к тому, чтобы быть ужасными, и я, как правило, просто показательный. Есть причина, по которой банки платят большим операционным командам, чтобы работать над этим.
Шейн
Мне нравится ваша идея об использовании известных арбитражных отношений. Вы пробовали это вообще на своей предыдущей работе?
июля
Нет, мы никогда полностью не формализовали это. Но я думаю, что мы использовали несколько простых (то есть ETF против базового индекса и т. Д.). Хотя прошло несколько лет.
Дирк Эддельбюттель
8

Я добавлю несколько бумажных ссылок, когда вернусь за компьютер, но вот несколько простых советов:

Обязательно начните с работы с возвратами. Это очень важно для устранения нерегулярных интервалов, когда вы, естественно, можете получить большие ценовые разрывы (особенно в выходные дни). Затем вы можете применить простой фильтр для удаления возвратов, выходящих далеко за пределы нормы (например, против большого количества стандартных отклонений). Возврат будет скорректирован до нового абсолютного уровня, поэтому большие реальные изменения приведут к потере только одного тика. Я предлагаю использовать двухпроходный фильтр с возвратами, взятыми из 1 шага, и n шагов, чтобы справиться с кластерами выбросов.

Редактировать 1: Относительно использования цен, а не доходов: цены на активы, как правило, не являются постоянными, поэтому ИМО может создать некоторые дополнительные проблемы. Чтобы учесть эффекты нерегулярности и степенного закона, я бы посоветовал некоторую корректировку, если вы хотите включить их в свой фильтр. Вы можете масштабировать изменения цены по временному интервалу или по волатильности. Вы можете обратиться к списку «реализованной волатильности» для некоторого обсуждения этого вопроса. Также обсуждается в Dacorogna et. и др.

Чтобы учесть изменения волатильности, вы можете попытаться основать свой расчет волатильности на том же времени дня за последнюю неделю (используя сезонность).

Шейн
источник
Используя только возвраты, вы становитесь очень уязвимыми для лестниц (то есть последовательности цен, которая поднимается или отклоняется от нормы, где каждый отдельный возврат приемлем, но как группа, которую они представляют выбросы). В идеале вы должны использовать как возврат, так и абсолютный уровень.
Жиль де Вит
5

Я (с некоторой задержкой) изменил свой ответ, чтобы отразить вашу озабоченность по поводу отсутствия «приспособляемости» безусловного безумца / медианы.

(μ^T,σ^T)

ИксT-μ^Tσ^T

Вы можете найти больше информации (и ссылку на пакет R) в этом документе :

Boudt, K. и Croux, C. (2010). Робастная M-оценка многомерных моделей GARCH.

user603
источник
Я пробовал что-то вроде этого, но этот метод не очень хорошо справляется с резкими изменениями волатильности. Это приводит к недостаточной фильтрации в тихие периоды и чрезмерной фильтрации в более загруженное время.
Джилл де Вит
Я не понимаю, что «это приводит к недостаточной фильтрации в тихие периоды и чрезмерной фильтрации в более напряженное время», - объясните, что вы хотите объяснить?
user603
В спокойные периоды волатильность цен, как правило, ниже, поэтому цены, близкие к среднему, можно считать выбросами. Однако, поскольку вы используете MAD для (предположительно) всего торгового дня (или даже дольше), эти выбросы находятся на расстоянии менее 3 MAD от медианы и не будут фильтроваться. Обратное верно для периодов занятости с более высокими ценовыми движениями (приемлемые ценовые движения будут отфильтрованы). Таким образом, проблема сводится к правильной оценке MAD в любое время, что является проблемой с самого начала.
Жил де Вит