Перейти к содержимому

Глава 103: Каузальные леса в финансах

Обзор

Каузальные леса — непараметрический метод машинного обучения для оценки неоднородных эффектов лечения, то есть того, как причинное воздействие вмешательства меняется в зависимости от различных единиц и контекстов. Введённые Вагером и Атей (2018) и обобщённые в рамках обобщённых случайных лесов (GRF) Атей, Тибширани и Вагером (2019), каузальные леса расширяют алгоритм случайного леса для таргетирования условного среднего эффекта лечения (CATE), а не условного среднего результата. В отличие от методов, оценивающих единственный средний эффект лечения, каузальные леса производят персонализированную оценку эффекта для каждого наблюдения, обеспечивая детальный анализ неоднородности, бесценный в финансовых приложениях.

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

В данной главе развивается теория и практика каузальных лесов для финансовых приложений, рассматриваются алгоритм GRF, честное построение деревьев, локальное центрирование и построение доверительных интервалов. Предоставляются полные реализации на Python и Rust с использованием данных yfinance и Bybit, с комплексной системой бэктестинга, демонстрирующей превосходство стратегий на основе CATE над подходами на основе ATE.

Содержание

  1. Введение в каузальные леса
  2. Математическая основа
  3. Каузальные леса против конкурирующих методов
  4. Торговые приложения
  5. Реализация на Python
  6. Реализация на Rust
  7. Практические примеры с данными акций и криптовалют
  8. Система бэктестинга
  9. Оценка производительности
  10. Дальнейшие направления

Введение в каузальные леса

Проблема: неоднородность эффектов лечения на рынках

Финансовые рынки характеризуются крайней неоднородностью. Один и тот же сигнал, генерирующий +3% альфы в акциях малой капитализации, может давать -0,5% альфы в крупных компаниях. Сюрприз прибыли важнее, когда охват аналитиков низок. Экстремальная ставка финансирования предсказывает более сильные развороты в режимах низкой ликвидности. Методы, оценивающие только средний эффект лечения (ATE), полностью упускают эту структуру.

Подход ATE (неполный):

ATE = E[Y(1) - Y(0)] = θ (одно число)

Подход CATE (более богатый):

CATE(x) = τ(x) = E[Y(1) - Y(0) | X = x] (функция признаков)

CATE отвечает на вопрос: «Для актива с характеристиками X = x каков причинный эффект лечения?»

Решение с каузальными лесами

Каузальные леса оценивают τ(x) непараметрически, адаптируя случайные леса для таргетирования неоднородности эффектов лечения. Ключевые нововведения по сравнению со стандартными лесами:

  1. Честное разбиение: разные подвыборки используются для построения структуры дерева и оценки значений листьев — устраняет смещение переобучения в оценках эффектов
  2. Неймановско-ортогональные оценки: каждое дерево таргетирует псевдорезультат, корректирующий конфаундинг (через остаточизацию, как в DML)
  3. Локальное центрирование: предварительная остаточизация Y и D с использованием кросс-подогнанных моделей до запуска леса, улучшающая производительность в конечных выборках при сильном конфаундинге

В результате получается лес, производящий асимптотически нормальные, поточечно состоятельные оценки CATE с допустимыми доверительными интервалами — редкость в непараметрическом причинном выводе.

Почему каузальные леса работают для трейдинга

АспектМетоды среднего эффектаКаузальный лес
ДетализацияОдно числоОценка на актив, на условие
Обнаружение неоднородностиНетДа (через важность переменных)
Доверительные интервалыДа (для ATE)Да (поточечно, для CATE)
Размер позицииРавномерныйПропорциональный τ̂(x)
Чувствительность к режимуНе явнаяЕстественно захватывается
Защита от переобученияН/ПГарантии честности

Математическая основа

Обобщённые случайные леса (GRF)

Каузальные леса — частный случай GRF, который решает задачу локальных оценивающих уравнений. Для параметра θ(x), удовлетворяющего:

E[ψ_{Y,D}(θ(x)) | X = x] = 0

GRF строит адаптивные веса ядра α_i(x) с помощью леса, затем решает:

θ̂(x) = argmin_θ Σᵢ αᵢ(x) · ψ_{Yᵢ,Dᵢ}(θ)

