Обобщённые линейные модели
Введение
Обобщённая линейная модель (GLM) — это гибкое обобщение обычной линейной регрессии, которое допускает, что переменная отклика может иметь ненормальное распределение. GLM состоит из трёх компонентов:
- Случайный компонент: Определяет распределение переменной отклика (например, нормальное, биномиальное, Пуассоновское).
- Систематический компонент: Определяет линейный предиктор, который представляет собой линейную комбинацию неизвестных параметров и известных ковариат.
- Функция связи: Устанавливает связь между математическим ожиданием распределения переменной отклика и линейным предиктором.
В контексте алгоритмической торговли GLM могут применяться для моделирования и прогнозирования данных финансовых временных рядов, оценки риска торговых стратегий и оптимизации распределения портфеля. В этой статье будет рассмотрена теория GLM, их применение в алгоритмической торговле и приведены практические примеры.
Компоненты GLM
Случайный компонент
Случайный компонент GLM определяет условное распределение переменной отклика Y. Распространённые распределения, используемые в GLM, включают:
- Нормальное распределение для непрерывных переменных отклика.
- Биномиальное распределение для бинарных переменных исхода.
- Распределение Пуассона для счётных данных.
Систематический компонент
Систематический компонент GLM определяет линейный предиктор η. Он имеет следующую форму:
η = β₀ + Σᵢ₌₁ᵖ βᵢXᵢ
Здесь β₀ — свободный член, βᵢ — коэффициенты, а Xᵢ — ковариаты.
Функция связи
Функция связи g(·) преобразует математическое ожидание массива переменной отклика μ в линейный предиктор η:
g(μ) = η
В зависимости от распределения переменной отклика используются различные функции связи. Например:
- Тождественная связь для нормального распределения: g(μ) = μ
- Логит-связь для биномиального распределения: g(μ) = log(μ/(1-μ))
- Логарифмическая связь для распределения Пуассона: g(μ) = log(μ)
Применение в алгоритмической торговле
Прогнозирование движения цен
GLM могут использоваться для прогнозирования будущего движения цен финансовых инструментов путём включения различных рыночных факторов и индикаторов в качестве ковариат. Например, можно использовать логистическую регрессию (тип GLM) для прогнозирования направления цены актива (вверх или вниз) на основе прошлых ценовых данных, объёма и других рыночных индикаторов.
Оценка риска
Моделируя взаимосвязь между различными финансовыми переменными, GLM могут использоваться для оценки риска, связанного с определёнными торговыми стратегиями или портфелями. Например, модель регрессии Пуассона может использоваться для моделирования частоты экстремальных убытков (просадок) в торговой стратегии, позволяя трейдерам лучше понять профиль риска и доходности.
Оптимизация портфеля
В оптимизации портфеля GLM могут помочь в моделировании ожидаемой доходности и рисков различных активов, что критически важно для построения оптимального портфеля. Используя GLM для учёта ненормальности в доходностях активов, можно разработать более надёжные и точные модели оптимизации.
Практические примеры
Пример 1: Логистическая регрессия для прогнозирования направления цены акции
Рассмотрим сценарий, когда трейдер хочет предсказать, пойдёт ли цена акции вверх или вниз на основе исторических ценовых данных и технических индикаторов (например, скользящих средних, индекса относительной силы (RSI)). Модель логистической регрессии может быть настроена следующим образом:
- Подготовка данных: Соберите исторические данные о ценах и вычислите технические индикаторы.
- Определение переменной отклика: Пусть переменная отклика Y равна 1, если цена идёт вверх, и 0, если вниз.
- Подгонка модели логистической регрессии: ```python import pandas as pd import statsmodels.api as sm
Предположим, df — это DataFrame с историческими ценовыми данными и техническими индикаторами
X = df[[‘moving_average’, ‘RSI’]] # Ковариаты y = df[‘price_direction’] # Переменная отклика
Добавить константу в модель (свободный член)
X = sm.add_constant(X)
Подгонка логистической регрессии
model = sm.Logit(y, X) result = model.fit()
Вывод результатов
print(result.summary())
### Пример 2: Регрессия Пуассона для моделирования частоты сделок
Торговая фирма может захотеть смоделировать частоту сделок, выполняемых за определённый период, для оптимизации своей стратегии исполнения. Модель регрессии Пуассона может быть настроена следующим образом:
1. **Подготовка данных**: Соберите исторические данные о количестве сделок за период и потенциальных предикторах (например, рыночная волатильность, объём торгов).
2. **Определение переменной отклика**: Пусть переменная отклика Y — это количество сделок.
3. **Подгонка модели регрессии Пуассона**:
```python
import pandas as pd
import statsmodels.api as sm
# Предположим, df — это DataFrame с историческими данными о количестве сделок и предикторах
X = df[['market_volatility', 'trading_volume']] # Ковариаты
y = df['trade_count'] # Переменная отклика
# Добавить константу в модель (свободный член)
X = sm.add_constant(X)
# Подгонка регрессии Пуассона
model = sm.GLM(y, X, family=sm.families.Poisson())
result = model.fit()
# Вывод результатов
print(result.summary())
Заключение
Обобщённые линейные модели — это мощные инструменты, которые могут применяться к различным задачам в алгоритмической торговле. Они предлагают гибкость в моделировании различных типов переменных отклика и могут включать широкий спектр ковариат. Используя GLM, трейдеры и количественные аналитики могут строить более точные прогнозные модели, оценивать риски и оптимизировать свои торговые стратегии и портфели.
Для дальнейшего изучения или практического применения можно исследовать различные ресурсы, библиотеки и платформы, такие как QuantConnect, Alpaca и другие, которые предоставляют инструменты и среды для количественной и алгоритмической торговли.