Читать книгу Предсказываем тренды. С Rattle и R в мир моделей классификации - Александр Фоменко - Страница 7
Часть 1. Введение в предсказательное моделирование
1. Введение
1.2. Процесс предсказательного моделирования
ОглавлениеСуществует несколько аспектов в процессе построения модели, которые следует обсудить далее, особенно новичкам в предсказательном моделировании.
Технология предсказательного моделирования выглядит следующим образом:
– на основе некоторого набора исходных данных производится обучение модели;
– в последующем обученная модель используется для предсказания целевой переменной на новом наборе данных;
– в зависимости от того, чему мы учили модель: предсказывать целевую переменную на сегодня, на завтра или на n шагов вперед, мы и получим соответствующее предсказание.
1.2.1. Разделение данных
То, как выделяются данные определенным этапам (например, обучение модели, оценка результативности), является важным аспектом моделирования. Наш главный интерес, к примеру, состоит в предсказании тренда на новых данных, которые отсутствуют в момент обучения модели. Это означает, что до некоторой степени необходимо проверить, как хорошо модель экстраполирует на новых котировках. Если бы мы интересовались предсказанием на тех же самых данных (то есть, интерполяцией), то можно было бы взять простую случайную выборку данных. То, как определены набор данных для обучения и наборы данных для тестирования и проверки, должно отразить применение модели.
Сколько данных должно быть выделено обучающему набору и тестовому? Это обычно зависит от ситуации. Если пул данных небольшой, решения разделения данных могут быть критическими. Небольшой (десятки наблюдений) тестовый набор исходных данных ограничил бы суждения о результативности модели. В этом случае, уверенность в результатах могли бы предоставить методы ресемплирования, которые могли бы решить проблему.
На финансовых рынках достаточно часто доступны большие наборы данных. Обычно доступны наборы данных с несколькими тысячами наблюдений, например, цен валютных пар. Казалось бы, что на финансовых рынках отсутствуют проблемы небольших по объему исходных данных. Однако это не так. К примеру, мы обучили модель на растущем рынке, а тестируем на падающем рынке, и выясняется, что модель дает убыток на этом тестовом наборе данных. На этом примере мы видим, что проблема в обязательности разделения котировок для обучения и тестирования остается и для больших наборов данных, так как при разделении необходимо обеспечить примерно равное количество «лонгов» и «шортов».
1.2.2. Целевая переменная
Несмотря на кажущуюся простоту, выбор цели предсказания и данных, которые материализуют эту цель в виде набора цифр, носит краеугольный характер.
Обратимся к идее предсказывать тренд. Эта идея опирается на желание торговать тренды.
Из определения тренда: «тренд растущий, если следующая цена больше предыдущей цены» и, наоборот, для падающего тренда. Из определения следует, что необходимо предсказывать цену валютной пары. Было 1.3500 для eurusd, предсказали 1.3550 – растущий тренд, покупаем.
Но базовыми приказами являются приказы «купить» и «продать», а мы предсказали величину цены. А величина цены используется, к примеру, в торговых системах на пробой уровня. Чтобы реализовать план по торговле трендов, надо будет произвести дополнительное действие по сравнению цен. При этом очевидно, что мы предсказываем не то, что собирались торговать!
Поэтому, если мы собрались делать трендовую торговую систему, то модель должна сразу предсказывать тренд. Учить модель надо трендам, целевая переменная должна принимать только два значения «купить» и «продать» или в закодированном (категориальном) виде «1» и «-1».
Можно уточнить целевую переменную, имеющую два значения за счет того, что неплохо бы предсказывать и боковики, т.е. иметь целевую переменную, принимающую значения «купить», «продать» и «вне рынка». Или закодировав эти значения как: «1», «-1» и «0».
Различие моделей, которые используют совокупность исходных данных для вычисления будущей величины цены финансового актива, и моделей, которые относят совокупность исходных данных к некоторому классу, является принципиальным. Первый тип моделей относится к регрессионным моделям, а второй тип моделей относится к классификационным моделям.
По предсказательным моделям регрессионного типа вычисляется значение некоторой величины в будущем, и когда это будущее наступит, то у нас будет фактическое значение этой предсказанной величины.
По предсказательным моделям классификационного типа вычисляется класс, к которому будет отнесена совокупность поступивших на момент предсказания исходных данных.
Рассмотренные варианты не исчерпывают всего разнообразия целевых переменных, возможных на финансовых рынках. Но вывод из данного раздела: целевая переменная должно точно соответствовать целям торговой системы.
1.2.3. Независимые переменные
Независимые переменные, в дальнейшем предикторы, независимы в том смысле, что поступают в модель извне, являются внешними, измеряемыми переменными, или переменными, вычисленными на основе этих внешних переменных. Например, любые экономические, финансовые данные, включая котировки валютных пар, являются независимыми переменными, так как их значения образуются в результате деятельности субъектов на рынке. К этой же категории переменных относятся и индикаторы из технического анализа, которые вычисляются на основе котировок.
Выбор независимых переменных не менее важен, чем выбор целевой переменной. Более того, именно выбор независимых переменных определяет успешность моделирования. Основное время, затраченное на разработку модели, уходит как раз на анализ и подбор набора независимых переменных.
Этот вопрос рассмотрим в отдельных разделах.
1.2.4. Оценка результативности модели
Тип модели предполагает разные типы оценок.
Для регрессионных моделей – это ошибка предсказания, полученная как разность между предсказанной и фактической величиной (к примеру, RMSE).
Для классификационных моделей – это рассогласование, полученное как совпадение/несовпадение фактических и предсказанных классов.
1.2.5. Выбор модели
Наличие оценки результативности модели позволяет выбрать лучшую модель. Это можно сделать, если «лучшая» модель сильно отличается от своих конкурентов. Если это не так, то, отбросив «худшую» модель при ее наличии, можно сделать предсказание, используя имеющиеся предсказания моделей в качестве предикторов для окончательного предсказания.
1.2.6. Итоги
В первом приближении создание модели кажется ясным: выбираем метод моделирования, учим модель на наборе данных обучения – все готово, можно предсказывать.
Вам очень повезет, если столь просто удастся создать надежную, устойчивую модель, работающую на новых наблюдениях.
Чтобы получить модель, имеющую примерно одинаковые оценки результативности вне набора обучения следует сначала понять данные и цель моделирования. После понимания данных и целей, можно предварительно обработать и разделить данные. После этих шагов можно начинать создание, оценку и выбор моделей. Только после того, как эти шаги сделаны, мы, наконец, начнем создание, оценку и выбор моделей.
Существует целый ряд общих причин неудачности предсказательных моделей:
– не адекватная предварительная обработка данных;
– не адекватная проверка модели;
– неоправданная экстраполяция (применение к данным, которые имеют слабое отношение к обучающему набору);
– наиболее важное: переобучение модели на обучающем наборе данных.