Для каузального леса функция оценки — это неймановско-ортогональная оценка из PLM:

ψ_{Y,D}(τ) = (Y - ℓ(X) - τ(D - m(X))) · (D - m(X))

Где ℓ(X) = E[Y|X] и m(X) = E[D|X] — функции мешанины, оцениваемые вспомогательными регрессиями (локальное центрирование).

Построение дерева: честное разбиение

Честность означает разбиение выборки на две части:

  • S_J (разбивающая выборка): используется для определения структуры дерева (переменных разбиения и точек разреза)
  • S_I (оценивающая выборка): используется для вычисления оценок листьев

Для листа L(x), содержащего запросную точку x:

τ̂(x) = (Σᵢ∈Sᵢ∩L(x) α̃ᵢ Ũᵢ) / (Σᵢ∈Sᵢ∩L(x) α̃ᵢ Ṽᵢ)

Где Ũᵢ = Yᵢ - ℓ̂(Xᵢ) и Ṽᵢ = Dᵢ - m̂(Xᵢ) — остатки от локального центрирования.

Критерий разбиения

Критерий разбиения каузального леса максимизирует неоднородность эффектов лечения в дочерних узлах:

Δ(C₁, C₂) = n₁n₂/(n₁+n₂) · (τ̂(C₁) - τ̂(C₂))²

Где C₁, C₂ — кандидаты двух дочерних узлов, а τ̂(Cₖ) — оценённый эффект внутри каждой группы.

Асимптотическая теория и доверительные интервалы

При условиях регулярности оценщик каузального леса удовлетворяет поточечной нормальности:

(τ̂(x) - τ(x)) / σ̂(x) → N(0, 1)

Где σ̂(x) оценивается через оценщик дисперсии инфинитезимального джекнайфа (IJ):

σ̂²_IJ(x) = Σᵢ Cov²(Tᵢ, αᵢ(x))

Tᵢ считает, сколько деревьев в лесу включают наблюдение i. Этот оценщик IJ вычислительно эффективен и не требует дорогостоящего бутстрепа.

Важность переменных

Каузальные леса предоставляют естественную меру важности переменных:

VI(j) = Σ_разбиений (прирост от использования переменной j) / всего разбиений

Это определяет, какие признаки движут неоднородностью эффектов лечения — ключевое для понимания почему эффект варьируется.


Каузальные леса против конкурирующих методов

Сравнение оценщиков неоднородных эффектов лечения

МетодНепараметрическийДопустимые ДИЧестностьВысокоразм. XСкорость
Линейная модель взаимодействияНетДаН/ПНетБыстро
BART (байесовский)ДаДа (байесовский)НетУмеренноМедленно
Мета-обучатели (T/S/X)Да (с базовым ML)НетНетДаУмеренно
Каузальный лес (GRF)ДаДа (частотный)ДаДаУмеренно
Нейронные CATE-оценщикиДаОбычно нетНетДаМедленно/Быстро

Сравнение мета-обучателей

Мета-обучатели — популярные альтернативы; каузальные леса превосходят их в большинстве условий:

T-обучатель: раздельные модели результатов для леченных и контрольных; разница — CATE. Прост, но смещён при неслучайном назначении лечения.

S-обучатель: единая модель с лечением как признаком. Регуляризация сжимает CATE к нулю.

X-обучатель (Кюнцель и соавт.): итеративный подход с использованием остатков лечения и контроля. Хорош при несбалансированном лечении.

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


Торговые приложения

1. Оценка CATE для сюрприза прибыли

Применение: для каждой акции оценить персонализированный причинный эффект сюрприза прибыли на 20-дневную посланнонсментную доходность при заданных характеристиках компании.

  • Лечение D: стандартизированная неожиданная прибыль (SUE)
  • Результат Y: 20-дневная кумулятивная доходность после объявления
  • Признаки X: рыночная капитализация, число аналитиков, институциональное владение %, короткий интерес, предшествующий 3-месячный моментум, сектор, сезонный фактор объявлений

Торговое применение:

