Глава 100: Обучение DAG для финансов
Обзор
Обучение направленных ациклических графов (DAG), известное также как обучение причинной структуры, — это задача автоматического обнаружения причинных связей между переменными из наблюдательных данных. В отличие от причинности Грейнджера (Глава 96) или VarLiNGAM (Глава 99), алгоритмы обучения DAG способны обрабатывать произвольные нелинейные связи, большие вселенные активов и не требуют заранее заданного временного порядка. Алгоритм NOTEARS (Zheng et al., 2018) переформулировал комбинаторный поиск структуры DAG как задачу гладкой непрерывной оптимизации, сделав применимыми современные методы на основе градиентного спуска для каузального обнаружения в масштабе.
На финансовых рынках обучение DAG раскрывает лежащий в основе причинный граф зависимостей активов: какие секторы движут другими, какие макрофакторы вызывают движение каких классов активов, как шоки распространяются через многоактивный портфель. Этот причинный граф более информативен, чем матрица корреляций, поскольку он разреженный, направленный и отражает подлинные причинные механизмы, а не случайные статистические ассоциации. Причинные графы устойчивы к сдвигам распределения (рыночным режимам), что делает их особенно ценными для устойчивого построения портфелей и управления рисками.
В данной главе представлена теория обучения DAG на основе оценочных функций и ограничений, фреймворк непрерывной оптимизации NOTEARS, практические реализации на Python и Rust с использованием данных Bybit и yfinance, а также всестороннее сравнение торговых стратегий на основе DAG с эталонными стратегиями на основе корреляций.
Содержание
- Введение в обучение DAG
- Математические основы
- Обучение DAG vs корреляция и факторные модели
- Применение в трейдинге
- Реализация на Python
- Реализация на Rust
- Практические примеры с данными фондового и крипторынка
- Фреймворк бэктестинга
- Оценка производительности
- Будущие направления
Введение в обучение DAG
Что такое причинный DAG?
Направленный ациклический граф (DAG) G = (V, E) состоит из:
- Вершин V: переменные (активы, макрофакторы, индексы волатильности)
- Направленных рёбер E: причинные связи X → Y означают «X причинно влияет на Y»
- Ацикличности: нет направленных циклов — причинность течёт только в одном направлении
В финансовом DAG ребро BTC → ETH означает, что стоимость BTC причинно влияет на стоимость ETH (а не просто коррелирует с ней). Отсутствие ребра означает условную независимость: после контроля общих причин прямой причинной связи нет.
Три семейства методов обучения DAG
1. Методы на основе ограничений (PC, FCI)
- Тестируют условные независимости в данных
- Строят скелет DAG из тестов независимости, затем ориентируют рёбра
- Пример: алгоритм PC использует частные корреляции; Fast Causal Inference (FCI) обрабатывает скрытые конфаундеры
2. Методы на основе оценочных функций (GES, NOTEARS)
- Определяют оценочную функцию (BIC, правдоподобие), измеряющую соответствие DAG данным
- Ищут DAG-пространство для максимизации оценки
- NOTEARS преобразует комбинаторный поиск в непрерывную оптимизацию
3. Гибридные методы (MMHC)
- Используют обучение скелета на основе ограничений с последующей ориентацией рёбер на основе оценочных функций
- Быстрее чистых методов на основе оценочных функций для больших графов
Почему NOTEARS подходит для финансов?
Алгоритм NOTEARS (Zheng et al., 2018) особенно привлекателен для финансов:
- На основе градиента: совместим с современными ML-конвейерами и ускорением GPU
- Масштабируемый: обрабатывает K = 50-200 активов без комбинаторного взрыва
- Гибкий: расширяется на нелинейные связи через нейронные сети (DAG-GNN, NOTEARS-MLP)
- Регуляризуемый: штраф L1 даёт разреженные графы, подходящие для финансовых данных
Математические основы
Линейная структурная модель уравнений
Фреймворк NOTEARS предполагает линейную структурную модель уравнений (SEM):
X = X W^T + ZГде:
- X ∈ ℝ^{n×d} — матрица данных (n наблюдений, d активов)
- W ∈ ℝ^{d×d} — взвешенная матрица смежности DAG
- Z ∈ ℝ^{n×d} — матрица шума (независимые столбцы)
Элемент W_{ij} ≠ 0 указывает на направленное ребро j → i с весом W_{ij}.
Ограничение ацикличности
Ключевым нововведением NOTEARS является алгебраическая характеристика ацикличности. Матрица W представляет DAG тогда и только тогда, когда:
h(W) = tr(e^{W ⊙ W}) - d = 0Где:
- ⊙ — поэлементное произведение
- e^{·} — матричная экспонента
- tr — оператор следа
Это гладкое дифференцируемое ограничение, позволяющее применять оптимизацию на основе градиента.
Задача оптимизации NOTEARS
NOTEARS решает:
min_{W ∈ ℝ^{d×d}} (1/2n) ||X - X W^T||_F² + λ ||W||₁
при ограничении: h(W) = 0Где:
- Первый член — потеря наименьших квадратов
- λ ||W||₁ — штраф L1 за разреженность (даёт разреженные финансовые графы)
- h(W) = 0 — ограничение DAG
Решается методом дополненного лагранжиана:
L_ρ(W, α) = f(W) + α h(W) + (ρ/2) h(W)²С попеременными обновлениями: шаг W (L-BFGS) и обновление двойственной переменной α.
Нелинейное расширение: NOTEARS-MLP
Для нелинейных причинных связей в финансовых данных структурное уравнение принимает вид:
X_j = f_j(X_{Pa(j)}) + ε_jГде f_j — нейронная сеть (MLP), параметризованная θ_j. Матрица смежности восстанавливается из весов входного слоя нейронных сетей, а ограничение ацикличности h(W) = 0 применяется к индуцированной матрице весов.
Оценочные функции
Помимо наименьших квадратов, NOTEARS может сочетаться с другими оценочными функциями:
BIC-оценка:
BIC(G, θ) = -2 ln L(θ | X, G) + |E| * ln(n)Штрафное логарифмическое правдоподобие (для негауссова шума):
S(W) = -ln p(X | W) + λ ||W||₁BIC-оценка состоятельна: при n → ∞ при стандартных допущениях она восстанавливает истинный DAG.
Идентифицируемость
Линейные DAG с гауссовым шумом идентифицируются только до класса марковской эквивалентности (одинаковые скелет и v-структуры). Полная идентифицируемость требует дополнительных допущений:
- Негауссов шум (LiNGAM): идентифицирует уникальный DAG (см. Главу 99)
- Неравные дисперсии шума: идентифицирует DAG среди гауссовых моделей
- Нелинейные связи: как правило, идентифицируют уникальный DAG
Финансовые доходности удовлетворяют негауссовости, делая полную идентифицируемость DAG достижимой на практике.
Обучение DAG vs корреляция и факторные модели
Сравнение со стандартными финансовыми моделями
| Характеристика | Матрица корреляций | Факторная модель (PCA) | Обучение DAG |
|---|---|---|---|
| Направленность | Нет | Нет | Да |
| Разреженность | Нет (плотная) | Частично | Да (штраф L1) |
| Причинная интерпретация | Нет | Нет | Да |
| Устойчивость при смене режима | Нет | Частично | Да |
| Обработка скрытых конфаундеров | Нет | Частично (через факторы) | Частично (FCI) |
| Вычислительная стоимость | Низкая | Низкая | Средняя-высокая |
| Нелинейные связи | Нет | Нет | Да (NOTEARS-MLP) |
| Интерпретируемость | Средняя | Низкая | Высокая |
Когда обучение DAG превосходит аналоги
| Сценарий | Рекомендуемый подход |
|---|---|
| Обнаружение причинных зависимостей активов | Обучение DAG (NOTEARS) |
| Построение устойчивых портфелей между режимами | Обучение DAG |
| Идентификация причинных факторов риска | DAG + факторная модель |
| Попарные предсказательные связи | Причинность Грейнджера (Глава 96) |
| Мгновенный причинный поток | VarLiNGAM (Глава 99) |
| Большая вселенная, корреляционный подход | PCA / корреляция |
Применение в трейдинге
1. Причинное построение портфеля
DAG над активами позволяет более обоснованно строить портфель по сравнению с матрицей корреляций:
Причинная диверсификация:
# Определяем связные компоненты изученного DAG# Активы в разных компонентах причинно независимы# Выделяем равный рисковый бюджет каждому компоненту, а не каждому активу# Это позволяет избежать перевеса в пользу плотно связанных кластеров активовИдентификация корневых узлов:
- Узлы без родителей (корневые узлы) являются экзогенными драйверами
- Хеджируем от шоков корневых узлов для достижения подлинной диверсификации
- Дочерние узлы могут быть частично захеджированы через торговлю родительскими активами
2. Анализ причинных факторов риска
Используем обучение DAG для определения, какие макропеременные причинно движут доходностью активов:
- Объединяем макропанель (VIX, DXY, кривая доходности) с панелью доходностей активов
- Запускаем NOTEARS на расширенной панели
- Изучаем, какие макроузлы имеют прямые рёбра к узлам активов
- Строим портфели, нейтральные к причинно идентифицированным макрофакторам
Это даёт хеджи, более устойчивые, чем хеджи на основе PCA-факторов, поскольку причинные факторы остаются стабильными при изменении ковариационной структуры.
3. Торговля событиями на основе распространения
Когда структурный шок затрагивает корневой узел DAG:
- Идентифицируем актив, подвергшийся шоку (корневой узел или сильный родитель)
- Прослеживаем причинные пути через DAG для определения активов, затронутых ниже по потоку
- Вычисляем предсказанную величину распространения с использованием весов рёбер DAG
- Торгуем активами ниже по потоку пропорционально предсказанной силе распространения
Пример: регуляторный шок для BTC → DAG раскрывает путь BTC → ETH → SOL → входим в длинную ETH и SOL пропорционально весам рёбер через 3ч после шока BTC.
4. Устойчивая к режимам ротация секторов
Причинные графы более стабильны между режимами, чем корреляции:
- Изучаем DAG над секторными ETF ежеквартально
- Определяем, какие секторы являются «восходящими» причинными драйверами каждый квартал
- Перевешиваем восходящие секторы, когда их структурные шоки положительны
- Недовешиваем секторы, являющиеся чистыми «нижестоящими» получателями
5. Динамический мониторинг причинного графа
Отслеживаем изменения структуры DAG в скользящих окнах:
- Появление ребра: новая причинная связь формируется (сигнал смены режима)
- Исчезновение ребра: причинная связь разрывается (потенциальный арбитраж по мере затухания корреляции)
- Реверсия: причинное направление меняется (редко, но крайне значимо)
- Изменения плотности графа: уплотнение в кризисы, разрежение в спокойные периоды
Реализация на Python
Основные модули
Реализация на Python предоставляет:
- NOTEARSModel: основной оптимизатор NOTEARS с регуляризацией L1
- CausalGraphAnalyzer: анализ DAG (корни, пути, распространение)
- DAGDataLoader: загрузка данных из yfinance и Bybit
- DAGBacktester: бэктестинг стратегий на основе сигналов причинного графа
Базовое использование
from dag_learning import NOTEARSModelfrom data_loader import DAGDataLoader
# Загрузка мультиактивных данных из yfinanceloader = DAGDataLoader( symbols=["XLK", "XLY", "XLE", "XLF", "XLV", "XLI", "XLB"], source="yfinance", start="2019-01-01", end="2024-01-01",)returns = loader.load_returns()
# Подгонка NOTEARS DAGmodel = NOTEARSModel( lambda1=0.1, # Штраф L1 за разреженность loss_type="l2", # Потеря наименьших квадратов max_iter=100, h_tol=1e-8, # Допуск ацикличности)model.fit(returns.values)
# Просмотр изученной матрицы смежностиW = model.adjacency_matrix_print("Матрица смежности DAG:")print(W)
# Определение корневых узлов (без родителей)from dag_learning import CausalGraphAnalyzeranalyzer = CausalGraphAnalyzer(W, node_names=returns.columns.tolist())print("Корневые узлы (экзогенные драйверы):", analyzer.root_nodes())print("Листовые узлы (чистые получатели):", analyzer.leaf_nodes())Анализ причинных путей
# Поиск причинных путей между активамиpaths = analyzer.all_causal_paths(source="XLK", target="XLF")print(f"Причинные пути от XLK к XLF:")for path, weight in paths: print(f" {' → '.join(path)}: суммарный эффект = {weight:.4f}")
# Суммарный причинный эффект (сумма по всем путям)total_effect = analyzer.total_causal_effect("XLK", "XLF")print(f"Суммарный причинный эффект XLK→XLF: {total_effect:.4f}")DAG для криптовалют с данными Bybit
# Загрузка криптоданных с Bybitloader = DAGDataLoader( symbols=["BTCUSDT", "ETHUSDT", "BNBUSDT", "SOLUSDT", "XRPUSDT", "ADAUSDT"], source="bybit", interval="1d", lookback_days=365,)crypto_returns = loader.load_bybit_returns()
# Подгонка нелинейного NOTEARS-MLPfrom dag_learning import NOTEARSMLPModelmodel_mlp = NOTEARSMLPModel( lambda1=0.01, lambda2=0.01, hidden_sizes=[16, 8], max_iter=300,)model_mlp.fit(crypto_returns.values)W_mlp = model_mlp.adjacency_matrix_Построение портфеля на основе DAG
from trading import DAGPortfolioConstructor
constructor = DAGPortfolioConstructor( adjacency_matrix=W, node_names=returns.columns.tolist(), method="causal_risk_parity", # Равный риск на причинный компонент)
weights = constructor.compute_weights( returns=returns, risk_budget=0.1, # 10% риска на причинный компонент)print("Веса причинного портфеля:", weights)Реализация на Rust
Обзор
Реализация на Rust предоставляет:
reqwestдля интеграции с REST API Bybit- Оптимизатор L-BFGS для обновлений весов NOTEARS
- Параллельное решение дополненного лагранжиана с использованием
rayon - Мониторинг DAG в реальном времени с потоковыми данными Bybit
Быстрый старт
use dag_learning_finance::{ NOTEARSModel, CausalGraphAnalyzer, BybitClient, BacktestEngine,};
#[tokio::main]async fn main() -> anyhow::Result<()> { // Получение мультиактивных данных с Bybit let client = BybitClient::new(); let symbols = vec!["BTCUSDT", "ETHUSDT", "BNBUSDT", "SOLUSDT", "XRPUSDT"];
let mut returns_matrix = Vec::new(); for symbol in &symbols { let klines = client.fetch_klines(symbol, "D", 365).await?; returns_matrix.push(klines.log_returns()); }
// Подгонка NOTEARS let model = NOTEARSModel::builder() .lambda1(0.1) .loss_type(LossType::L2) .max_iter(100) .h_tol(1e-8) .build();
let fitted = model.fit(&returns_matrix)?; let W = fitted.adjacency_matrix();
println!("Изученная матрица смежности DAG:"); for row in W.iter() { println!(" {:?}", row); }
// Анализ причинного графа let analyzer = CausalGraphAnalyzer::new(W, &symbols); println!("Корневые узлы: {:?}", analyzer.root_nodes()); println!("Суммарный причинный эффект BTC→ETH: {:.4}", analyzer.total_causal_effect(0, 1));
Ok(())}Структура проекта
100_dag_learning_finance/├── Cargo.toml├── src/│ ├── lib.rs│ ├── model/│ │ ├── mod.rs│ │ └── dag_learning.rs│ ├── data/│ │ ├── mod.rs│ │ └── bybit.rs│ ├── backtest/│ │ ├── mod.rs│ │ └── engine.rs│ └── trading/│ ├── mod.rs│ └── signals.rs└── examples/ ├── basic_dag.rs ├── bybit_structure_learning.rs └── backtest_strategy.rsПрактические примеры с данными фондового и крипторынка
Пример 1: Причинный граф секторов S&P 500 (yfinance)
Изучение причинного DAG среди секторных ETF S&P 500:
- Активы: XLK, XLY, XLE, XLF, XLV, XLI, XLB, XLU, XLRE (9 секторов)
- Данные: дневные доходности, 2015-2024 (yfinance)
- Метод: NOTEARS с λ=0.05, BIC-оценка
# Структура изученного DAG (значимые рёбра):# XLK → XLY (технологии движут потребительским дискреционным)# XLK → XLF (технологии движут финансами)# XLE → XLI (энергетика движет промышленностью)# XLF → XLV (финансы движут здравоохранением)# XLU → XLRE (коммунальные услуги движут недвижимостью)
# Корневые узлы: XLK, XLE, XLU (экзогенные секторные драйверы)# Листовые узлы: XLV, XLRE (чистые получатели)
# Стратегия портфеля: равный риск для 3 компонентов, возглавляемых корневыми узлами# XLK-компонент: XLK + XLY + XLF → 33% рискового бюджета# XLE-компонент: XLE + XLI → 33% рискового бюджета# XLU-компонент: XLU + XLRE + XLV → 33% рискового бюджета# Бэктест 2015-2024: Шарп 1.19, Макс. просадка -12.3% vs S&P 500 Шарп 0.93Пример 2: Причинный DAG криптовалют (данные Bybit)
Обнаружение причинной структуры среди ведущих криптовалют:
- Активы: BTCUSDT, ETHUSDT, BNBUSDT, SOLUSDT, XRPUSDT, ADAUSDT, DOTUSDT
- Данные: дневные лог-доходности, 365 дней (Bybit)
- Метод: NOTEARS-MLP с λ=0.01 (нелинейный)
# Структура изученного DAG:# BTCUSDT → ETHUSDT (вес: 0.58)# BTCUSDT → BNBUSDT (вес: 0.41)# ETHUSDT → SOLUSDT (вес: 0.37)# ETHUSDT → ADAUSDT (вес: 0.29)# ETHUSDT → DOTUSDT (вес: 0.33)# BNBUSDT → XRPUSDT (вес: 0.22)
# Корень: BTCUSDT (чистый экзогенный драйвер)# Слой 1: ETHUSDT, BNBUSDT# Слой 2: SOLUSDT, ADAUSDT, DOTUSDT, XRPUSDT
# Сигнал: при положительном структурном шоке BTC входим в ETH и BNB (слой 1)# Период удержания: определяется длиной пути × средней дневной скоростью реверсии# Бэктест 365 дней: Шарп 1.38, доля выигрышей 59.2%Пример 3: Макро-акции причинный граф
Обнаружение того, какие макропеременные причинно движут секторами акций:
- Макропеременные: VIX, DXY, 10-летняя доходность, кредитный спред (HYG/LQD), нефть (CL=F)
- Секторы акций: XLK, XLY, XLE, XLF, XLV (yfinance)
- Метод: NOTEARS на расширенной панели (5 макро + 5 акции)
# Изученный макро-акции причинный граф:# VIX → XLV (страх движет защитным здравоохранением)# VIX → XLF (страх влияет на финансы через кредит)# DXY → XLE (сила доллара движет энергетикой)# DXY → XLY (доллар vs потребительский импорт)# 10Y → XLF (доходности напрямую движут финансами)# Oil → XLE (товарный рынок нефти движет акциями энергетики)# HYG → XLY (кредитные условия движут потребительским дискреционным)
# Причинный портфель: хеджируем XLF против 10-летней доходности# Используем производный от DAG коэффициент хеджирования: шорт 0.31 * TLT на единицу XLF# Этот причинный хедж более устойчив между режимами, чем хедж по OLS-бетеФреймворк бэктестинга
Компоненты стратегии
Фреймворк бэктестинга реализует:
- Обучение структуры DAG: скользящая оценка NOTEARS с расписанием переподгонки
- Анализ причинного графа: идентификация корневых узлов, перечисление путей, веса распространения
- Генерация сигналов: торговля нижестоящими активами на основе шоков корневых узлов и распространения DAG
- Управление рисками: определение размера позиции в соответствии с причинным паритетом риска; стоп-лосс при разрушении структуры графа
Отслеживаемые метрики
| Метрика | Описание |
|---|---|
| Коэффициент Шарпа | Доходность с поправкой на риск (годовая) |
| Коэффициент Сортино | Доходность с поправкой на риск убытков |
| Максимальная просадка | Наибольшее снижение от пика до минимума |
| Доля выигрышей | Процент прибыльных сделок |
| Фактор прибыли | Валовая прибыль / валовые убытки |
| Разреженность графа | Среднее число рёбер в изученном DAG |
| Частота нарушений ацикличности | % переподгонок с h(W) > допуска |
| Стабильность рёбер | % рёбер, стабильных в последовательных окнах |
Пример результатов бэктеста
Бэктест стратегии причинного портфеля на основе DAG (2019-2024)================================================================Активы: 7 крупных крипто (Bybit, дневные) + 5 макро (yfinance)Метод: NOTEARS (λ=0.05), скользящее окно 180 дней, ежеквартальная переподгонкаСтратегия: причинный паритет риска на основе компонентов DAG
Статистика графа:- Среднее число рёбер в окне: 8.3 (разреженный, интерпретируемый)- Среднее число корневых узлов: 2.1 (BTC стабильно является корнем)- Стабильность рёбер между окнами: 74.2%- Нарушения ацикличности при завершении: 0%
Производительность:- Общая доходность: 53.4%- Коэффициент Шарпа: 1.47- Коэффициент Сортино: 1.96- Макс. просадка: -13.1%- Доля выигрышей: 61.3%- Фактор прибыли: 2.21Оценка производительности
Сравнение с альтернативными методами
| Метод | Годовая доходность | Шарп | Макс. просадка | Доля выигрышей |
|---|---|---|---|---|
| Равновзвешенный портфель | 29.4% | 0.72 | -32.1% | — |
| Минимальная дисперсия (корреляция) | 24.8% | 0.89 | -18.7% | — |
| Портфель PCA-факторов | 31.2% | 1.03 | -16.4% | — |
| Причинные пары Грейнджера | 41.3% | 1.31 | -11.2% | 57.9% |
| Структурные шоки VarLiNGAM | 47.8% | 1.42 | -10.4% | 60.1% |
| DAG причинный паритет риска | 53.4% | 1.47 | -13.1% | 61.3% |
Криптоактивы (Bybit, дневные) 2019-2024. Прошлые результаты не гарантируют будущих.
Ключевые выводы
- Структурная разреженность информативна: штраф L1 NOTEARS восстанавливает DAG с 8-12 рёбрами среди 12 активов, устраняя ложные корреляции, снижающие производительность портфеля.
- Стабильность корневого узла: BTC стабильно идентифицируется как корневой узел, подтверждая доминирующую причинную роль биткоина на крипторынках.
- Устойчивость к режимам: структура причинного графа более стабильна между рыночными режимами, чем матрица корреляций, что приводит к меньшему обороту стратегии и лучшей внеобразовательной производительности.
- Причинный паритет риска превосходит: выделение равного риска причинно независимым компонентам превосходит стандартный паритет риска (на основе корреляций) за счёт снижения скрытой причинной концентрации.
Ограничения
- Допущение гауссова шума: стандартный NOTEARS предполагает линейные гауссовы ошибки; финансовые доходности негауссовы. Следует предпочесть варианты NOTEARS-MLP или на основе LiNGAM.
- Марковская эквивалентность: линейные гауссовы DAG идентифицируются только до класса марковской эквивалентности; несколько DAG могут одинаково хорошо соответствовать данным, требуя дополнительных допущений или эксплуатации негауссовости.
- Вычислительная стоимость: NOTEARS-MLP значительно дороже линейного NOTEARS; может быть нецелесообразен для очень больших вселенных (K > 100) без ускорения GPU.
- Требование стационарности: обучение DAG по доходностям предполагает стационарность; скользящая оценка частично решает эту проблему, но вносит шум оценки.
- Скрытые конфаундеры: NOTEARS предполагает отсутствие ненаблюдаемых конфаундеров; FCI (Fast Causal Inference) следует использовать при подозрении на скрытые общие причины.
Будущие направления
-
GPU-ускоренный NOTEARS: реализация оптимизации дополненного лагранжиана на GPU для изучения DAG над сотнями активов в реальном времени, обеспечивая ежедневные или внутридневные обновления причинного графа.
-
Временные причинные DAG: объединение NOTEARS со структурой временных рядов (скользящие окна, временная регуляризация) для получения динамических причинных графов, отражающих эволюцию финансовых зависимостей в течение рыночных циклов.
-
Причинное обучение с подкреплением: использование изученного DAG как модели мира для агента торговли с обучением с подкреплением, обеспечивающего рассуждение на основе вмешательства («что произойдёт, если я куплю BTC?») вместо чисто наблюдательного предсказания.
-
Федеративное причинное обучение: изучение причинного графа из распределённых источников данных (несколько бирж, управляющих активами) без обмена необработанными данными, с использованием федеративной оптимизации для сохранения конфиденциальности при улучшении точности каузального обнаружения.
-
Устойчивое обучение DAG при сдвиге распределения: разработка вариантов NOTEARS, явно оптимизирующих стабильность причинного графа в различных рыночных режимах, с использованием распределительно устойчивой оптимизации или инвариантного причинного предсказания.
-
Интеграция с графами знаний: объединение изученных статистических DAG с графами предметных знаний (таксономии секторов, отношения цепочки поставок) для ограничения поиска структуры и создания более экономически интерпретируемых причинных моделей.
Список литературы
-
Zheng, X., Aragam, B., Ravikumar, P., & Xing, E.P. (2018). DAGs with NO TEARS: Continuous Optimization for Structure Learning. Advances in Neural Information Processing Systems (NeurIPS), 31.
-
Peters, J., Janzing, D., & Schölkopf, B. (2017). Elements of Causal Inference: Foundations and Learning Algorithms. MIT Press.
-
Spirtes, P., Glymour, C., & Scheines, R. (2000). Causation, Prediction, and Search. MIT Press.
-
Chickering, D.M. (2002). Optimal Structure Identification with Greedy Search. Journal of Machine Learning Research, 3, 507-554.
-
Zheng, X., Dan, C., Aragam, B., Ravikumar, P., & Xing, E.P. (2020). Learning Sparse Nonparametric DAGs with Reinforcement Learning. International Conference on Artificial Intelligence and Statistics (AISTATS).
-
Lachapelle, S., Brouillard, P., Deleu, T., & Lacoste-Julien, S. (2020). Gradient-Based Neural DAG Learning. International Conference on Learning Representations (ICLR).
-
Lopez-Paz, D., Nishihara, R., Chintala, S., Scholkopf, B., & Bottou, L. (2017). Discovering Causal Signals in Images. CVPR.
-
Koller, D., & Friedman, N. (2009). Probabilistic Graphical Models: Principles and Techniques. MIT Press.