Прогнозирование

биржевых цен для трейдеров

Метрика RMSE Квадратный корень из среднеквадратичной ошибки


Часто, трейдеры хотят, чтобы в качестве метрики качества прогнозирования была прибыль трейдера. То есть они хотят оценивать метод прогнозирования по такому критерию, как заработок трейдера.

Но на самом деле, это очень плохой подход. Такой подход говорит о непрофессионализме трейдера, о том, что трейдер не понимает, что по критерию прибыли можно оценивать только торговые системы. А прогнозы не являются торговой системой, так как в прогнозах никак не учитывается финансовый менеджмент.

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

Рассмотрение метрик прогнозирования начнем с самой важной метрики RMSE.

Что такое RMSE

RMSE (Root Mean Squared Error), это корень квадратный из среднеквадратичной ошибки прогноза.

Эта метрика показывает, на сколько, в среднем, прогноз отклоняется от реальных значений рыночной цены. Вычисляется RMSE по формуле:


Формула вычисления корня из среднеквадратичной ошибки

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

Итак, всё очень просто. Мы сначала берем разницу цен между прогнозом и реальной ценой, возводим все эти разницы цен в квадрат и усредняем по всем N тестовым случаям. И, наконец, из полученного среднеквадратичного отклонения извлекаем квадратный корень.

Где вычисляется RMSE

Введенные вами исторические данные котировок рыночных активов разбиваются на две части:

  • Первые 80% всех введенных вами фреймов считаются обучающими фреймами
  • Последние 20% всех введенных вами фреймов считаются тестовыми фреймами

На обучающих фреймах нейросеть обучается прогнозировать. А на тестовых фреймах проверяют, как нейросеть научилась делать прогнозы. Метрика RMSE вычисляется на тестовых данных. Именно эту метрику вы видите в результатах прогнозирования нейросети Прогнозирующая Машина.

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

Чем меньше значение RMSE, тем лучше. Чем меньше значение RMSE, тем значит, более точно Прогнозирующая Машина прогнозирует цены. Минимальное значение RMSE равно нулю. Если RMSE равен нулю, то это означает, что на всех тестовых фреймах прогнозы точно совпали с реальными значениями цены.

Пример вычисления RMSE

Пусть, для примера, тестовый набор состоит всего из 4-х фреймов. Рассмотрим тестовые прогнозы двух обученных нейросетей, которые показаны в двух последних колонках таблицы.


Таблица с реальными ценами и с двумя прогнозами

Эти два прогноза и реальные цены тестовых фреймов для наглядности показаны на этом графике.


График зависимости реальных и прогнозных цен от номера тестового фрейма

Посчитаем RMSE сначала для тестовых прогнозов первой нейросети.

Сначала суммируем разности квадратов между прогнозами первой нейросети и реальными значениями:

(1.3886 - 1.3865)2 + (1.3929 - 1.3911)2 + (1.3869 - 1.3889)2 + (1.3907 - 1.3924)2 = 0.000014540.

Теперь для усреднения по всем тестовым фреймам делим эту сумму на число тестовых фреймов N=4, и получаем: 0.000014540 / 4 = 0.000003635.

Наконец, извлекаем из полученного числа квадратный корень, и получаем примерно: 0.0019.

Теперь вы умеете вычислять RMSE, если известны и прогнозы и реальные цены на тестовых фреймах.

Аналогично вычисляем RMSE и для второй нейросети. Получаем примерно: 0.0014.

Получается, что RMSE для прогнозов первой нейросети больше, чем для второй, причем больше на существенные 35% . Значит, вторая нейросеть прогнозирует лучше, чем первая нейросеть. Исходя из этого, мы больше доверяем прогнозам второй нейросети, а не первой.

Как видно, из таблицы и из графика, обе нейросети спрогнозировали будущий 5-й фрейм, цена закрытия которого еще неизвестна. И оба эти прогноза разные:

  • Первая нейросеть прогнозирует цену закрытия будущего фрейма: 1.3928
  • Вторая нейросеть прогнозирует цену закрытия будущего фрейма: 1.3987

Мы больше доверяем прогнозу второй нейросети с ценой 1.3987, так как у неё RMSE на предыдущих фреймах был меньше, чем у первой нейросети. Выбрав из двух прогнозов прогноз второй нейросети, мы меньше ошибемся, чем если выберем прогноз первой нейросети.