# Оценить CATE для каждой акции во вселенной
cate_estimates = causal_forest.predict(X_test)
# Лонг акций с наибольшим положительным CATE при сильной прибыли
# Шорт акций с наименьшим (наиболее отрицательным) CATE при слабой прибыли
# Размер позиции пропорционален |τ̂(x)| / σ̂(x) (взвешивание как Шарп)

2. Режимно-условная сила сигнала

Применение: оценить, как причинный эффект сигнала моментума на доходность варьируется с рыночным режимом (уровень VIX, кредитный спред, кривая доходности).

  • Лечение D: дециль кросс-секционного моментума (верхний = 1, нижний = 0)
  • Результат Y: избыточная доходность следующего месяца
  • Признаки X (переменные режима): перцентиль VIX, изменение спреда HY, наклон кривой доходности, корреляция акций и облигаций (30д), кросс-секционный разброс доходности

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

3. Неоднородный эффект ставки финансирования крипто (Bybit)

Применение: оценить CATE экстремальных ставок финансирования на последующую доходность BTC/ETH при условии состояния рыночной микроструктуры.

  • Лечение D: бинарный индикатор экстремальной ставки финансирования (|финансирование| > 0,05%)
  • Результат Y: 8-часовая доходность после наблюдения ставки финансирования
  • Признаки X: изменение OI, дисбаланс объёма (соотношение покупок/продаж), спред, 24-часовая волатильность, доминирование BTC, соотношение лонг/шорт (данные Bybit)

Открытие: каузальный лес обнаруживает, что экстремальные ставки финансирования предсказывают более сильный разворот при высоком OI и снижающемся объёме — механизм, обусловленный ликвидностью, не захватываемый анализом ATE.

4. Оптимальный размер ордера через CATE

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

  • Лечение D: размер ордера (% от среднедневного объёма)
  • Результат Y: отклонение средневзвешенной цены (проскальзывание)
  • Признаки X: время суток, спред, глубина по лучшей цене, недавняя волатильность, направление ордера

Применение: оценённый CATE τ̂(x) даёт предельное влияние на цену для данного рыночного состояния, позволяя истинно адаптивное определение размера ордеров.

5. Оценка политики: корректировка факторной экспозиции

Применение: оценить неоднородный причинный эффект изменения факторной экспозиции (например, увеличения беты) на коэффициент Шарпа портфеля в различных рыночных режимах.

  • Лечение D: изменение беты портфеля (построенное через фьючерсы)
  • Результат Y: 30-дневный форвардный коэффициент Шарпа
  • Признаки X: режим рыночной волатильности, оценка переполненности фактора, фаза экономического цикла, размер портфеля

Применение: определяет, когда (в каком режиме/состоянии портфеля) увеличение беты улучшает доходность с поправкой на риск, позволяя динамические наклоны факторов.


Реализация на Python

Основной модуль

Реализация на Python предоставляет:

  1. CausalForestEstimator: обёртка вокруг econml / grf с утилитами финансовых данных
  2. LocalCenteringPipeline: предварительная остаточизация Y и D с использованием кросс-подогнанных моделей ML
  3. CATESignalGenerator: оценки CATE на актив для построения сигналов
  4. CATEBacktester: бэктестинг портфеля с взвешиванием по CATE

Базовое использование

from python.causal_forest import CausalForestEstimator
from python.data_loader import CausalForestDataLoader
from econml.grf import CausalForest
import yfinance as yf
# Загрузка данных акций с признаками
loader = CausalForestDataLoader(
universe="sp500",
source="yfinance",
feature_set="fundamental_technical",
lookback_years=5,
)
data = loader.load(start_date="2019-01-01", end_date="2024-01-01")
# Подгонка каузального леса
cf = CausalForestEstimator(
n_estimators=2000,
min_samples_leaf=10,
max_depth=None,
honest=True, # Использовать честное разбиение
local_centering=True, # Предварительная остаточизация (рекомендуется)
inference=True, # Вычислять доверительные интервалы
n_jobs=-1,
)
cf.fit(
Y=data["forward_return"],
T=data["earnings_surprise"],
X=data["features"],
)
# Оценить CATE для тестового набора
cate_estimates = cf.effect(data["features_test"])
cate_intervals = cf.effect_interval(data["features_test"], alpha=0.05)
print(f"Средний CATE: {cate_estimates.mean():.4f}")
print(f"Стд CATE: {cate_estimates.std():.4f}")
print(f"Доля CATE > 0: {(cate_estimates > 0).mean():.1%}")

