Неопределённость как модель (Часть 6): Множественная регрессия и диагностика
Оглавление
- Введение
- Множественная регрессия
- Статистический анализ
- Методы работы с регрессорами
- Применение регрессии
- Практические примеры
- Заключение
- Приложенные файлы
Введение
В реальной торговле актив редко движется сам по себе. Пытаясь объяснить динамику цены только её прошлым или одним смежным индексом (как в случае с простой регрессией), трейдер рискует столкнуться с проблемой "пропущенных переменных". Рынок многомерен: на цену актива одновременно давят процентные ставки, волатильность широкого рынка и много чего ещё. Игнорирование этих факторов превращает модель в "подгонку под кривую", которая рассыпается при первом же изменении рыночного контекста.
Эта статья посвящена переходу к множественной регрессии — инструменту, который позволяет учитывать влияние сразу нескольких детерминированных факторов. Мы разберём, как изолировать вклад конкретного регрессора и не стать жертвой мультиколлинеарности, когда переменные дублируют друг друга, искажая сигнал. Вместо поиска одной "волшебной" переменной, мы научимся строить сбалансированный многофакторный каркас, который видит структуру рынка глубже, чем простая корреляция двух инструментов.
Множественная регрессия
На зависимую переменную, как правило, влияет совокупность факторов. Исследование их по отдельности в рамках парной регрессии приводит к ложным результатам, особенно если регрессоры коррелированны между собой. В этом случае влияние неучтённых факторов переходит в случайную составляющую, лишая модель её ключевых свойств. Оценки параметров становятся смещёнными: они систематически завышают или занижают истинную степень влияния переменных.
Однако это не означает, что в модель следует включать максимально возможное число предикторов. Избыточные переменные, не имеющие реальной связи с изучаемым процессом, снижают точность модели и ведут к неверным выводам.
Таким образом, возникает задача построения модели множественной регрессии, которая учитывает одновременное влияние нескольких факторов. При этом нам необходим математический инструментарий для сравнения различных спецификаций. Это позволит отобрать тот набор регрессоров, который наиболее адекватно описывает исследуемую зависимость и пригоден для решения практических задач.
Формальная запись
Математически модель множественной регрессии представляется в следующем виде:
Yt = B1 * X1,t + ... + Bk * Xk,t + C * Et, где
- Yt — зависимая переменная (исследуемый процесс) в моменты времени t = 1, ..., n.
- Xi,t — независимая переменная (регрессор) под номером i в моменты времени t.
- B1, ..., Bk, C — параметры модели (константы), подлежащие оценке.
- Et — стандартный гауссовский шум с параметрами N(0, 1) в моменты времениt.
По сравнению с парной регрессией здесь происходят два важных качественных изменения:
- Унификация записи. Мы больше не выделяем свободный член (константу) отдельно. Его роль выполняет коэффициент B1 при условии, что первый регрессор X1,t тождественно равен единице. Такой подход существенно упрощает аналитические выкладки.
- Требование отсутствия мультиколлинеарности. Предполагается, что ни один регрессор не может быть представлен в виде линейной комбинации остальных. Если в парной регрессии это условие сводилось просто к тому, что независимая переменная не должна быть константой, то в множественной модели это становится критическим требованием к структуре данных.
Фундаментальное условие остается прежним: для корректной оценки параметров случайная составляющая Et должна являться гауссовским белым шумом.
Как и в случае с парной регрессией, отдельно выделяются спецификации с детерминированными и стохастическими регрессорами. Модели со стохастическими переменными, в свою очередь, подразделяются на экзогенные и эндогенные. Мы уже касались этой классификации во вводной статье, но теперь структура множественной регрессии позволит разобрать эти различия более содержательно.
Основное изложение пока будет сосредоточено на варианте с детерминированными регрессорами. Это необходимо, чтобы избежать перегрузки текста избыточным объёмом новых понятий и сосредоточиться на базовой механике модели. Однако к стохастическим моделям мы обязательно вернёмся, поскольку без них регрессионный анализ потеряет значительную часть своей практической ценности для задач трейдинга. Переход к ним позволит нам работать с более сложными и реалистичными рыночными взаимосвязями.
Как и в парной регрессии, оценки b₁, …, bₖ для B1, ..., Bk получаем методом наименьших квадратов (МНК). Параметр C оценивается через несмещённую оценку дисперсии: (c2 = (e₁2 + ... + eₙ2) / (n - k)).
Мы опустим промежуточные выкладки для коэффициентов b₁, ..., bₖ и сразу перейдём к итоговым результатам. Для этого нам необходимо использовать аппарат линейной алгебры.
Матричная форма записи
Использование векторов и матриц является общепринятым стандартом для описания регрессионных моделей. Такая форма записи не только делает формулы более компактными и наглядными, но и напрямую соответствует логике работы большинства статистических пакетов и библиотек для анализа данных. Напомним основные определения:
- Матрица — это прямоугольная таблица чисел, размерность которой определяется количеством строк и столбцов.
- Вектор — это частный случай матрицы, состоящий из одного столбца (вектор-столбец) или одной строки (вектор-строка). В специализированной литературе под термином "вектор" чаще всего подразумевается вектор-столбец, однако для исключения ошибок всегда стоит уточнять размерность из контекста конкретной задачи.
- Скаляр — обычное число.
Введём следующие обозначения для перехода к компактной записи формулы:
- X — матрица регрессоров размерности в n строк и k столбцов, где на пересечении строки t и столбца i находится значение регрессора Xi,t.
- y — вектор-столбец значений зависимой переменной Yt.
- b — вектор-столбец искомых оценок параметров bᵢ.
Здесь индекс t (моменты времени) принимает значения от 1 до n, а индекс i (номера факторов) — от 1 до k. В этих обозначениях решение задачи МНК для вектора коэффициентов b выглядит следующим образом:
b = (XT * X)-1 * XT * y, где:
- XT — транспонированная матрица X.
- (XT * X)-1 — обратная матрица для произведения транспонированной матрицы на исходную.
- Знак звёздочки обозначает матричное умножение.
Эта формула является фундаментальной. Именно её вычисляет любой софт, когда мы строим регрессию. Важно понимать, что возможность существования обратной матрицы напрямую зависит от упомянутого выше условия отсутствия мультиколлинеарности: если регрессоры линейно зависимы, вычисления станут невозможными.
Статистический анализ
Анализ при построении множественной регрессии — это итерационный процесс. Его сложно представить в виде линейной последовательности действий, как это было в случае с парной регрессией. В практической работе мы постоянно модифицируем спецификацию: добавляем новые факторы, исключаем незначимые или трансформируем уже имеющиеся. Каждое изменение набора регрессоров создаёт новую модель, требующую полного цикла проверки. Тем не менее можно выделить набор стандартных аналитических процедур — "кирпичиков", из которых складывается алгоритм исследования.
Анализ остатков
Методы анализа поведения остатков переносятся из парной регрессии во множественную без существенных изменений. Речь идёт об изучении остатков как самостоятельного временного ряда, вне их связи с регрессорами. Напомним, что сюда относятся:
- Визуальный анализ: график остатков в зависимости от времени.
- Проверка распределения: графики эмпирической плотности распределения EPDF и QQ-plot для сопоставления остатков с нормальным распределением.
- Анализ автокорреляции: построение коррелограммы и проведение соответствующих статистических тестов.
- Формальные тесты: проверка на нормальность распределения, а также на стабильность математического ожидания и дисперсии (отсутствие гетероскедастичности).
Конечно, при анализе множественной регрессии появляются и специфические методы диагностики, направленные на изучение взаимосвязей между переменными.
Методы EDA
Матрица корреляций — это квадратная матрица, содержащая коэффициенты корреляции для всех пар регрессоров между собой и с зависимой переменной. Если модель включает константу (первый регрессор равен единице), её обычно исключают из матрицы, так как она даёт нулевую корреляцию. На главной диагонали всегда стоят единицы. Визуально матрица часто представляется в виде тепловой карты (heatmap), где интенсивность цвета отражает силу связи, а дополнительные пометки указывают на уровень значимости (p-value). Матрица необходима для первичного отбора факторов: в идеале корреляция регрессора с зависимой переменной должна быть высокой, а между самими регрессорами — минимальной.
Графики рассеяния. В сравнении с парной регрессией инструментарий визуализации здесь значительно расширяется. Простой график "регрессор против остатков" теряет часть смысла, так как остатки теперь аккумулируют влияние всей совокупности факторов. На первый план выходят другие типы графиков:
- Попарные графики рассеяния. Строятся для регрессоров с зависимой переменной и друг с другом. Они дополняют матрицу корреляций, позволяя визуально обнаружить нелинейные зависимости и выбросы.
- Графики частичной регрессии. Строятся для каждого регрессора в отдельности и позволяют изолировать его индивидуальный вклад в модель с учётом влияния остальных факторов.
- Прогноз vs факт. График рассеяния прогнозных значений против реальных. Чем ближе облако точек к прямой Y = X, тем выше предсказательная способность модели.
- Прогноз vs остатки. Критически важный график для визуальной проверки гомоскедастичности (постоянства дисперсии) и поиска скрытых закономерностей, которые модель не смогла "получить" из данных.
Для количественной оценки качества модели используются следующие показатели:
- R-квадрат (коэффициент детерминации). Этот показатель сравнивает текущую модель с "базовой" регрессией на константу. Математически он выражает долю дисперсии зависимой переменной, которую удалось объяснить с помощью выбранных регрессоров. Если в модели присутствует константа, значение R-квадрата варьируется от 0 до 1: чем оно выше, тем точнее модель описывает исторические данные. Для парной регрессии этот показатель в точности равен квадрату коэффициента корреляции между зависимой переменной и единственным регрессором. Важно учитывать, что при отсутствии свободного члена (константы) стандартная интерпретация R-квадрата становится некорректной.
- Скорректированный R-квадрат (Adjusted R-squared). Обычный R-квадрат обладает существенным недостатком: он увеличивается при добавлении любого нового регрессора, даже если тот не несёт никакой полезной информации, а лишь создаёт шум. Скорректированный коэффициент нивелирует этот эффект, накладывая "штраф" за увеличение числа параметров. Формально он рассчитывается путём замены смещённой оценки дисперсии остатков на несмещённую (с учётом числа степеней свободы). Это делает его более надёжным инструментом при поиске оптимального набора факторов.
- F-статистика. Сам по себе R-квадрат не позволяет определить, является ли полученный результат статистически значимым или это следствие случайного совпадения на выборке. Для решения этой задачи используется F-статистика, значение которой напрямую связано с R-квадратом. Поскольку закон распределения этой величины известен, она позволяет проверить нулевую гипотезу о статистической значимости модели в целом.
Проверка мультиколлинеарности регрессоров. При строгой линейной зависимости матрица (XT * X) вырождена, поэтому МНК неприменим. Однако даже при наличии сильной, но не полной зависимости, практическая ценность модели резко снижается. Для оценки степени близости к мультиколлинеарности используется фактор инфляции дисперсии (VIF — Variance Inflation Factor). Он рассчитывается для каждого регрессора в отдельности на основе коэффициента детерминации модели, в которой данный регрессор выступает в роли зависимой переменной, а все остальные — в роли независимых. VIF принимает значения от 1 и выше: чем больше показатель, тем сильнее выражена линейная зависимость этого фактора от остальных. Общепринятым критическим порогом считается VIF = 10. Превышение этого уровня говорит о том, что регрессор является избыточным и становится прямым кандидатом на исключение из модели. Важно понимать: при удалении хотя бы одной переменной значения VIF для всех оставшихся факторов пересчитываются, так как структура взаимосвязей внутри матрицы X меняется.
Проверка наблюдений на наличие выбросов. Отдельные аномальные точки могут оказывать определяющее влияние на коэффициенты модели, фактически "перетягивая" регрессию на себя. Для количественной оценки этого воздействия используется расстояние Кука (Cook's distance). Этот показатель измеряет степень влияния конкретного наблюдения на результаты анализа. Он демонстрирует, насколько существенно изменятся коэффициенты регрессии при исключении данной точки из выборки. Высокие значения расстояния Кука указывают на то, что наблюдение является влиятельным выбросом, требующим тщательного изучения. Для трейдинга этот этап анализа критически важен. Финансовым временным рядам присущи "тяжёлые хвосты" — редкие, но экстремальные движения цен. В отличие от технических ошибок измерения в физике, такие выбросы несут в себе важную рыночную информацию, и их нельзя просто игнорировать. Анализ расстояния Кука позволяет понять, не является ли доходность торговой стратегии следствием небольшого количества случайных ценовых импульсов в прошлом.
Методы CDA
После того как мы визуально оценили модель и отобрали регрессоры, необходимо перейти к строгой статистической проверке гипотез. Цель этого этапа — подтвердить, что обнаруженные закономерности не являются случайным совпадением и что модель математически корректна. Проверка остатков (наследование из парной регрессии) — напомним основные инструменты:
- Тест Льюнга—Бокса (Ljung—Box test): проверяет наличие "памяти" (автокорреляции) в остатках. Если в остатках есть структура, значит, модель не выжала из данных всю полезную информацию.
- Тест Ярке—Бера (Jarque—Bera test): проверяет остатки на нормальность (анализ эксцесса и асимметрии). Отклонение от нормальности может критически исказить результаты t-тестов.
- Тест Петтитта (Pettitt test): используется дважды — на самих остатках (проверка стабильности математического ожидания) и на их модулях (проверка стабильности дисперсии). Любой "разрыв" в этих показателях на истории означает нестабильность торговой системы.
- Тест Бройша–Пагана: основной инструмент диагностики гетероскедастичности.
- Тест Рамсея: проверка корректности функциональной формы.
- F-тест: интегральная оценка значимости модели.
Разберём их подробнее.
Тест Бройша—Пагана (Breusch—Pagan test). В классической модели предполагается, что шум имеет постоянную дисперсию. Однако на финансовых рынках это условие часто нарушается: при росте волатильности или изменении рыночного режима разброс остатков модели может увеличиваться или уменьшаться. Это явление называется гетероскедастичностью. Тест Бройша—Пагана позволяет формально проверить, зависит ли дисперсия ошибки от значений регрессоров.
Суть метода заключается в построении вспомогательной регрессии. Мы берём квадраты остатков основной модели и пытаемся объяснить их с помощью наших регрессоров. Если регрессоры никак не объясняют величину квадратов остатков — значит, дисперсия случайна и постоянна (гомоскедастичность). Если же связь обнаруживается — значит, дисперсия систематически меняется вместе с факторами рынка. Математическая реализация: оценивается вспомогательная модель: eₜ2 = g₁ * X1,t + ... + gₖ * Xk,t + Ut. Вычисляется статистика теста: LM = n * R2aux, где n — число наблюдений, а R2aux — коэффициент детерминации вспомогательной регрессии. Полученная величина имеет распределение хи-квадрат, что даёт возможность рассчитать p-value.
Интерпретация для трейдера:
- Низкое p-value (обычно меньше чем 0.05): нулевая гипотеза о постоянстве дисперсии отклоняется. Модель требует доработки (например, перехода к моделированию волатильности типа GARCH или использования робастных стандартных ошибок).
- Высокое p-value: дисперсия стабильна, модель корректно оценивает неопределённость прогноза.
Если тест Бройша—Пагана подтвердил гетероскедастичность, это не всегда означает, что от модели нужно отказываться. Оценки коэффициентов по-прежнему остаются несмещёнными, но их стандартные ошибки (и, как следствие, t-статистики) становятся неверными. В трейдинге это чревато тем, что мы сочтём влияние индикатора значимым, хотя на самом деле это лишь следствие всплеска волатильности. Для решения этой проблемы без изменения самой структуры модели используют робастные (устойчивые) стандартные ошибки — чаще всего это оценки Уайта (White standard errors) или гетероскедастично-состоятельные стандартные ошибки (Heteroscedasticity Consistent errors). Оставим эту тему без подробного обсуждения, чтобы не раздувать чрезмерно статью, как возможный задел на будущее.
Тест Рамсея (RESET). Линейная регрессия по определению ищет только прямые зависимости. Однако на рынке влияние фактора может усиливаться или ослабевать в зависимости от его величины. Тест Рамсея (Regression Specification Error Test) позволяет проверить, является ли выбранная линейная форма адекватной или же модель страдает от ошибки спецификации. Логика теста: если в данных есть скрытая нелинейность, то прогнозные значения нашей модели (Ypred) будут коррелировать с этой неучтенной частью. Тест предлагает "достроить" модель, добавив в неё в качестве новых регрессоров прогнозные значения, возведённые в квадрат, куб и более высокие степени: Y = B*X + g₁*(Ypred2) + g₂*(Ypred3) + ... + E.
Если коэффициенты при этих новых переменных (g₁, g₂, ...) окажутся статистически значимыми, значит, исходная линейная модель была неполной и не смогла "впитать" в себя всю закономерность. Интерпретация для трейдера:
- Низкое p-value: Модель "промахнулась" мимо формы зависимости. Линейная аппроксимация здесь слишком грубая. Стоит попробовать добавить логарифмы, квадраты индикаторов или их взаимодействия.
- Высокое p-value: Линейная спецификация адекватна, и добавление нелинейных членов не улучшит качество описания данных.
F-тест на значимость регрессии. Если t-статистика проверяет каждый коэффициент по отдельности, то F-тест оценивает модель целиком. Суть теста: F-статистика сопоставляет объяснительную способность нашей модели с регрессией на константу, которая выдаёт просто среднее значение ряда. Для трейдера это самый первый "фильтр грубой очистки": если модель не проходит F-тест, анализировать отдельные индикаторы в её составе нет никакого смысла.
- Низкое p-value: модель статистически значима. Как минимум один из выбранных факторов действительно влияет на результат, и совместное использование этих переменных имеет смысл.
- Высокое p-value: модель бесполезна. Даже если R-квадрат кажется приемлемым, тест говорит о том, что такой результат мог быть получен случайно на наборе случайных чисел.
Методы работы с регрессорами
Когда стандартная линейная модель не даёт нужного качества, мы можем трансформировать пространство факторов. Наиболее очевидный подход — добавлять новые регрессоры и убирать те, которые не имеют значимости. Перечислим основные виды других возможностей.
Фиктивные переменные (Dummy variables). Не все факторы можно выразить числом. Для учёта качественных признаков или событий используются бинарные переменные (принимающие значения 0 или 1).
Пример: учёт дня недели, сессии (Азия/Европа) или выхода важных новостей. Переменная принимает значение 1 в момент события и 0 в остальное время. Важно: если мы используем N категорий (например, 4 торговых сессии), в модель нужно включать N - 1 переменную, чтобы избежать "ловушки фиктивных переменных" (полной мультиколлинеарности с константой).
Нелинейные трансформации. Если тест Рамсея показал ошибку спецификации, это повод добавить нелинейность.
- Полиномы: добавление квадратов или кубов регрессоров (X2, X3) позволяет моделировать параболические зависимости — например, когда влияние индикатора усиливается при достижении экстремальных значений.
- Логарифмы: переход к логарифмам (log(X), log(Y)) часто помогает стабилизировать дисперсию и перейти от абсолютных изменений к относительным (процентным), что более естественно для котировок.
Эффекты взаимодействия. Иногда влияние одного фактора зависит от состояния другого. В линейной модели это учитывается через произведение регрессоров: Y = B1 * X1 + B2 * X2 + B3 * (X1 * X2) + E. Пример: влияние процентной ставки на валюту может быть разным при высокой и низкой волатильности фондового рынка. Переменная взаимодействия позволит модели "понять" этот контекст.
Мультиколлинеарность. Если VIF выявил сильную линейную зависимость между факторами, проблему можно решить следующими методами:
- Исключение избыточности: удаление одного из пары коррелирующих регрессоров.
- Трансформация переменных: переход от абсолютных значений цен к приращениям (доходностям), спредам или относительным разницам.
- Метод главных компонент (PCA): преобразование множества зависимых факторов в набор новых, ортогональных (некоррелированных) переменных с сохранением максимума полезной информации.
После изменения состава или формы регрессоров модель пересчитывают и повторяют этапы EDA и CDA. Именно эта цикличность делает создание качественной торговой системы сложным многоступенчатым процессом. Нельзя просто "скормить" сырые данные статистическому пакету и рассчитывать на получение готового грааля. Автоматизация покрывает вычислительно сложные этапы; проектирование модели остаётся на исследователе. Здесь интуиция трейдера и его понимание рыночного контекста должны гармонично сочетаться с жёсткой дисциплиной математического аппарата статистики. Только такой синтез позволяет отличить реальную рыночную неэффективность от случайного совпадения в цифрах.
Применение регрессии
Как и при изучении парной регрессии, после проверки адекватности самой модели переходим к извлечению из неё конкретной торговой пользы. Когда мы убедились, что модель корректна, возникают два главных вопроса: "какие факторы действительно двигают цену?" и "где будет цена в следующий момент времени?".
Оценка значимости отдельных регрессоров. Даже если модель в целом прошла F-тест, это не значит, что каждый включённый в неё индикатор полезен. Для проверки вклада каждого фактора используются t-статистики и соответствующие им p-value.
- t-статистика — это отношение полученного коэффициента к его стандартной ошибке: t = bᵢ / SE(bᵢ). Она показывает, во сколько раз значение коэффициента превышает погрешность его определения. Если абсолютное значение |t| больше критического (для большой выборки это обычно 1.96), регрессор считается статистически значимым.
- p-value — это вероятность того, что связь между регрессором и ценой случайна. В трейдинге стандартом считается пороговое значение 0.05. Если p-value выше, этот фактор — кандидат на исключение из модели, так как его влияние неотличимо от шума.
Прогнозирование. Как и ранее для простых видов регрессии, вычисляется несколько видов прогнозов:
- Точечный прогноз. В рамках регрессионной модели точечный прогноз — это математическое ожидание зависимой переменной при заданных значениях факторов. Для его получения достаточно подставить новые значения предикторов в уравнение регрессии. При этом случайная ошибка игнорируется, так как её математическое ожидание по определению равно нулю.
- Однако точечный прогноз (конкретное число) практически всегда будет ошибочным. Гораздо важнее получить интервальный прогноз, который задаёт "коридор" ожидаемых значений. Различают два типа интервалов:
- Доверительный интервал (Confidence Interval): показывает, где в среднем будет находиться зависимая переменная. Он отражает только неопределённость самой модели (погрешность оценки коэффициентов).
- Прогнозный интервал (Prediction Interval): всегда шире доверительного, так как включает в себя не только ошибки модели, но и будущую реализацию случайного шума.
Для трейдера важен именно прогнозный интервал. Он позволяет выставить адекватные стоп-лоссы и тейк-профиты. Выход цены за границы 95-процентного прогнозного интервала говорит, что произошло экстраординарное событие или структура рынка изменилась настолько, что модель больше не актуальна.
Практическое использование прогноза на примере приращений цены. Когда зависимой переменной Yt выступает приращение цены (Pt - Pt-1), интерпретация результатов становится максимально прикладной. В этом случае модель выдаёт нам не просто "справедливую цену", а направление ожидаемого движения и степень уверенности в нём.
- Точечный прогноз и направление сделки. Если прогнозное значение Yt+1 положительно и статистически значимо, модель генерирует сигнал на покупку, если отрицательно — на продажу. Однако в трейдинге важно не только направление, но и запас прочности.
- Использование прогнозного интервала для управления риском. Прогнозный интервал даёт нам границы, внутри которых цена останется с заданной вероятностью (например, 95%).
- Оценка волатильности: ширина интервала прямо говорит о текущей неопределенности. Если интервал резко расширяется, модель сигнализирует о росте рыночного шума, что требует снижения объема позиции.
- Выход за границы: если реальное приращение цены выходит за пределы прогнозного интервала, это часто интерпретируется как "событие разладки". Для трейдера это повод немедленно закрыть позицию, так как рынок ведёт себя не адекватно текущей модели.
- Фильтрация сигналов. Опытные трейдеры редко входят в сделку при любом значении прогноза, отличном от нуля. Обычно устанавливается порог — например, прогнозное приращение должно превышать ожидаемую транзакционную издержку (спред + комиссия) и некоторую величину "шума". Если прогноз модели меньше этого порога, торговое решение не принимается.
- Комбинирование с вероятностью. Зная точечный прогноз и стандартную ошибку модели, мы можем рассчитать вероятность того, что цена вырастет более чем на заданную величину. Это позволяет строить стратегии с фиксированным математическим ожиданием, входя в рынок только тогда, когда вероятность успеха превышает, скажем, 60%.
Практические примеры
В этой статье мы сосредоточились на изучении детерминированных регрессоров. В трейдерской практике к ним относятся в основном факторы, имеющие прямую привязку к временной шкале. В отличие от стохастических (случайных) индикаторов, значения детерминированных переменных известны нам заранее для любого момента в прошлом или будущем. Ниже мы рассмотрим три практических сценария использования таких регрессоров в анализе рыночных данных:
- Нелинейный тренд: как проверить и описать сложную траекторию цены во времени.
- Учёт дня недели: поиск календарных аномалий в доходности активов.
- Влияние новостей на волатильность: оценка изменения рыночного риска в моменты выхода важной макростатистики.
Первые два примера продолжают исследование поведения акций Гугл, начатое в прошлой статье. Третий пример касается курса евро к американскому доллару.
Пример 1: нелинейный тренд (скрипт trend.mq5)
В приложении к прошлой статье мы строили парную регрессию логарифма цены на время (номера баров). Результат оказался неудовлетворительным: остатки не соответствовали требованиям модели. Напомним, почему поведение остатков в виде "белого шума" критически важно для трейдера:
- Адекватность модели. Если остатки имеют структуру, модель "не видит" часть закономерностей. Даже если тренд существует, неверная спецификация делает прогнозы бесполезными.
- Точность оценок. При нарушении свойств остатков мы не можем доверять вычисленным коэффициентам — они становятся неэффективными.
- Риск серийных убытков. Вместо случайного чередования мелких плюсов и минусов мы получаем длинные серии ошибок в одну сторону. Для торгового счёта это означает затяжные просадки, которые не компенсируются на дистанции.
Построим регрессию с линейным трендом. Мы получаем внешне оптимистичный коэффициент детерминации:
R2 = 0.661
Проверим модель на нелинейность с помощью теста Рамсея (RESET). Результаты:
F = 255.324, p-value = 0.000
Практически нулевое p-value однозначно указывает на ошибку спецификации: линейная форма слишком груба, необходимо добавить нелинейные компоненты. Следуя рекомендации теста, расширим модель, добавив квадраты и кубы номеров баров. В такой конфигурации коэффициент детерминации ожидаемо вырастает:
R2 = 0.831
Казалось бы, модель стала значительно лучше. Однако взгляд на график остатков разбивает эти иллюзии. Мы снова видим "волны" и затяжные отклонения вместо хаотичных колебаний вокруг нуля. Коррелограмма и тест Льюнга—Бокса окончательно подтверждают непригодность модели:


Q = 3819.190, p-value = 0.000
Вывод: Даже полиномиальный тренд не смог превратить остатки в белый шум. Мы имеем дело с типичной "ложной регрессией". Увеличение степени полинома не исправит ситуацию — сама идея того, что цена просто колеблется вокруг жёстко заданной линии времени (TS-модель), в данном случае ошибочна. Понимание подобных проблем в своё время заставило эконометрику перейти к изучению авторегрессионных моделей, где будущее зависит от прошлого, а не только от текущего момента времени.
Пример 2: дни недели (скрипт days.mq5)
В анализе цен часто ищут календарные закономерности — зависимости от часов суток, дней недели, кварталов, месяцев или годов. Однако такие паттерны часто оказываются нестационарными и противоречивыми. Мы не углубляемся в эту тему, так как серия статей даёт общий обзор эконометрики, а не детальный разбор конкретных эффектов. К тому же эконометрика не заменяет предметные знания: числовые закономерности должны подтверждаться пониманием механики рынка. Например, суточные циклы — сессионным графиком, а квартальные или годовые — налоговым календарём.
В примере разберём использование фиктивных переменных для дней недели. Зависимая переменная — логарифм дневной доходности. Поскольку рабочих дней пять, регрессоров нужно четыре: каждый из понедельника по четверг равен 1 в свой день и 0 иначе, в пятницу все — 0. Пять переменных вызовут мультиколлинеарность, так как их сумма станет константой. Коэффициент при константе соответствует базовому уровню, за который у нас принят логарифм доходности в пятницу. Остальные коэффициенты показывают, насколько меняется зависимая переменная в остальные дни по сравнению с базовым уровнем.
В модели коэффициенты детерминации низкие:
R-squared: 0.029
R-squared adjusted: 0.021
Остатки похожи на белый шум — это подтверждают график остатков, коррелограмма и тест Льюнга—Бокса. Проблема только с выбросами (толстыми хвостами).


Ljung-Box test result:
Q = 11.124, p-value = 0.348
Проверка гауссовости (EPDF, QQ-plot, тест Ярке—Бера) показывает нарушения, особенно в хвостах из-за выбросов.


Jarque-Bera test result:
JB = 422.580, p-value = 0.000
Проверим значимость модели в целом с помощью F-теста по всем регрессорам. Результат неожиданно высокий (p-value значительно меньше 0.05) для такого низкого R-квадрат:
F-test for all regressors result:
F = 3.668, p-value = 0.006
Чтобы разобраться, оценим регрессоры по отдельности. В табличке ниже каждая строка соответствует одному регрессору. Значим только четверг (p-value < 0.05) в последней строке:
[estimate] [std_error] [t_stat] [p_value] [conf_low] [conf_high]
[0] 0.00083 0.00155 0.53562 0.59246 -0.00221 0.00386
[1] 0.00254 0.00223 1.14056 0.25461 -0.00183 0.00691
[2] 0.00096 0.00218 0.44247 0.65835 -0.00331 0.00524
[3] 0.00058 0.00219 0.26584 0.79048 -0.00372 0.00489
[4] -0.00544 0.00221 -2.45496 0.01444 -0.00979 -0.00109
В целом, рост "размазан" по всем дням, кроме четверга. Есть заметное падение акций по четвергам (estimate = -0.00544) в сравнении с почти нулевым ростом по пятницам (estimate = 0.00083). Проверим возможное влияние выбросов посредством анализа расстояний Кука. Два самых больших выброса приходятся не на четверг, превышение консервативного порога (4 / n = 0.0081) умеренное (max = 0.0727, ratio = 8.98). До критического уровня 1, когда влияние выбросов несомненно, довольно далеко.
Cook distance: max = 0.0727, threshold = 0.0081, ratio = 8.98
outliers in the data (time, return, regressors):
2025.04.09, 9.87%, [1,0,0,1,0]
2025.05.07, -7.77%, [1,0,0,1,0]
Дальнейшее исследование проблемы уже сильно выходит за рамки нашей небольшой статьи. Нужны гораздо более сложные модели, поэтому оставляем вопрос открытым. Заметим лишь, что даже при наличии реального эффекта нужна постоянная проверка его стабильности. Для этого пригодится методика поиска разладки моделей, которую мы разберём после авторегрессии.
Пример 3: дни новостей (скрипт news.mq5)
Влияние макроэкономических новостей на форекс неоспоримо и многогранно. Мы коснёмся влияния новостей на дневную волатильность курса EURUSD. Оцениваем влияние самого факта выхода новости, а не конкретных значений новостных индикаторов. Это позволяет нам оставаться в рамках темы статьи, поскольку даты новостей известны заранее (детерминированные регрессоры).
Для каждого из регионов валютной пары (США и Еврозона) используется один и тот же набор значимых макроэкономических индикаторов. В их списке: ВВП, уровень безработицы, индекс инфляции, ставка ЦБ и торговый баланс. Для определения дней с новостями используется экономический календарь платформы Metatrader 5. В API этого календаря каждый вид события определяется уникальным идентификационным номером. Для определения этого номера использовался скрипт events2file.mq5, который для заданного региона печатает файл с полным списком доступных событий (номер и название). В качестве зависимой переменной используется логарифм отношения дневного максимума к минимуму. В модели два фиктивных регрессора: первый равен 1 при наличии новости в США и 0 при отсутствии, второй — то же самое для Еврозоны. Константа соответствует доходности в дни отсутствия каких-либо новостей.
Рассчитаем нашу регрессию. Остатки модели достаточно сильно отличаются от белого шума. Особенно сильно нарушена нормальность распределения, что в основном определяется использованной нами независимой переменной. Для более точного исследования нужно уточнить определение волатильности за день, например рассчитать её на основе внутридневных баров меньших таймфреймов. Но для предварительного анализа наша упрощённая модель вполне подходит. Посмотрим, какие выводы можно из неё получить. Расчёт статистики для отдельных коэффициентов модели показывает, что новости из США значимы (малое p-value во второй строке), а из Еврозоны — нет (большое p-value в третьей строке).
[estimate] [std_error] [t_stat] [p_value] [conf_low] [conf_high]
[0] 0.00630 0.00018 34.18283 0.00000 0.00594 0.00667
[1] 0.00166 0.00038 4.39152 0.00001 0.00092 0.00240
[2] 0.00021 0.00037 0.57184 0.56768 -0.00051 0.00093
Сравним прогнозы волатильности для дней с новостями из США и для дней без новостей. В среднем волатильность вырастает примерно на четверть при наличии новостей из США (с 0.63% до 0.80%). Данный прогноз можно использовать, например, для переноса стоп-лосса, если он рассчитывается на основе дневной волатильности. Только стоит учитывать, что данная модель нуждается в существенном уточнении и развитии. Это хорошо видно по тому, насколько широк прогнозный интервал по сравнению с доверительным — слишком большая доля изменчивости независимой переменной остаётся неучтённой в модели (переходит в шум).
volatility prognose for just US news in percentages for confidence level: 0.90
point prognose: 0.80%
confidence interval: from 0.74% to 0.86%
prognose interval: from 0.23% to 1.38%
*******************************************************
volatility prognose for NO news in percentages for confidence level: 0.90
point prognose: 0.63%
confidence interval: from 0.60% to 0.66%
prognose interval: from 0.06% to 1.21%
Заключение
Переход от одномерного взгляда к множественной регрессии — это шаг к созданию полноценного "паспорта" торговой стратегии. Мы увидели, что добавление новых факторов не просто усложняет расчёты, а позволяет более точно фильтровать рыночный шум и выявлять чистую альфу там, где раньше виделся хаос. Главное преимущество здесь — возможность оценить, насколько устойчива связь актива с внешним миром и не перегружена ли модель лишними сущностями.
Однако стоит помнить: детерминированные регрессоры — это только фундамент. Мы научились описывать статичные связи, но рынок остаётся динамической системой. Понимание того, как коэффициенты распределяют веса между факторами, даёт нам базу для следующего этапа — работы со стохастическими регрессорами. Это позволит нам перейти от описания статичных связей к учёту динамики рынка, где математический аппарат становится более гибким и адаптированным к изменчивой природе финансовых инструментов.
Приложенные файлы
| № | Имя | Описание |
|---|---|---|
| 1 | EconometricsA.mqh | Заголовочный файл со всеми необходимыми функциями (для массивов) для расчёта параметров простой регрессии, построения графиков и проведения статистических тестов. |
| 2 | EconometricsM.mqh | Заголовочный файл со всеми необходимыми функциями (для векторов и матриц) для расчёта параметров множественной регрессии, построения графиков и проведения статистических тестов. |
| 3 | trend.mq5 | Скрипт для расчёта и анализа кубического тренда для логарифма цен. |
| 4 | days.mq5 | Скрипт для анализа закономерностей логарифмов доходностей, связанных с днём недели. |
| 5 | news.mq5 | Скрипт для анализа закономерностей логарифмов доходностей, связанных с выходом новостей. |
| 6 | events2file.mq5 | Вспомогательный скрипт для вывода всех видов новостей для заданного региона. |
| 7 | reg2.zip | Архив со всеми файлами. |
Предупреждение: все права на данные материалы принадлежат MetaQuotes Ltd. Полная или частичная перепечатка запрещена.
Данная статья написана пользователем сайта и отражает его личную точку зрения. Компания MetaQuotes Ltd не несет ответственности за достоверность представленной информации, а также за возможные последствия использования описанных решений, стратегий или рекомендаций.
Опубликуйте код статьи в MQL5 Algo Forge за 10 минут: пошаговый гайд
Разработка инструментария для анализа Price Action (Часть 47): Отслеживание торговых сессий Forex и пробоев в MetaTrader 5
Переосмысливаем классические стратегии (Часть 16): Стратегия пробоя двойных полос Боллинджера
Автоматизация торговых стратегий в MQL5 (Часть 31): Создание системы распознавания гармонического паттерна "3 Drives" с использованием Price Action
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования