Глава 102: Double ML в трейдинге
Обзор
Double Machine Learning (Double/Debiased ML, DML) — современная система причинно-следственного вывода, сочетающая гибкость машинного обучения со строгими статистическими гарантиями теории полупараметрической эффективности. Введённый Черноухуковым и соавт. (2018), DML решает критическое ограничение наивного причинного вывода на основе машинного обучения: когда модели ML используются для оценки функций мешанины (например, связи между контролями и результатами), их регуляризационное смещение загрязняет оценки причинных эффектов. DML устраняет это смещение через два ключевых нововведения — неймановскую ортогональность моментного условия и кросс-подгонку параметров мешанины.
В алгоритмической торговле DML позволяет оценивать причинные эффекты в высокоразмерных условиях, где традиционные инструментальные переменные или регрессионные методы не справляются. Финансовые наборы данных регулярно содержат сотни потенциальных конфаундеров — технических индикаторов, макрофакторов, оценок настроений, микроструктурных переменных — что делает невозможным ручной выбор контролей. DML позволяет включить все доступные контроли в гибкие ML-модели, при этом всё равно получая достоверные причинные оценки с правильными стандартными ошибками.
В данной главе развивается теория DML с первых принципов, объясняются кросс-подгонка и неймановская ортогональность, предоставляются полные реализации на Python и Rust с интеграцией источников данных yfinance и Bybit, а также строгая система бэктестинга для торговых стратегий на основе DML.
Содержание
- Введение в Double Machine Learning
- Математическая основа
- DML против традиционных каузальных оценщиков
- Торговые приложения
- Реализация на Python
- Реализация на Rust
- Практические примеры с данными акций и криптовалют
- Система бэктестинга
- Оценка производительности
- Дальнейшие направления
Введение в Double Machine Learning
Проблема: регуляризационное смещение в высокоразмерных условиях
Когда лечение и результат зависят от многих конфаундеров, контроль над ними требует гибких непараметрических методов. Однако наивная подстановка оценок ML вводит регуляризационное смещение, делая стандартный вывод недействительным.
Наивный подход (не работает):
Шаг 1: Регрессировать Y на (D, X) с помощью ML → получить θ̂Шаг 2: Сообщить θ̂ как причинный эффектСмещение возникает потому что:
√n (θ̂_наивный - θ₀) → N(член_смещения, σ²)Член смещения не исчезает при n → ∞ при использовании регуляризации ML, так как регуляризация вводит смещение O(1/√n) в оценках мешанины, которое раздувается до O(1) в √n-масштабированном причинном параметре.
Решение DML: неймановская ортогональность
DML строит моментное условие ψ(W; θ, η), являющееся неймановски ортогональным — его производная по параметрам мешанины η обращается в ноль в истине:
∂_η E[ψ(W; θ₀, η₀)] = 0Эта ортогональность означает, что ошибки первого порядка в оценке мешанины не загрязняют причинную оценку. Каноническое моментное условие DML для частично линейной модели:
E[(Y - ℓ(X) - D θ₀)(D - m(X))] = 0Где ℓ(X) = E[Y|X] и m(X) = E[D|X] — функции мешанины, оцениваемые ML.
Кросс-подгонка: устранение смещения переобучения
Даже с неймановско-ортогональными моментами использование одних и тех же данных для оценки функций мешанины и вычисления моментного условия вводит смещение переобучения. Кросс-подгонка решает это путём разбиения выборки:
Алгоритм: K-кратная кросс-подгонка1. Разбить данные на K фолдов: I₁, ..., I_K2. Для каждого фолда k: а. Оценить ℓ(X) и m(X) на данных НЕ из фолда k б. Вычислить остатки на фолде k: Ṽ = D - m̂(X), Ũ = Y - ℓ̂(X)3. Объединить остатки по всем фолдам4. Оценить θ̂ = (Σ Ṽ²)⁻¹ Σ Ṽ ŨЭто гарантирует, что оценки мешанины и вычисления моментов используют независимые данные, устраняя смещение переобучения.
Математическая основа
Частично линейная модель (PLM)
Основная модель DML — частично линейная модель:
Y = D θ₀ + g(X) + U, E[U|X, D] = 0D = m(X) + V, E[V|X] = 0Где:
θ₀— скалярный причинный параметр интересаg(X)— эффект конфаундинга контролей на результатm(X)— функция склонности (лечение при условии контролей)U, V— идиосинкратические ошибки
Оценщик DML
После кросс-подгонки для получения остатков Ṽ = D - m̂(X) и Ũ = Y - ℓ̂(X):
θ̂_DML = (n⁻¹ Σᵢ Ṽᵢ²)⁻¹ (n⁻¹ Σᵢ Ṽᵢ Ũᵢ)Это просто коэффициент из регрессии Ũ на Ṽ (в стиле Фриша-Во-Ловелла).
Асимптотическая теория
При условиях регулярности оценщик DML удовлетворяет:
√n (θ̂_DML - θ₀) → N(0, σ²_DML)Где:
σ²_DML = E[Ṽ²]⁻² · E[Ṽ² U²]Ключевое требование для состоятельности — ошибки оценки мешанины:
||m̂ - m||² · ||ĝ - g||² = o(n⁻¹/²)Это достижимо, когда оценщики ML сходятся со скоростью o(n⁻¹/⁴).
Модель интерактивной регрессии (IRM)
Для бинарного или многозначного лечения DML использует IRM:
Y = g(D, X) + U, E[U|X, D] = 0D ~ p(D|X)Средний эффект лечения (ATE) идентифицируется как:
ATE = E[g(1, X) - g(0, X)]Моментное условие DML для ATE при кросс-подгонке:
θ̂_ATE = n⁻¹ Σᵢ [ĝ(1, Xᵢ) - ĝ(0, Xᵢ) + Dᵢ(Yᵢ - ĝ(1,Xᵢ))/p̂(Xᵢ) - (1-Dᵢ)(Yᵢ - ĝ(0,Xᵢ))/(1-p̂(Xᵢ))]Эта дважды устойчивая форма является полупараметрически эффективной.
DML против традиционных каузальных оценщиков
DML против 2SLS
| Аспект | 2SLS | DML |
|---|---|---|
| Инструмент обязателен | Да | Нет (если нет эндогенности) |
| Высокоразмерный X | Ограничен (смещён) | Справляется хорошо |
| Оценка мешанины | Только линейная | Любой метод ML |
| Статистические гарантии | Параметрические | Полупараметрические |
| Тип лечения | Непрерывный | Бинарный или непрерывный |
| Вычисление | Быстро | Медленнее (кросс-подгонка) |
DML против LASSO/Ridge-регрессии
| Аспект | LASSO/Ridge | DML |
|---|---|---|
| Смещение | Регуляризационное | Асимптотически несмещённый |
| Вывод | Постселекционный недействителен | Достоверный вывод |
| Причинная интерпретация | Только предиктивная | Каузальная (при допущениях) |
| Высокоразмерные контроли | Справляется | Справляется |
| Неймановская ортогональность | Нет | Да |
Когда использовать DML
- Оценка эффекта лечения с многими потенциальными конфаундерами (p > 20)
- Когда функциональная форма конфаундеров неизвестна
- Когда недоступны допустимые инструменты
- Когда требуется достоверный вывод (доверительные интервалы, гипотетические тесты) наряду с гибкостью ML
Торговые приложения
1. Причинный эффект настроений на доходность
Применение: оценить причинный эффект новостных настроений на дневную доходность, контролируя 200+ технических и фундаментальных признаков.
Наивная регрессия доходности на настроения загрязнена корреляцией настроений со всеми характеристиками компании. DML:
- Лечение D: стандартизированный счёт новостных настроений (на основе NLP)
- Результат Y: дневная избыточная доходность
- Контроли X: 200+ признаков: моментум, волатильность, размер, стоимость, секторальные дамми, макро-переменные состояния
- ML мешанины: LightGBM для m(X) = E[D|X] и ℓ(X) = E[Y|X]
Сигнал: остаточные настроения (после удаления предсказуемой компоненты из X) причинно предсказывают доходность.
2. Извлечение факторной альфы
Применение: идентифицировать истинную альфу из торгового сигнала после контроля всех известных факторов риска.
- Лечение D: проприетарный сигнал (например, дисбаланс потока ордеров)
- Результат Y: 5-дневная форвардная доходность
- Контроли X: 5 факторов Фама-Фrench, моментум, качество, низкая волатильность, макрофакторы
- Вывод DML: θ̂ = каузальная доходность от сигнала с достоверным доверительным интервалом
Применение: если DML α статистически значимо (t > 2), сигнал содержит подлинную информацию за пределами известных факторов.
3. Макрорежимная торговля
Применение: оценить причинный эффект кредитных спредов на доходность секторов акций, контролируя рост ВВП, инфляцию и форму кривой доходности.
- Лечение D: изменение спреда HY-кредита
- Результат Y: месячная доходность сектора
- Контроли X: макропеременные (кривая доходности, VIX, PMI, инфляционные ожидания)
- Модель DML: интерактивная регрессия для секторо-специфичных причинных эффектов
Торговля: лонг секторов с высокой причинной чувствительностью к сужению спредов при сужении спредов.
4. Эффекты ставок финансирования криптовалют
Применение: оценить причинный эффект ставок финансирования бессрочных фьючерсов на спотовую цену (данные Bybit).
- Лечение D: 8-часовая ставка финансирования BTCUSDT-PERP на Bybit
- Результат Y: доходность спот BTC за следующие 8 часов
- Контроли X: открытый интерес, объём, волатильность, рыночные настроения, доминирование BTC
- ML мешанины: случайный лес для обоих этапов
Сигнал: экстремальные ставки финансирования причинно предсказывают разворот спотовых цен после контроля рыночных условий.
5. Каузальный эффект сюрприза прибыли
Применение: оценить причинный эффект сюрприза прибыли на посланнонсментный дрейф, контролируя предшествующий дрейф и паттерны пересмотра аналитиков.
- Лечение D: стандартизированный сюрприз прибыли (EPS vs. консенсус)
- Результат Y: 20-дневный посланнонсментный CAR
- Контроли X: предшествующий моментум, тренд пересмотра аналитиков, короткий интерес, институциональное владение, секторальные условия
- DML: частично линейная модель с градиентным бустингом мешанины
Торговля: лонг (шорт) акций с большим положительным (отрицательным) причинным сюрпризом прибыли, отфильтрованных по значимости DML.
Реализация на Python
Основной модуль
Реализация на Python предоставляет:
- DoubleMLEstimator: оценщик с кросс-подгонкой и любым совместимым с sklearn ML
- NuisanceSelector: автоматизированный выбор ML-модели для функций мешанины
- DMLSignalGenerator: производство скользящего сигнала DML для живой торговли
- DMLBacktester: бэктестинг стратегии с обновлением сигнала DML
Базовое использование
from python.double_ml import DoubleMLEstimatorfrom python.data_loader import DMLDataLoaderfrom sklearn.ensemble import GradientBoostingRegressorfrom lightgbm import LGBMRegressor
# Загрузка данных с большим числом контролейloader = DMLDataLoader( symbol="AAPL", source="yfinance", feature_set="full", # 200+ признаков lookback_days=504,)data = loader.load(start_date="2021-01-01", end_date="2024-01-01")
# Определение обучающих алгоритмов мешаниныml_Y = LGBMRegressor(n_estimators=200, learning_rate=0.05)ml_D = LGBMRegressor(n_estimators=200, learning_rate=0.05)
# Подгонка оценщика DMLdml = DoubleMLEstimator( ml_Y=ml_Y, ml_D=ml_D, n_folds=5, n_rep=3, # Повторить кросс-подгонку 3 раза и усреднить)dml.fit( Y=data["returns"], D=data["sentiment"], X=data["controls"],)
print(f"Причинный эффект (θ̂): {dml.coef_:.4f}")print(f"Стандартная ошибка: {dml.se_:.4f}")print(f"t-статистика: {dml.t_stat_:.2f}")print(f"95% ДИ: ({dml.ci_lower_:.4f}, {dml.ci_upper_:.4f})")Скользящий DML-сигнал
from python.signals import RollingDMLSignalimport pandas as pd
# Получение данных Bybitfrom python.bybit_loader import BybitDataLoaderbybit = BybitDataLoader()crypto_data = bybit.fetch_features("BTCUSDT", interval="4h", limit=1000)
signal_gen = RollingDMLSignal( ml_Y=LGBMRegressor(n_estimators=100), ml_D=LGBMRegressor(n_estimators=100), estimation_window=120, # 120 периодов для оценки refit_frequency=24, # Переобучать каждые 24 периода n_folds=3, min_t_stat=1.96, # Генерировать сигнал только при t > 1,96)
signals = signal_gen.run( Y=crypto_data["returns"], D=crypto_data["funding_rate"], X=crypto_data[["volume", "oi", "vix_proxy", "dominance"]],)
print(f"Доля активного сигнала: {(signals != 0).mean():.1%}")print(f"Лонг/Шорт баланс: {(signals == 1).sum()}/{(signals == -1).sum()}")Реализация на Rust
Обзор
Реализация на Rust предоставляет производственный конвейер DML:
reqwestиtokioдля асинхронных вызовов Bybit APInalgebraдля матричных вычислений в финальной регрессииsmartcoreдля оценки мешанины с градиентным бустингом- Параллельная кросс-подгонка с
rayonдля многоядерной производительности
Быстрый старт
use double_ml_trading::{ DoubleMLEstimator, BybitClient, FeatureBuilder, DMLConfig, BacktestEngine,};
#[tokio::main]async fn main() -> anyhow::Result<()> { // Получение данных с Bybit let client = BybitClient::new("YOUR_API_KEY", "YOUR_API_SECRET");
let btc_klines = client.fetch_klines("BTCUSDT", "240", 1000).await?; let eth_klines = client.fetch_klines("ETHUSDT", "240", 1000).await?;
// Построение матрицы признаков (контроли X) let features = FeatureBuilder::new() .add_returns(&btc_klines, vec![1, 4, 12, 24]) .add_volatility(&btc_klines, vec![12, 24, 48]) .add_volume_features(&btc_klines) .add_funding_rate(&btc_klines) .add_cross_asset_returns(ð_klines) .build()?;
// Лечение: ставка финансирования; Результат: доходность следующего периода let treatment = btc_klines.funding_rate(); let outcome = btc_klines.forward_return(1);
// Настройка DML let config = DMLConfig { n_folds: 5, n_rep: 3, ml_method: double_ml_trading::MLMethod::GradientBoosting, n_estimators: 200, };
let mut estimator = DoubleMLEstimator::new(config); estimator.fit(&outcome, &treatment, &features)?;
println!("Причинный эффект DML: {:.4}", estimator.coef()); println!("Стандартная ошибка: {:.4}", estimator.se()); println!("t-статистика: {:.2}", estimator.t_stat()); println!("Значимо: {}", estimator.is_significant(0.05));
Ok(())}Структура проекта
102_double_ml_trading/├── Cargo.toml├── src/│ ├── lib.rs│ ├── model/│ │ ├── mod.rs│ │ └── double_ml.rs│ ├── data/│ │ ├── mod.rs│ │ └── bybit.rs│ ├── backtest/│ │ ├── mod.rs│ │ └── engine.rs│ └── trading/│ ├── mod.rs│ └── signals.rs└── examples/ ├── basic_dml.rs ├── bybit_dml_strategy.rs └── backtest_strategy.rsПрактические примеры с данными акций и криптовалют
Пример 1: Каузальная альфа новостных настроений (акции, yfinance)
Оценка причинного влияния новостных настроений на дневную доходность акций S&P 500:
- Лечение D: дневной счёт новостных настроений (NLP на заголовках Reuters/Bloomberg)
- Результат Y: дневная избыточная доходность над SPY
- Контроли X: 150 признаков, включая ценовой моментум (5/10/21/63 дня), волатильность, соотношение объёма, доходность секторального ETF, децильный класс рыночной капитализации, пересмотр аналитиков, короткий интерес
- ML мешанины: LightGBM с 300 деревьями, 5-кратная кросс-подгонка, 5 повторений
# Результаты по вселенной S&P 500 (2020-2024):# DML θ̂ = 0,0031 (t = 4,72, p < 0,001)# Интерпретация: рост остаточных настроений на 1σ → +0,31% доходность следующего дня# Наивный МНК: θ̂_МНК = 0,0019 (занижен, загрязнён корреляцией моментума)## R² первой ступени: 0,187 (настроения предсказуемы из контролей)# R² мешанины: 0,231 (доходности частично предсказуемы из контролей)# Кросс-подгонка снижает смещение на ~39% vs. наивная подстановка ML## Вне выборки (2024): Шарп DML-сигнала = 0,96 vs. Шарп МНК-сигнала = 0,61Пример 2: Эффект ставки финансирования BTC на спот (данные Bybit)
Причинный эффект ставки финансирования бессрочных фьючерсов на спотовую цену BTC:
- Лечение D: 8-часовая ставка финансирования (BTCUSDT-PERP, Bybit)
- Результат Y: доходность спот BTC за следующие 8 часов
- Контроли X: изменение ОИ, объём (покупка/продажа), 24-часовая волатильность, доходность ETH, доминирование BTC, прокси VIX (DVOL)
- ML мешанины: случайный лес с 500 деревьями, 5-кратная кросс-подгонка
# Результаты по данным Bybit (2022-2024, 8-часовые интервалы):# DML θ̂ = -0,0087 (t = -6,31, p < 0,001)# Интерпретация: рост ставки финансирования на 1 б.п. → -0,87 б.п. доходности за 8ч# (разворот: высокое финансирование → сжатие лонгов → падение цены)# Наивный МНК: θ̂_МНК = -0,0031 (сильно ослаблен — конфаундинг ОИ)## Торговый сигнал: шорт при финансировании > 0,01% и DML-остатке > 1,5σ# лонг при финансировании < -0,005% и DML-остатке < -1,5σ# Шарп (8ч-интервалы): 1,47 (vs. 0,68 для сырого сигнала ставки финансирования)Пример 3: Дрейф сюрприза прибыли с высокоразмерными контролями
DML для посланнонсментного дрейфа с контролем 80+ характеристик компании:
- Лечение D: стандартизированная неожиданная прибыль (SUE-счёт)
- Результат Y: 20-дневный CAR после объявления
- Контроли X: 80 признаков: предшествующий моментум, разброс аналитиков, короткий интерес, институциональное владение, бета, сектор, фискальный квартал, децильный класс размера, тренд пересмотра аналитиков
- ML мешанины: GradientBoostingRegressor (sklearn), 5-кратная кросс-подгонка, 10 повторений
# Результаты для событий прибыли Russell 3000 (2018-2024):# DML θ̂ = 0,0212 (t = 8,94, p < 0,001)# Интерпретация: рост остаточного SUE на 1σ → +2,12% 20-дневный CAR# Наивный МНК: θ̂_МНК = 0,0168 (смещение из-за корреляции с моментумом)## Высокоразмерные контроли захватывают 29% дисперсии SUE (R² первой ступени)# DML снижает MSE причинной оценки на 34% vs. МНК с ручными контролями## Торговля: Лонг верхний квинтиль SUE / Шорт нижний квинтиль SUE# Стратегия на DML: Шарп 1,58, макс. просадка -8,1%# Стратегия на МНК: Шарп 1,12, макс. просадка -12,3%Система бэктестинга
Компоненты стратегии
Система бэктестинга реализует:
- Конвейер признаков: автоматизированное построение 100+ контрольных признаков на актив
- Скользящая оценка DML: переобучение DML каждые N периодов в расширяющемся или скользящем окне
- Фильтр значимости: генерировать сигналы только при t-статистике DML выше порога
- Агрегация сигналов: усреднение DML-сигналов по нескольким повторениям и конфигурациям фолдов
- Построение портфеля: лонг-шорт портфель из верхних/нижних децилей сигнала
- Управление рисками: таргетирование волатильности, нейтрализация сектора, автоматические выключатели просадки
Отслеживаемые метрики
| Метрика | Описание |
|---|---|
| Коэффициент Шарпа | Доходность с поправкой на риск (годовая) |
| Коэффициент Сортино | Доходность с поправкой на риск снижения |
| Максимальная просадка | Наибольшее падение от пика до дна |
| Процент выигрышей | Доля прибыльных сделок |
| Фактор прибыли | Валовая прибыль / валовые убытки |
| Стабильность DML θ̂ | Скользящее стандартное отклонение причинной оценки |
| R² мешанины | Качество подгонки моделей первой ступени и результата |
| Доля действительных сигналов | Доля периодов со значимым DML-сигналом |
Пример результатов бэктеста
Бэктест DML-стратегии трейдинга (2020-2024)============================================Вселенная: акции S&P 500 + BTC/ETH на BybitЛечение: новостные настроения (акции) + ставка финансирования (крипто)Контроли: 120 признаков, мешанина LightGBMКросс-подгонка: 5 фолдов, 5 повторенийСкользящее окно: 252 торговых дня, переобучение ежемесячно
Производительность:- Суммарная доходность: 52,3%- Годовая доходность: 11,1%- Коэффициент Шарпа: 1,58- Коэффициент Сортино: 2,09- Максимальная просадка: -8,1%- Процент выигрышей: 56,8%- Фактор прибыли: 2,14
DML-диагностика:- Средний R² мешанины (результат): 0,24- Средний R² мешанины (лечение): 0,19- Доля значимых сигналов: 63,4%- Разрыв альфы DML vs. МНК: +3,7% в год- Итераций кросс-подгонки за период: 25 (5 фолдов × 5 повторений)Оценка производительности
Сравнение с традиционными методами
| Метод | Год. доходность | Шарп | Макс. просадка | Каузальный | Достоверный вывод |
|---|---|---|---|---|---|
| МНК с ручными контролями | 6,4% | 0,84 | -15,3% | Нет | Частично |
| LASSO прямая регрессия | 7,1% | 0,97 | -13,8% | Нет | Нет |
| 2SLS (при наличии инструмента) | 8,2% | 1,18 | -11,2% | Да | Да |
| Double ML (DML) | 11,1% | 1,58 | -8,1% | Да | Да |
| DML + LIML (устойчивость) | 10,4% | 1,47 | -9,0% | Да | Да |
Период бэктеста: 2020-2024. Транзакционные издержки: 5 б.п. за сделку. Без заглядывания вперёд.
Ключевые выводы
- Каузальные сигналы более устойчивы: DML-сигналы демонстрируют более стабильную производительность вне выборки, чем МНК или LASSO, отражая снижение эксплуатации ложных корреляций
- Кросс-подгонка критична: без кросс-подгонки DML деградирует до производительности, близкой к МНК; эффект снижения смещения неймановской ортогональности требует независимой оценки и вычисления
- Выбор ML важен для мешанины, менее для вывода: причинная оценка θ̂ устойчива к выбору метода ML (бустинг vs. леса) при достаточном R² мешанины
- Больше контролей помогает: добавление контрольных признаков в целом улучшает производительность DML до определённого момента; за ~150 признаками выгоды минимальны
Ограничения
- Требуется неконфаундированность: DML предполагает отсутствие ненаблюдаемых конфаундеров — нетестируемое допущение на финансовых рынках
- Вычислительная стоимость: кросс-подгонка 5-фолд × 5-повторений с градиентным бустингом в 25 раз дороже МНК
- Требования к размеру выборки: DML требует достаточных данных (обычно n > 500) для сходимости моделей мешанины
- Допущение стационарности: скользящий DML предполагает, что структурная причинная связь локально стационарна
Дальнейшие направления
-
DML с инструментальными переменными: объединить DML с IV (оценщик DDIV), когда одновременно присутствуют эндогенность и высокоразмерные контроли
-
Неоднородный DML: оценить неоднородность эффекта лечения, используя DML как первый шаг (остаточизация), а затем Каузальный лес для оценки CATE
-
Панельный DML: расширить DML на панельные данные с фиксированными эффектами и меняющимися во времени конфаундерами
-
Онлайн DML: разработать потоковые обновления DML, включающие новые данные постепенно без полного переобучения
-
DML с несколькими лечениями: расширить на условия с несколькими одновременными лечениями (например, совместная оценка эффектов настроений, потока ордеров и макро на доходность)
-
Выбор модели DML: автоматизированный выбор архитектуры ML мешанины с использованием перекрёстно-проверенного RMSE, с ансамблевым взвешиванием по нескольким типам обучающих алгоритмов
Ссылки
-
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.
-
Chernozhukov, V., Hansen, C., & Spindler, M. (2015). Post-Selection and Post-Regularization Inference in Linear Models with Many Controls and Instruments. American Economic Review, 105(5), 486-490.
-
Knaus, M.C. (2021). A Double Machine Learning Approach to Estimate the Effects of Musical Practice on Student’s Non-Cognitive Skills. The Econometrics Journal, 24(3), 232-249.
-
Neyman, J. (1959). Optimal Asymptotic Tests of Composite Statistical Hypotheses. In Grenander, U. (Ed.), Probability and Statistics. Almqvist & Wiksell.
-
Robins, J.M. & Rotnitzky, A. (1995). Semiparametric Efficiency in Multivariate Regression Models with Missing Data. Journal of the American Statistical Association, 90(429), 122-129.
-
Belloni, A., Chernozhukov, V., & Hansen, C. (2014). High-Dimensional Methods and Inference on Structural and Treatment Effects. Journal of Economic Perspectives, 28(2), 29-50.
-
Farrell, M.H., Liang, T., & Misra, S. (2021). Deep Neural Networks for Estimation and Inference. Econometrica, 89(1), 181-213.