Построение CATE-портфеля

from python.signals import CATEPortfolioSignal
import pandas as pd
# Получение признаков крипто с Bybit для оценки CATE
from python.bybit_loader import BybitDataLoader
bybit = BybitDataLoader()
crypto_features = bybit.fetch_multi_asset_features(
symbols=["BTCUSDT", "ETHUSDT", "SOLUSDT", "BNBUSDT"],
interval="4h",
limit=2000,
)
portfolio_builder = CATEPortfolioSignal(
causal_forest=cf,
min_cate_zscore=1.0, # Минимальный нормализованный CATE для торговли
max_position_size=0.20, # Макс 20% в одной позиции
use_ci_weighting=True, # Взвешивание по CATE / σ(CATE)
)
portfolio = portfolio_builder.construct(
features=crypto_features,
treatment="funding_extreme",
)
print(portfolio[["symbol", "cate", "cate_se", "position_weight"]].to_string())

Анализ важности переменных

# Определить, какие признаки движут неоднородностью эффектов лечения
importance = cf.feature_importances_
feature_names = data["feature_names"]
importance_df = pd.DataFrame({
"feature": feature_names,
"importance": importance,
}).sort_values("importance", ascending=False)
print("Главные движущие силы неоднородности сюрприза прибыли:")
print(importance_df.head(10).to_string(index=False))

Реализация на Rust

Обзор

Реализация на Rust обеспечивает высокопроизводительный каузальный лес для производственной оценки CATE с данными Bybit:

  • reqwest и tokio для интеграции с Bybit API
  • Собственная реализация честного дерева с субвыборкой
  • Оценка дисперсии инфинитезимального джекнайфа для доверительных интервалов
  • rayon для параллельного обучения и вывода деревьев

Быстрый старт

use causal_forest_trading::{
CausalForest,
BybitClient,
FeatureMatrix,
CausalForestConfig,
BacktestEngine,
};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
// Получение мультиактивных данных с Bybit
let client = BybitClient::new("YOUR_API_KEY", "YOUR_API_SECRET");
let btc_data = client.fetch_klines("BTCUSDT", "240", 2000).await?;
let eth_data = client.fetch_klines("ETHUSDT", "240", 2000).await?;
let sol_data = client.fetch_klines("SOLUSDT", "240", 2000).await?;
// Построение матрицы признаков
let features = FeatureMatrix::from_multi_asset(vec![
&btc_data, &eth_data, &sol_data,
])
.with_technical_features()
.with_microstructure_features()
.build()?;
// Лечение: экстремальная ставка финансирования; Результат: доходность следующих 8ч
let treatment = btc_data.funding_extreme_indicator(threshold=0.0005);
let outcome = btc_data.forward_return(1);
// Настройка и подгонка каузального леса
let config = CausalForestConfig {
n_estimators: 2000,
min_samples_leaf: 10,
sample_fraction: 0.5,
honest: true,
local_centering: true,
compute_oob_predictions: true,
};
let mut forest = CausalForest::new(config);
forest.fit(&outcome, &treatment, &features)?;
// Оценить CATE для последнего наблюдения
let latest_features = features.last_row();
let (cate, cate_se) = forest.predict_with_se(&latest_features)?;
println!("Оценка CATE: {:.4}", cate);
println!("Ст. ош. CATE: {:.4}", cate_se);
println!("95% ДИ: ({:.4}, {:.4})", cate - 1.96*cate_se, cate + 1.96*cate_se);
// Важность переменных
let importance = forest.feature_importances();
println!("Топ-3 движущих силы CATE: {:?}", &importance[..3]);
Ok(())
}

Структура проекта

103_causal_forests_finance/
├── Cargo.toml
├── src/
│ ├── lib.rs
│ ├── model/
│ │ ├── mod.rs
│ │ └── causal_forest.rs
│ ├── data/
│ │ ├── mod.rs
│ │ └── bybit.rs
│ ├── backtest/
│ │ ├── mod.rs
│ │ └── engine.rs
│ └── trading/
│ ├── mod.rs
│ └── signals.rs
└── examples/
├── basic_causal_forest.rs
├── bybit_hte_analysis.rs
└── backtest_strategy.rs

