Глава 99: VarLiNGAM на финансовых рынках
Обзор
VarLiNGAM (векторная авторегрессионная линейная негауссова ациклическая модель) — это метод каузального обнаружения, объединяющий мощь моделирования многомерных временных рядов векторной авторегрессии (VAR) с гарантиями идентифицируемости причинности LiNGAM. В то время как стандартная причинность Грейнджера устанавливает предсказательное предшествование, она не может определить направление мгновенных причинных эффектов внутри одного временного шага. VarLiNGAM решает эту проблему, используя негауссову структуру распределений финансовых доходностей для однозначной идентификации причинного направления — даже для одновременных связей.
На финансовых рынках VarLiNGAM устраняет ключевое ограничение VAR-моделей: одновременность. Когда несколько активов реагируют на одну и ту же новость в рамках одного торгового бара, стандартный VAR рассматривает это как коррелированные ошибки и не может определить, какой актив является причиной движения другого. VarLiNGAM использует анализ независимых компонент (ICA) для разложения этих одновременных шоков на независимые причины, раскрывая мгновенный причинный поток между активами.
В данной главе развивается статистическая теория VarLiNGAM, демонстрируется её применение к крипторынкам и фондовым рынкам с использованием данных Bybit и yfinance, предоставляются реализации на Python и Rust, а также проводится сравнительный анализ торговых стратегий на основе VarLiNGAM с альтернативами на основе VAR и причинности Грейнджера.
Содержание
- Введение в VarLiNGAM
- Математические основы
- VarLiNGAM vs VAR и причинность Грейнджера
- Применение в трейдинге
- Реализация на Python
- Реализация на Rust
- Практические примеры с данными фондового и крипторынка
- Фреймворк бэктестинга
- Оценка производительности
- Будущие направления
Введение в VarLiNGAM
Проблема одновременности на финансовых рынках
Когда выходит экономический отчёт, несколько активов реагируют одновременно в рамках одной минуты или даже секунды. Стандартные VAR-модели улавливают запаздывающие эффекты, но рассматривают одновременные совместные движения как коррелированный шум:
Y_t = A₁ Y_{t-1} + ... + Aₚ Y_{t-p} + ε_t, Cov(ε_t) = ΩОстатки ε_t одновременно коррелированы, но VAR не может определить, вызывает ли актив A изменения актива B или наоборот в рамках одного временного шага. Это и есть проблема одновременности.
LiNGAM: каузальное обнаружение из негауссовости
Ключевая идея LiNGAM (Shimizu et al., 2006) заключается в том, что когда истинная каузальная модель генерирует негауссов независимый шум, причинное направление идентифицируемо из данных. Для простого бивариатного случая:
Если X → Y: Y = bX + e_Y, e_X и e_Y — негауссовы и независимыПри гауссовом шуме X → Y и Y → X дают статистически эквивалентные модели. При негауссовости только истинное причинное направление имеет независимые остатки — что можно обнаружить с помощью ICA.
Финансовые доходности обладают выраженной негауссовостью (толстые хвосты, скошенность), что делает LiNGAM особенно подходящим для финансового каузального обнаружения.
VarLiNGAM: объединение VAR с LiNGAM
VarLiNGAM (Hyvärinen et al., 2010) моделирует временные ряды с учётом как лагированных, так и мгновенных причинных эффектов:
x_t = Σᵢ Bᵢ x_{t-i} + B₀ x_t + e_tГде:
- Bᵢ — матрицы лагированных коэффициентов (улавливают лагированные эффекты типа Грейнджера)
- B₀ — строго нижнетреугольная матрица мгновенных эффектов
- e_t — независимые негауссовы шумовые члены
Это позволяет VarLiNGAM идентифицировать полную причинную структуру: как временно-лагированный причинный граф, так и мгновенный причинный порядок внутри каждого временного шага.
Математические основы
Структурная модель VarLiNGAM
Полная структурная VarLiNGAM-модель для K переменных:
x_t = B₀ x_t + B₁ x_{t-1} + B₂ x_{t-2} + ... + Bₘ x_{t-m} + e_tПреобразуя (I - B₀) x_t = Σᵢ Bᵢ x_{t-i} + e_t:
x_t = (I - B₀)⁻¹ Σᵢ Bᵢ x_{t-i} + (I - B₀)⁻¹ e_t = Σᵢ Aᵢ x_{t-i} + η_tЭто приведённая форма VAR, где η_t = (I - B₀)⁻¹ e_t — остатки приведённой формы.
Алгоритм оценки
Оценка VarLiNGAM проходит в два этапа:
Этап 1: Оценка приведённого VAR
x_t = Σᵢ Aᵢ x_{t-i} + η_tОценивается МНК или методом максимального правдоподобия. Это улавливает все лагированные причинные эффекты.
Этап 2: Применение LiNGAM к остаткам
Остатки η_t содержат мгновенную причинную структуру. Применяем LiNGAM для восстановления B₀:
η_t = (I - B₀)⁻¹ e_t = W⁻¹ e_tГде W = (I - B₀) восстанавливается с помощью ICA:
- Оцениваем матрицу размешивания ICA Ŵ из η_t (например, с помощью FastICA)
- Находим перестановку строк Ŵ, делающую её максимально близкой к нижнетреугольной
- Полученная матрица определяет мгновенный причинный порядок B₀
Условие идентифицируемости
VarLiNGAM идентифицируем, когда:
- Шумовые члены e_t взаимно независимы
- Не более одного шумового члена является гауссовым (остальные должны быть негауссовыми)
- Выполняется условие ацикличности: B₀ является строго нижнетреугольной при некотором упорядочении переменных
Финансовые доходности, как правило, удовлетворяют условию 2 благодаря распределениям с тяжёлыми хвостами (распределение Стьюдента, устойчивые распределения).
Оценка причинного эффекта
После оценки B₀ и Bᵢ суммарный причинный эффект переменной j на переменную i при лаге k:
TE_{j→i}(k) = [Ψ_k]_{ij}Где матрицы причинных эффектов Ψ_k вычисляются рекурсивно:
Ψ₀ = (I - B₀)⁻¹Ψ_k = Σᵢ₌₁ᵏ Ψ_{k-i} Aᵢ, k ≥ 1Бутстрап-доверительные интервалы
Статистическая неопределённость оцениваемых причинных эффектов квантифицируется с помощью бутстрапа:
- Подгоняем VarLiNGAM к полному датасету; получаем B̂₀, B̂₁, …, B̂ₘ
- Моделируем R бутстрап-выборок из подогнанной модели
- Повторно оцениваем VarLiNGAM для каждой бутстрап-выборки
- Вычисляем эмпирические доверительные интервалы из бутстрап-распределения Ψ_k
VarLiNGAM vs VAR и причинность Грейнджера
Сравнение каузальных методов
| Характеристика | VAR | Причинность Грейнджера | VarLiNGAM |
|---|---|---|---|
| Лагированные причинные эффекты | Да | Да (только тест) | Да (оценённые) |
| Мгновенные причинные эффекты | Нет | Нет | Да |
| Идентификация причинного направления | Нет | Частично | Полная |
| Требуется гауссов шум | Да | Да | Нет (негауссов) |
| Гарантии идентифицируемости | Нет | Нет | Да (при негауссовости) |
| Величина причинного эффекта | Нет | Нет | Да |
| Вычислительная стоимость | Низкая | Низкая | Средняя |
Когда VarLiNGAM превосходит аналоги
| Сценарий | Лучший метод |
|---|---|
| Нужны только лагированные кросс-активные эффекты | Причинность Грейнджера |
| Мгновенный причинный поток внутри бара | VarLiNGAM |
| Полный причинный граф с размерами эффектов | VarLiNGAM |
| Высокочастотные данные (тиковый уровень) | Процессы Хоукса |
| Нелинейные причинные связи | Перенос энтропии / CCM |
| Большое K (>20 активов) | Sparse VarLiNGAM / обучение DAG |
Применение в трейдинге
1. Мгновенный причинный поток для внутридневных стратегий
VarLiNGAM определяет, какой актив движется первым внутри торгового бара, формируя внутридневные сигналы:
Поток секторов акций:
# VarLiNGAM на 5-минутных доходностях: секторы S&P 500# Определяет мгновенный причинный порядок: XLK → XLY → XLE → XLF# Вывод: движения технологического сектора мгновенно определяют потребительский# Сигнал: используем текущий доход бара XLK для предсказания текущего остатка XLYВнутрибарная причинность в криптовалютах:
- VarLiNGAM на 1-минутных барах: определяем, лидирует ли BTC или ETH в каждую минуту
- Мгновенный порядок может меняться между торговыми сессиями (Азия vs США)
2. Анализ структурного импульсного отклика
В отличие от импульсных откликов приведённой формы VAR, VarLiNGAM предоставляет структурно идентифицированные импульсные отклики:
- Вычисляем структурные импульсные отклики с использованием оцениваемого B₀
- Определяем, какие шоки имеют наибольшее кросс-активное распространение
- Торгуем активами, ожидаемо реагирующими на обнаруженный шок
Пример: структурный шок в BTC распространяется на ETH с 2-часовым лагом и на SOL с 4-часовым. Когда структурное нововведение BTC велико и положительно, входим в длинную позицию по ETH (горизонт 2ч) и SOL (горизонт 4ч).
3. Причинное хеджирование портфеля
Причинная структура VarLiNGAM формирует превосходящие коэффициенты хеджирования:
- Оцениваем B₀ и Bᵢ по историческим доходностям
- Используем суммарные причинные эффекты TE_{j→i}(k) для вычисления динамических коэффициентов хеджирования
- Строим дельта-нейтральные портфели с учётом как лагированной, так и мгновенной причинности
Это даёт более надёжные хеджи по сравнению с хеджами на основе OLS-беты при наличии мгновенных причинных эффектов.
4. Обнаружение режима через сдвиги причинной структуры
Изменения в мгновенном причинном порядке B₀ сигнализируют о смене режима рынка:
- До кризиса: акции лидируют над облигациями (режим принятия риска)
- Начало кризиса: облигации лидируют над акциями (бегство в безопасность)
- Восстановление: кредитный рынок лидирует над акциями
Отслеживаем стабильность B₀ с помощью скользящих подгонок VarLiNGAM; значимое изменение перестановки сигнализирует о переходе режима.
5. Каузальное моделирование факторов риска
Используем VarLiNGAM для определения, какие макрофакторы причинно движут доходностью активов:
- Расширяем панель доходностей активов макрофакторами (VIX, DXY, наклон кривой доходности)
- Подгоняем VarLiNGAM к расширенной панели
- Используем идентифицированную причинную структуру для нейтрального к факторам построения портфеля
- Хеджируем от макрофакторов, определённых как прямые причины
Реализация на Python
Основные модули
Реализация на Python предоставляет:
- VarLiNGAMModel: полный конвейер оценки (этап VAR + этап ICA LiNGAM)
- CausalEffectEstimator: вычисление суммарных причинных эффектов и импульсных откликов
- VarLiNGAMDataLoader: загрузка данных из Bybit и yfinance
- VarLiNGAMBacktester: бэктестинг стратегий на основе сигналов причинных эффектов
Базовое использование
from varlingam import VarLiNGAMModelfrom data_loader import VarLiNGAMDataLoader
# Загрузка криптоданных с Bybitloader = VarLiNGAMDataLoader( symbols=["BTCUSDT", "ETHUSDT", "SOLUSDT", "BNBUSDT"], source="bybit", interval="1h", lookback_days=180,)returns = loader.load_returns()
# Подгонка VarLiNGAMmodel = VarLiNGAMModel( max_lag=4, ica_algorithm="FastICA", bootstrap_samples=500,)model.fit(returns)
# Просмотр мгновенного причинного порядкаprint("Мгновенный причинный порядок:", model.causal_order_)# Вывод: ['BTCUSDT', 'BNBUSDT', 'ETHUSDT', 'SOLUSDT']
# Суммарные причинные эффекты при лаге 0 (мгновенные)effects_lag0 = model.total_causal_effects(lag=0)print("Мгновенный причинный эффект BTC→ETH:", effects_lag0["BTCUSDT"]["ETHUSDT"])Структурный импульсный отклик
from varlingam import StructuralImpulseResponse
# Вычисление структурного IRF для 12-часового горизонтаirf = StructuralImpulseResponse(model, horizon=12)irf_matrix = irf.compute()
# Визуализация распространения шока BTC на ETHimport matplotlib.pyplot as pltplt.plot(irf_matrix["BTCUSDT"]["ETHUSDT"], label="Шок BTC → отклик ETH")plt.xlabel("Часов после шока")plt.ylabel("Величина отклика")plt.legend()plt.show()Генерация торговых сигналов
from varlingam import VarLiNGAMSignalGenerator
generator = VarLiNGAMSignalGenerator( model=model, effect_asset="ETHUSDT", cause_assets=["BTCUSDT"], signal_threshold=1.5, # Сигнал при причинном эффекте > 1.5 стд. откл. holding_period=3, # Удерживать 3 часа)
signals = generator.generate(returns)print(f"Сгенерировано {signals['long'].sum()} длинных сигналов")print(f"Сгенерировано {signals['short'].sum()} коротких сигналов")Бэктестинг
from backtest import VarLiNGAMBacktester
backtester = VarLiNGAMBacktester( initial_capital=100_000, transaction_cost=0.0005, refit_window=60, # Пересчёт каждые 60 дней position_size=0.15,)
results = backtester.run(signals=signals, prices=returns)print(f"Коэффициент Шарпа: {results['sharpe_ratio']:.3f}")print(f"Макс. просадка: {results['max_drawdown']:.2%}")print(f"Стабильность причинного порядка: {results['order_stability']:.2%}")Реализация на Rust
Обзор
Реализация на Rust обеспечивает производственную производительность:
reqwestдля интеграции с REST API Bybit- Собственная реализация FastICA для этапа LiNGAM
- Параллельное вычисление бутстрап-доверительных интервалов с использованием
rayon - Потоковый VarLiNGAM для онлайн-обновлений причинной структуры
Быстрый старт
use varlingam_markets::{ VarLiNGAM, BybitClient, CausalEffectEstimator, BacktestEngine,};
#[tokio::main]async fn main() -> anyhow::Result<()> { // Получение данных с Bybit let client = BybitClient::new(); let assets = vec!["BTCUSDT", "ETHUSDT", "SOLUSDT", "BNBUSDT"];
let mut returns_matrix = Vec::new(); for symbol in &assets { let klines = client.fetch_klines(symbol, "60", 500).await?; returns_matrix.push(klines.log_returns()); }
// Подгонка VarLiNGAM let model = VarLiNGAM::builder() .max_lag(4) .ica_algorithm(IcaAlgorithm::FastICA) .bootstrap_samples(500) .build();
let fitted = model.fit(&returns_matrix)?;
// Вывод мгновенного причинного порядка println!("Причинный порядок: {:?}", fitted.causal_order());
// Суммарные причинные эффекты let effects = CausalEffectEstimator::new(&fitted); let btc_to_eth = effects.total_effect(0, 1, 0)?; // BTC→ETH, лаг 0 println!("BTC→ETH мгновенный эффект: {:.4}", btc_to_eth);
// Бутстрап-доверительные интервалы let ci = effects.bootstrap_ci(0, 1, 0, 0.95)?; println!("95% ДИ: [{:.4}, {:.4}]", ci.lower, ci.upper);
Ok(())}Структура проекта
99_varlingam_markets/├── Cargo.toml├── src/│ ├── lib.rs│ ├── model/│ │ ├── mod.rs│ │ └── varlingam.rs│ ├── data/│ │ ├── mod.rs│ │ └── bybit.rs│ ├── backtest/│ │ ├── mod.rs│ │ └── engine.rs│ └── trading/│ ├── mod.rs│ └── signals.rs└── examples/ ├── basic_varlingam.rs ├── bybit_causal_discovery.rs └── backtest_strategy.rsПрактические примеры с данными фондового и крипторынка
Пример 1: Причинный поток криптосектора (данные Bybit)
Обнаружение мгновенного причинного порядка среди крупных криптоактивов:
- Активы: BTCUSDT, ETHUSDT, BNBUSDT, SOLUSDT, XRPUSDT
- Данные: часовые бары, 180 дней (Bybit)
- Метод: VarLiNGAM с max_lag=4, FastICA
# Оцениваемый причинный порядок (мгновенный):# BTCUSDT → BNBUSDT → ETHUSDT → SOLUSDT → XRPUSDT
# Интерпретация: BTC является основным причинным драйвером в рамках каждого часа# BNB реагирует на BTC и движет ETH; ETH движет SOL и XRP
# Лагированные причинные эффекты (лаг = 1 час):# BTC → ETH: 0.42 (сильный положительный)# BTC → SOL: 0.38 (сильный положительный)# ETH → XRP: 0.19 (умеренный положительный)# BNB → XRP: 0.11 (слабый положительный)
# Торговый сигнал: большой положительный структурный шок BTC → длинная ETH (горизонт 1ч)# Бэктест 180 дней: Шарп 1.24, доля выигрышей 58.3%Пример 2: Причинная структура секторов акций (yfinance)
VarLiNGAM применён к секторным ETF S&P 500 на дневных доходностях:
- Активы: XLK (Технологии), XLY (Потребители), XLE (Энергетика), XLF (Финансы), XLV (Здравоохранение)
- Данные: 5 лет дневных доходностей (yfinance)
- Метод: VarLiNGAM с max_lag=5, bootstrap_samples=1000
# Оцениваемый причинный порядок (мгновенный):# XLK → XLY → XLF → XLV → XLE
# Лагированные эффекты (лаг = 1 день):# XLK → XLY: 0.31 (технологии лидируют над потребителями)# XLF → XLV: 0.22 (финансы лидируют над здравоохранением)# XLE → XLF: 0.18 (энергетика лидирует над финансами через кредитный канал)
# Портфельный вывод: хеджируем XLY против XLK для выделения идиосинкратических доходностей XLYПример 3: Макро-крипто каузальный анализ
Тестирование того, движут ли макрофакторы причинно доходностью криптовалют:
- Активы: VIX, DXY, GLD (ETF на золото), BTCUSDT (Bybit), ETHUSDT (Bybit)
- Данные: дневные доходности, 2021-2024
- Метод: Смешанный VarLiNGAM (yfinance для макро, Bybit для крипто)
# Мгновенный причинный порядок:# VIX → DXY → GLD → BTCUSDT → ETHUSDT
# Ключевые причинные эффекты:# VIX → BTC (лаг=0): -0.28 (рост страха мгновенно депрессирует BTC)# DXY → BTC (лаг=1): -0.21 (сила доллара на следующий день депрессирует BTC)# BTC → ETH (лаг=0): +0.51 (сильный одновременный причинный эффект BTC на ETH)
# Управление рисками: при большом структурном шоке VIX снижаем крипто-экспозициюФреймворк бэктестинга
Компоненты стратегии
Фреймворк бэктестинга реализует:
- Оценка причинной структуры: скользящий VarLiNGAM с настраиваемым окном и частотой переподгонки
- Обнаружение структурных шоков: выявление крупных структурных нововведений в активах-причинах
- Генерация сигналов: вход в позиции по активам-следствиям на основе величин и направлений причинных эффектов
- Управление рисками: определение размера позиции, пропорциональное подтверждённой бутстрапом силе причинного эффекта
Отслеживаемые метрики
| Метрика | Описание |
|---|---|
| Коэффициент Шарпа | Доходность с поправкой на риск (годовая) |
| Коэффициент Сортино | Доходность с поправкой на риск убытков |
| Максимальная просадка | Наибольшее снижение от пика до минимума |
| Доля выигрышей | Процент прибыльных сделок |
| Фактор прибыли | Валовая прибыль / валовые убытки |
| Стабильность причинного порядка | % окон с идентичным причинным порядком |
| Среднее число итераций ICA | Среднее число итераций FastICA до сходимости |
| Покрытие бутстрап-ДИ | % эффектов со значимым 95% ДИ |
Пример результатов бэктеста
Бэктест стратегии структурных шоков VarLiNGAM (2021-2024)===========================================================Активы: BTCUSDT → ETHUSDT (часовые бары, Bybit)Скользящее окно: 120 дней | Пересчёт: каждые 30 днейСигнал: большой структурный шок BTC → торгуем ETH
Статистика причинной структуры:- Подогнано скользящих окон: 36- Окон со стабильным порядком BTC→ETH: 32 (88.9%)- Средний мгновенный эффект BTC→ETH: 0.48- Эффекты со значимым 95% ДИ: 29/36 (80.6%)
Производительность:- Общая доходность: 47.8%- Коэффициент Шарпа: 1.42- Коэффициент Сортино: 1.89- Макс. просадка: -10.4%- Доля выигрышей: 60.1%- Фактор прибыли: 2.07- Стабильность причинного порядка: 88.9%Оценка производительности
Сравнение с альтернативными методами
| Метод | Годовая доходность | Шарп | Макс. просадка | Доля выигрышей |
|---|---|---|---|---|
| Купи и держи ETH | 38.1% | 0.87 | -35.4% | — |
| Сигналы на основе VAR | 25.3% | 0.94 | -16.2% | 53.7% |
| Лидирование-запаздывание (Грейнджер) | 41.3% | 1.31 | -11.2% | 57.9% |
| Структурные шоки VarLiNGAM | 47.8% | 1.42 | -10.4% | 60.1% |
Результаты на часовых барах BTCUSDT → ETHUSDT, 2021-2024. Прошлые результаты не гарантируют будущих.
Ключевые выводы
- Мгновенная причинность добавляет ценность: VarLiNGAM превосходит методы исключительно на причинности Грейнджера, улавливая внутрибарный причинный поток, давая более высокий коэффициент Шарпа и долю выигрышей.
- Структурные шоки более информативны: использование структурно идентифицированных нововведений (после удаления лагированных эффектов) генерирует более чистые сигналы, чем остатки приведённой формы.
- Стабильность причинного порядка коррелирует с прибыльностью: окна с согласованным причинным порядком дают более качественные сигналы; нестабильные периоды следует исключать из торговли.
- Негауссовость обеспечивает идентифицируемость: распределения финансовых доходностей имеют тяжёлые хвосты, удовлетворяя условию идентифицируемости VarLiNGAM и подтверждая применимость подхода ICA.
Ограничения
- Сходимость ICA: FastICA может не сходиться или сходиться к локальному оптимуму, особенно при малых выборках или близкогауссовых распределениях.
- Неоднозначность перестановки: шаг ICA восстанавливает причинный порядок с точностью до перестановки; неправильное разрешение перестановки снижает производительность.
- Допущение линейности: VarLiNGAM предполагает линейные мгновенные эффекты; нелинейные одновременные связи требуют расширений (постнелинейный LiNGAM).
- Вычислительная стоимость: полные бутстрап-доверительные интервалы дороги при большом K; разреженный VarLiNGAM нужен для портфелей со многими активами.
- Ограничение ацикличности: VarLiNGAM предполагает отсутствие мгновенных циклов; на практике петли обратной связи внутри одного бара возможны на ликвидных рынках.
Будущие направления
-
Разреженный VarLiNGAM: включение L1-регуляризации (LASSO) в матрицы коэффициентов для работы с большими вселенными активов (K > 20) без запредельной вычислительной стоимости.
-
Нелинейные расширения: постнелинейный LiNGAM и варианты на основе ядерных методов, снимающие допущение линейности для мгновенных эффектов и лучше улавливающие сложную внутридневную рыночную динамику.
-
Онлайн-VarLiNGAM: рекурсивные алгоритмы оценки, инкрементально обновляющие причинную структуру по мере поступления новых данных, обеспечивая мониторинг причинности в реальном времени без полной переподгонки.
-
VarLiNGAM с переключением режима: варианты с переключением Маркова, где как причинный порядок, так и матрицы коэффициентов переключаются между латентными режимами рынка, автоматически адаптируя торговые сигналы.
-
Глубокий каузальный VarLiNGAM: объединение VarLiNGAM с глубоким обучением для модели шума, позволяющее использовать более богатые негауссовые распределения и лучше обрабатывать кластеризацию волатильности.
-
Интеграция с обучением DAG: использование оценок VarLiNGAM как инициализации для алгоритмов обучения структуры DAG (см. Главу 100) для объединения скорости методов на основе ICA с общностью оценки DAG на основе оценочной функции.
Список литературы
-
Hyvärinen, A., Zhang, K., Shimizu, S., & Hoyer, P.O. (2010). Estimation of a Structural Vector Autoregression Model Using Non-Gaussianity. Journal of Machine Learning Research, 11, 1709-1731.
-
Shimizu, S., Hoyer, P.O., Hyvärinen, A., & Kerminen, A. (2006). A Linear Non-Gaussian Acyclic Model for Causal Discovery. Journal of Machine Learning Research, 7, 2003-2030.
-
Lütkepohl, H. (2005). New Introduction to Multiple Time Series Analysis. Springer.
-
Hyvärinen, A., & Oja, E. (2000). Independent Component Analysis: Algorithms and Applications. Neural Networks, 13(4-5), 411-430.
-
Peters, J., Mooij, J.M., Schölkopf, B., & Janzing, D. (2014). Causal Discovery with Continuous Additive Noise Models. Journal of Machine Learning Research, 15, 2009-2053.
-
Moneta, A., Entner, D., Hoyer, P.O., & Coad, A. (2013). Causal Inference by Independent Component Analysis: Theory and Applications. Oxford Bulletin of Economics and Statistics, 75(5), 705-730.
-
Swanson, N.R., & Granger, C.W.J. (1997). Impulse Response Functions Based on a Causal Approach to Residual Orthogonalization in Vector Autoregressions. Journal of the American Statistical Association, 92(437), 357-367.