в Алготрейдинг

Слепое прочесывание данных и переподгонка

Слепое прочесывание данных (data dredging, data fishing, data snooping, equation fitting, p-hacking) – это использование дата майнинга (data mining) для открытия статистически значимых паттернов в данных без предварительной разработки гипотез, обосновывающих причинность.

Процесс дата майнинга в этом случае основан на автоматическом тестировании огромного числа гипотез на единственном наборе данных, исчерпывающим образом ищущих комбинацию переменных, которые могут показать корреляцию. Обычные тесты на статистическую значимость основаны на вероятности того, что наблюдения возникли случайно, и должны принимать риск ошибочных результатов теста, названный «значимостью».

Когда проводится большое число тестов, некоторые дают ложные результаты, например 5% случайных гипотез выйдут значимыми на 5% уровне значимости чисто случайным образом. При тестировании достаточно большого числа гипотез практически неизбежно некоторые окажутся ложно статистически значимыми, поскольку практически каждый набор данных с любым уровнем случайности, скорее всего, содержит некоторые иллюзорные корреляции. Если исследователи недостаточно осторожны при использовании техник дата майнинга, они могут быть с легкостью введены в заблуждение этими ложными результатами.

Обычная процедура тестирования статистической гипотезы – сформулировать исследовательскую гипотезу, такую как «люди высших социальных классов живут дольше», затем собрать релевантные данные, после чего провести тест на статистическую значимость, чтобы увидеть, не могут ли быть данные воспроизводить эффект чисто случайно. Последний шаг называется тестированием против нулевой гипотезы.

Ключевой момент в правильном статистическом анализе – тестирование гипотезы на свидетельствах (данных), которые не использовались для конструирования гипотезы. Это критический момент, поскольку каждый набор данных содержит некоторые совершенно случайные паттерны. Если гипотеза не тестировалась на другом наборе данных, отличном от исходного, невозможно определить, является ли обнаруженный паттерн игрой случая.

Поиск паттернов в данных имеет право на существование. Но применять статистический тест на значимость (тестирование гипотезы) к тем же данным, на которых паттерн был получен – неправильно. Один из способов конструировать гипотезы, избегая подгонки под данные – провести случайные (randomized) тесты вне выборки. Исследователь собирает набор данных, затем случайным образом делит его на два под-набора, A и B. Только один под-набор – например, А – используется для создания гипотез. После того, как гипотеза сформулирована, она должна быть протестирована на наборе В, которые не был использован для создания гипотезы. Только когда набор В также поддерживает эту гипотезу, только тогда разумно полагать, что гипотеза может соответствовать действительности.

Источник: Data dredging

Комментарии:

Intro: Помимо самого паттерна из данных нужно тащить условия его работы. То есть, если моделька показывает поведение (волатильность пнл, расхождение в активности и т.д.), которого никогда не было, нужно ее выключать и смотреть что случилось. Неплохо бы и классифицировать условия при которых она хорошо работает, а когда – нет, но это не всегда возможно.

mehanizator: и получаем тайминг эквити.

Intro: что это значит?

mehanizator: тайминг рынка – пытаемся поймать позицией нужное рыночное движение.
тайминг эквити – включая/выключая стратегию пытаемся поймать нужный режим рынка.

Intro: а, ну да, верно
но тип рынка прогнозируется в известной степени, известный факт, что волатильность растет взрывообразно и падает плавно, с возвращением участников/ликвидности

Intro: а с учетом инсайдеров на нашем рынке даже вола не растет взрывообразно, применительно к нашему опыту, нам 30 октября повезло выключиться ДО движения бакса на полтора рубля потому-как сработали маркеры “неправильного рынка”. Что-то происходило “не то” уже до самого движения где снесло миллионы у кучи участников

mehanizator: эта “известная степень” обычно подводит очень невовремя.

Intro: Если торговля волатильностью – не вся логика твоего алгоритма, то ничего страшного не происходит. Системный или несистемный лось и смотришь, что происходит, собственно не всегда и лось-то, но тут уж везение наверное, а не системная торговля. В принципе, нормировка на активность уже как признак хорошего тона в алготорговле =) Если ты шортишь волатильность на все плечи и закладываешься на прогноз волатильности как аксиому – то это кретинизм, а не системописательство.

John Smith: Про тестирование вне выборки – тоже очень спорно.
Потому что нет никаких гарантий, что положительные результаты тестов вне выборки не такая же случайность, только растянутая на какое-то время вне выборки. В любом случае о будущем сохранении этой “закономерности” тесты вне выборки ничего не говорят, и ничего не гарантируют так же.

John Smith: Простой пример
берём историю за 1 год, с помощью какого-либо алгоритма дата-майнинга ищем типа “закономерность”, проводим тест вне выборки за 10 лет того же тикера, получаем положительные результаты.
Этот пример аналогичен тому, что если мы возьмём все эти 11 лет истории и “намайним” ту же “закономерность” на них. Пример типичной подгонки под кривую. Поэтому считаю, что тесты вне выборки – по-сути бесполезная трата времени.