Практические примеры с данными акций и криптовалют

Пример 1: Неоднородные эффекты сюрприза прибыли (S&P 500, yfinance)

Оценка персонализированного причинного влияния сюрприза прибыли на посланнонсментный дрейф:

  1. Лечение D: стандартизированная неожиданная прибыль (верхний/нижний квинтиль = 1/0)
  2. Результат Y: 20-дневная избыточная доходность после объявления
  3. Признаки X: 25 признаков, включая логарифм рыночной капитализации, число аналитиков, институциональное владение, 3-месячный моментум, реализованная волатильность (21д), коэффициент короткого интереса, секторальный one-hot (11 секторов), дивидендная доходность, P/E
  4. Лес: 2000 честных причинных деревьев, мин. 10 наблюдений на лист, локальное центрирование с градиентным бустингом мешанины
# Результаты для событий прибыли S&P 500 (2018-2024, N=8 412 событий):
# Средний CATE (ATE): +2,1% (близко к оценке МНК +1,9%)
# Стандартное отклонение CATE: 1,8% ← большая неоднородность
# Межквартильный диапазон CATE: [+0,6%, +3,4%]
#
# Главные движущие силы CATE (важность переменных):
# 1. Охват аналитиков (низкий охват → более высокий CATE)
# 2. Предшествующий моментум (низкий моментум → более высокая чувствительность к сюрпризу)
# 3. Институциональное владение (низкое институц. → более высокий CATE)
#
# Торговая стратегия: Лонг верхнего квинтиля CATE при положительных сюрпризах
# Шарп, взвешенный по CATE: 1,64 vs. Шарп, основанный на ATE: 0,97
# CATE-стратегия превосходит в 4 из 6 лет; худший год: -3,2%

Пример 2: CATE ставки финансирования BTC (данные Bybit)

Неоднородные эффекты лечения экстремальных ставок финансирования на спотовые доходности BTC:

  1. Лечение D: бинарный индикатор для |ставка финансирования| > 0,05% (Bybit BTCUSDT-PERP)
  2. Результат Y: следующая 8-часовая доходность спот BTC
  3. Признаки X: 15 признаков — OI (нормализованный), темп изменения OI, дисбаланс объёма (соотношение покупок/продаж), спред, 24-часовая реализованная волатильность, доминирование BTC, соотношение лонг/шорт, 4-часовой моментум цены, 1-часовой моментум, ставка финансирования ETH (перетекание), глобальный прокси риска (обратный DXY), sin/cos-кодировка времени суток
  4. Лес: 1500 честных причинных деревьев, 5-кратное локальное центрирование (мешанина случайного леса)
# Результаты по 4-часовым данным Bybit (2022-2024, N=4 380 наблюдений):
# ATE экстремального финансирования: -0,43% за 8ч (средний разворот)
# Распределение CATE: среднее -0,43%, стд 0,67%, диапазон [-2,1%, +0,9%]
#
# Подгруппа высокого воздействия (CATE < -1,0%):
# → OI высокий (верхний терциль) И дисбаланс объёма снижается И доминирование падает
# → Интерпретация: переполненные лонги разматываются на тонком рынке
# → CATE в этой подгруппе: -1,74% за 8ч
#
# Подгруппа низкого воздействия (CATE > 0%):
# → OI низкий ИЛИ дисбаланс объёма растёт (приходят новые покупатели)
# → Сигнал ставки финансирования приглушён свежим спросом
#
# Стратегия: шорт только при CATE < -0,8% (σ̂(x) < 0,4%)
# Шарп избирательной стратегии: 2,14 vs. Шарп неизбирательной стратегии: 0,89

Пример 3: CATE моментума по рыночным режимам (мультиактивный)

Оценка неоднородного эффекта моментума как функции рыночного режима:

  1. Лечение D: дециль кросс-секционного моментума (верхний дециль = 1, нижний = 0)
  2. Результат Y: избыточная доходность следующего месяца (vs. равновзвешенная вселенная)
  3. Признаки X (переменные режима): VIX (уровень и 1-месячное изменение), спред HY (уровень и изменение), наклон кривой доходности, корреляция акций и облигаций (30д), кросс-секционный разброс доходности, концентрация секторального моментума
  4. Вселенная: акции Russell 1000, месячная ребалансировка (2010-2024)
  5. Лес: 3000 деревьев с локальным центрированием (мешанина LightGBM)
# Результаты (N=168 мес × 500 акций в среднем в мес = 84 000 наблюдений):
# ATE моментума: +0,62% в месяц
# Распределение CATE: среднее 0,62%, стд 0,89%
#
# CATE моментума по режиму VIX:
# Низкий VIX (<15): CATE = +1,34% ± 0,18% (сильно значимо)
# Средний VIX (15-25): CATE = +0,47% ± 0,21% (слабо значимо)
# Высокий VIX (>25): CATE = -0,81% ± 0,31% (режим краша моментума)
#
# Динамическая стратегия моментума (активна только при CATE > 0 при 90% ДИ):
# Шарп: 1,23 vs. Шарп всегда-включённого моментума: 0,72
# Макс. просадка: -6,8% vs. -28,4% (избегает крашей моментума 2009, 2020)

Система бэктестинга

Компоненты стратегии

Система бэктестинга реализует:

  1. Построение признаков: автоматизированный конвейер матриц признаков на актив с настраиваемыми окнами ретроспективного взгляда
  2. Скользящий каузальный лес: переобучение каузального леса в расширяющемся окне каждые N периодов; минимальная история до первого сигнала
  3. Прогноз CATE: вне-выборочные оценки CATE со стандартными ошибками для периода принятия решения
  4. Построение сигнала: лонг-шорт портфель по рангу CATE или порогу τ̂(x)/σ̂(x) (взвешенный по точности сигнал)
  5. Размер позиции: вес позиции пропорционален точечной оценке CATE, делённой на оценённое стандартное отклонение (взвешивание по информационному соотношению)
  6. Контроль рисков: максимальное валовое плечо, ограничения концентрации сектора, стоп-лосс при 2σ неблагоприятном CATE

Отслеживаемые метрики

МетрикаОписание
Коэффициент ШарпаДоходность с поправкой на риск (годовая)
Коэффициент СортиноДоходность с поправкой на риск снижения
Максимальная просадкаНаибольшее падение от пика до дна
Процент выигрышейДоля прибыльных сделок
Фактор прибылиВаловая прибыль / валовые убытки
Охват CATEДоля времени, в течение которого 95% ДИ CATE содержит истинный эффект
Корреляция CATE-ДоходностьРанговая корреляция Спирмена между предсказанным CATE и реализованными доходностями
Использование неоднородностиПрирост Шарпа от взвешенной по CATE vs. взвешенной по ATE стратегии

Пример результатов бэктеста

Бэктест стратегии с каузальным лесом (2020-2024)
=================================================
Вселенная: акции S&P 500 (события прибыли) + BTC/ETH на Bybit (сигналы финансирования)
Лес: 2000 деревьев, честный, локальное центрирование (мешанина LightGBM)
Скользящее окно: 3 года расширяющееся, переобучение ежеквартально
Сигнал: Лонг верхнего терциля CATE, Шорт нижнего терциля CATE (долларово-нейтральный)
Производительность:
- Суммарная доходность: 64,8%
- Годовая доходность: 13,4%
- Коэффициент Шарпа: 1,82
- Коэффициент Сортино: 2,41
- Максимальная просадка: -7,3%
- Процент выигрышей: 58,7%
- Фактор прибыли: 2,31
Диагностика каузального леса:
- Средний ATE по периодам: +2,1% на событие
- Среднее кросс-секционное стд CATE: 1,9% на событие
- Ранговая корреляция CATE-доходность: 0,34 (Спирмен)
- Разрыв альфы CATE vs. ATE: +4,8% в год
- Средний OOB R² CATE: 0,18
- Стабильность важности переменных (топ-3 признака): 0,87 (τ Кендалла по кварталам)

Оценка производительности

Сравнение с альтернативными оценщиками CATE

МетодГод. доходностьШарпМакс. просадкаКорр. CATEДопустимые ДИ
Стратегия на ATE (без неоднородности)7,8%0,97-13,4%Н/ПН/П
T-обучатель (раздельные леса)10,2%1,31-11,2%0,24Нет
X-обучатель11,4%1,47-10,1%0,29Нет
Линейная модель взаимодействия9,1%1,18-12,8%0,19Да (парам.)
Каузальный лес (GRF)13,4%1,82-7,3%0,34Да

Период бэктеста: 2020-2024. Транзакционные издержки: 5 б.п. за сделку. Без заглядывания вперёд.

Ключевые выводы

  1. Неоднородность экономически велика: стандартное отклонение CATE между активами равно ATE по величине — игнорирование неоднородности означает неиспользование значительной альфы
  2. Честность критична для достоверного вывода: без честного разбиения доверительные интервалы для CATE слишком узки в 1,4-2,0 раза, приводя к самоуверенным позициям и избыточным просадкам
  3. Локальное центрирование улучшает производительность: предварительная остаточизация Y и D снижает ошибку оценки CATE на 22% при сильном конфаундинге
  4. Позиции, взвешенные по CATE, превосходят ранговые: использование τ̂(x)/σ̂(x) как непрерывных весов превосходит простые портфели лонг/шорт децилей на 0,31 Шарпа

Ограничения

  1. Требуется неконфаундированность: как и все не-IV причинные методы, каузальные леса требуют отсутствия ненаблюдаемых конфаундеров — сильное допущение в финансах
  2. Требование позитивности: каждый актив должен иметь положительную вероятность получения лечения при всех значениях признаков; области тонкой вероятности лечения дают ненадёжные оценки CATE
  3. Вычислительная интенсивность: каузальные леса из 2000 деревьев с локальным центрированием значительно медленнее стандартных случайных лесов
  4. Экстраполяция: оценки CATE для внесайловых комбинаций признаков (необычные рыночные режимы) могут быть ненадёжны — лес интерполирует, но не экстраполирует

Дальнейшие направления

  1. Глубокие каузальные леса: объединить гарантии честности каузального леса с извлечением признаков нейронных сетей, обеспечивая оценку CATE из сырых рыночных данных (книги ордеров, новостные тексты)

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

  3. Многорезультатные каузальные леса: совместная оценка CATE для нескольких результатов (доходность, волатильность, Шарп), обеспечивающая многоцелевую оптимизацию портфеля с использованием CATE

  4. Обучение политикам из каузальных лесов: использовать оценённые CATE для прямой оптимизации торговых политик (какие активы торговать, когда торговать) с использованием дважды устойчивой оценки политик

  5. Каузальные леса с инструментальными переменными: расширить GRF на условия IV (уже доступно в пакете R grf) для финансовых условий с эндогенным лечением

  6. Временные каузальные леса: адаптировать GRF для обработки временных рядов с временной корреляцией в назначении лечения, актуально для приложений рыночной микроструктуры


Ссылки

  1. Wager, S. & Athey, S. (2018). Estimation and Inference of Heterogeneous Treatment Effects using Random Forests. Journal of the American Statistical Association, 113(523), 1228-1242.

  2. Athey, S., Tibshirani, J., & Wager, S. (2019). Generalized Random Forests. Annals of Statistics, 47(2), 1148-1178.

  3. Künzel, S.R., Sekhon, J.S., Bickel, P.J., & Yu, B. (2019). Metalearners for Estimating Heterogeneous Treatment Effects using Machine Learning. Proceedings of the National Academy of Sciences, 116(10), 4156-4165.

  4. Chernozhukov, V., Chetverikov, D., Demirer, M., Duflo, E., Hansen, C., Newey, W., & Robins, J. (2018). Double/Debiased Machine Learning for Treatment and Causal Parameters. The Econometrics Journal, 21(1), C1-C68.

  5. Athey, S. & Imbens, G.W. (2016). Recursive Partitioning for Heterogeneous Causal Effects. Proceedings of the National Academy of Sciences, 113(27), 7353-7360.

  6. Nie, X. & Wager, S. (2021). Quasi-Oracle Estimation of Heterogeneous Treatment Effects. Biometrika, 108(2), 299-319.

  7. Efron, B. & Hastie, T. (2016). Computer Age Statistical Inference. Cambridge University Press.