← К списку статей
August 18, 2026
5 мин. чтения

PCMCI: обнаружение причинно-следственных связей в многомерных временных рядах криптовалют

PCMCI: обнаружение причинно-следственных связей в многомерных временных рядах криптовалют
#causal-inference
#PCMCI
#causal-discovery
#time-series
#crypto

PCMCI, разработанный Якобом Рунге (2018, 2020), представляет собой алгоритм причинного обнаружения для многомерных временных рядов. Он сочетает в себе алгоритм ПК для обучения графической модели с тестом мгновенной условной независимости (MCI), набор условий которого создан для одновременной нейтрализации трех факторов: общих драйверов, косвенных путей и автокорреляции исходной переменной. Эту последнюю часть стоит прочитать внимательно — именно по этой причине PCMCI не наследует уровень ложноположительных результатов, который снижает наивное тестирование опережения-запаздывания в динамичных сериях.

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

Что это добавляет к тому, что уже есть

Корреляционная коинтеграция и причинно-следственная связь как отдельные структуры отношений

Блог уже провел корреляционную работу. Совместное движение криптовалют — это во многом артефакт общего фактора. корреляция сигналов между парами показывает, что один только ПК1 поглощает 65% дисперсии в книге из десяти пар. Высокая парная корреляция не является торговым отношением, поэтому статистический арбитраж и парная торговля Вместо этого он стремится к коинтеграции. А сама зависимость даже не стабильна: Динамическая корреляция DCC-GARCH перечисляет, почему статическая выборочная корреляция предполагает стационарность зависимости, постоянную предельную волатильность и симметрию по направлению, но ни одно из которых не выполняется.

Ни один из них не создает направленный граф. Они говорят вам, что BTC, ETH и SOL движутся вместе и что большую часть этого объясняет общий фактор; они не говорят вам, управляет ли BTC SOL напрямую или ассоциация полностью осуществляется через ETH. Причинность Грейнджера — это обычный способ определения направления, но стандартный Грейнджер двумерен — он не может отделить ненаблюдаемую общую движущую силу от подлинной причинности.

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

Алгоритм PCMCI

Двухэтапное причинно-следственное открытие, выявляющее направленную сеть

PCMCI работает в два этапа. На первом этапе определяется набор кандидатов в причинные родители для каждой переменной. На втором этапе каждая ссылка-кандидат проверяется с помощью тщательно составленного теста условной независимости.

Этап 1: Выбор стабильного состояния ПК (PC1)

Цель этапа 1 — найти для каждой переменной XtjX_t^j, суперсет B^(Xtj)\widehat{\mathcal{B}}(X_t^j) своих истинных причинных родителей. Этот набор позже будет использоваться в качестве набора для кондиционирования на этапе 2.

Алгоритм начинается с полного набора* всех запаздывающих переменных в качестве потенциальных родительских переменных:

B^0(Xtj)={Xtτi:i=1,,N,τ=1,,τmax}\widehat{\mathcal{B}}^0(X_t^j) = \{ X_{t-\tau}^i : i = 1, \ldots, N, \quad \tau = 1, \ldots, \tau_{\max} \}

Затем он итеративно удаляет переменные, которые условно независимы от XtjX_t^j. На итерации pp, алгоритм проверяет каждого потенциального родителя XtτiX_{t-\tau}^i за независимость с XtjX_t^j, кондиционирование на pp сильнейшие оставшиеся родители (исключая XtτiX_{t-\tau}^i сам):

Xtτi ⁣ ⁣ ⁣XtjSremove Xtτi from B^(Xtj)X_{t-\tau}^i \perp\!\!\!\perp X_t^j \mid \mathbf{S} \quad \Rightarrow \quad \text{remove } X_{t-\tau}^i \text{ from } \widehat{\mathcal{B}}(X_t^j)

где S\mathbf{S} это набор pp переменные в B^(Xtj){Xtτi}\widehat{\mathcal{B}}(X_t^j) \setminus \{X_{t-\tau}^i\} с самой сильной ассоциацией с XtjX_t^j.

"Стабильный" аспект означает, что решения об удалении принимаются за одну итерацию. pp основаны на родительских наборах из предыдущей итерации, что предотвращает зависимость результатов от порядка. Это имеет решающее значение для воспроизводимости.

Уровень значимости αPC\alpha_{\text{PC}} на этом этапе намеренно устанавливается свободно (часто 0,2 или выше или определяется автоматически через pc_alpha=None вариант в тиграмите). Цель здесь не в том, чтобы контролировать ложные срабатывания, а в том, чтобы сохранить всех истинных родителей, одновременно отсекая как можно больше нерелевантных переменных. Несколько ложных срабатываний в B^\widehat{\mathcal{B}} приемлемы; ложноотрицательных результатов нет.

Этап 2: Тест на мгновенную условную независимость (MCI)

Как только мы получим предполагаемые родительские наборы B^(Xtj)\widehat{\mathcal{B}}(X_t^j) для всех переменных на этапе 2 проверяется каждая потенциальная причинно-следственная связь. XtτiXtjX_{t-\tau}^i \to X_t^j используя статистику MCI:

Xtτi ⁣ ⁣ ⁣XtjB^(Xtj){Xtτi},B^(Xtτi)X_{t-\tau}^i \perp\!\!\!\perp X_t^j \mid \widehat{\mathcal{B}}(X_t^j) \setminus \{X_{t-\tau}^i\}, \quad \widehat{\mathcal{B}}(X_{t-\tau}^i)

Ключевым нововведением является комплект кондиционирования. Мы ставим условие:

  1. Родители цели B^(Xtj){Xtτi}\widehat{\mathcal{B}}(X_t^j) \setminus \{X_{t-\tau}^i\}: это устраняет влияние общих драйверов и других косвенных путей в XtjX_t^j.
  2. Родители источника B^(Xtτi)\widehat{\mathcal{B}}(X_{t-\tau}^i): это удаляет автокорреляцию исходной переменной, предотвращая завышение статистики испытаний.

Обуславливая оба набора одновременно, MCI эффективно изолирует прямой, мгновенный причинный эффект XtτiX_{t-\tau}^i на XtjX_t^j с определенной задержкой τ\tau, за вычетом всех мешающих факторов, медиаторов и эффектов автокорреляции.

Статистика теста может быть любым допустимым тестом условной независимости. Для линейных отношений стандартным выбором является частичная корреляция. Для нелинейных зависимостей условная взаимная информация (CMI), оцениваемая через kkМожно использовать методы ближайшего соседа или тест GPDC (корреляция расстояния гауссовского процесса).

Частичная корреляция как тест по умолчанию

Для большинства финансовых приложений тест частичной корреляции (ParCorr в тиграмите) — рабочая лошадка. Данные переменные XX, YYи комплект кондиционирования Z\mathbf{Z}, частичная корреляция:

ρXYZ=corr(rX,rY)\rho_{XY \cdot \mathbf{Z}} = \text{corr}(r_X, r_Y)

где rXr_X и rYr_Y остатки от регрессии XX и YY на Z\mathbf{Z}, соответственно:

rX=XX^(Z),rY=YY^(Z)r_X = X - \hat{X}(\mathbf{Z}), \quad r_Y = Y - \hat{Y}(\mathbf{Z})

Другими словами, частичная корреляция измеряет линейную связь между XX и YY после устранения линейного влияния переменных условий Z\mathbf{Z}. При нулевой гипотезе условной независимости с гауссовскими данными тестовая статистика следует известному распределению, что позволяет точно pp-вычисление значений.

Значения частичной корреляции лежат в [1,1][-1, 1] и обеспечить естественное ранжирование силы причинно-следственных связей. Частичная корреляция 0,3 между BTC при лаге 1 и ETH при лаге 0, условная для обоих родительских наборов, означает: "После удаления эффектов всех выявленных искажающих факторов и автокорреляции шок доходности BTC на одно стандартное отклонение прогнозирует движение доходности ETH на 0,3 стандартного отклонения на один период позже".

От результатов теста к причинно-следственному графику (DAG)

Выходные данные PCMCI представляют собой пару матриц:

  • val_matrix: Форма (N,N,τmax+1)(N, N, \tau_{\max}+1), содержащий статистику теста MCI (например, частичную корреляцию) для каждой направленной ссылки. XtτiXtjX_{t-\tau}^i \to X_t^j.
  • p_matrix: та же форма, содержащая соответствующие pp-ценности.

Чтобы построить причинный граф, мы устанавливаем пороговое значение pp-матрица на исправленном уровне значимости:

Link XtτiXtj exists if pijτ<αcorrected\text{Link } X_{t-\tau}^i \to X_t^j \text{ exists if } p_{ij\tau} < \alpha_{\text{corrected}}

Какая коррекция не является деталью, на которую можно махнуть рукой. PCMCI-тесты N2×τmaxN^2 \times \tau_{\max} ссылки, которые зависимы по конструкции — каждая ссылка на XtjX_t^j разделяет набор условий со всеми остальными, и исходные ряды с самого начала взаимно коррелируют. Это именно тот режим, в котором простой Беньямини-Хохберг терпит неудачу и гармонический штраф Беньямини-Екутиэли c(M)=j=1M1/jc(M) = \sum_{j=1}^{M} 1/j тот, который выдерживает произвольную зависимость между тестами; сдутый Шарп и множественное тестирование измеряет уровень нулевых ложных обнаружений, которые делают это конкретным. Сообщайте о количестве проверенных ссылок и исправленном пороге рядом с любым публикуемым вами графиком.

Результирующая структура представляет собой граф временных рядов (TSG), который представляет собой ориентированный граф, где:

  • Узлы представляют переменные с определенными временными задержками.
  • Направленные ребра представляют причинно-следственные связи с соответствующими задержками.
  • Петли представляют собой авторегрессионные эффекты.

Эту TSG можно свернуть в сводный график, который показывает только наличие и направление причинно-следственных связей между переменными (агрегирование по лагам), что часто более практично для интерпретации.

Реализация с Тиграмитом

Многомерный конвейер временных рядов, создающий разреженный причинно-следственный граф

Тиграмит является эталонной реализацией PCMCI, разработанной и поддерживаемой группой Якоба Рунге в Немецком аэрокосмическом центре (DLR). Он предоставляет чистый API для обработки данных, множество тестов условной независимости, несколько вариантов PCMCI и встроенную визуализацию.

Установка

pip install tigramite

Проверка работоспособности восстановления (не результат)

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

import numpy as np
import tigramite
from tigramite import data_processing as pp
from tigramite.pcmci import PCMCI
from tigramite.independence_tests.parcorr import ParCorr
from tigramite import plotting as tp


np.random.seed(42)
T, N = 2000, 5
var_names = ["BTC", "ETH", "SOL", "BNB", "AVAX"]
data = np.zeros((T, N))
noise = np.random.randn(T, N) * 0.5

for t in range(2, T):
    data[t, 0] = 0.5 * data[t-1, 0] + noise[t, 0]
    data[t, 1] = 0.5 * data[t-1, 1] + 0.4 * data[t-1, 0] + noise[t, 1]
    data[t, 2] = 0.5 * data[t-1, 2] + 0.3 * data[t-1, 1] + noise[t, 2]
    data[t, 3] = 0.5 * data[t-1, 3] + 0.25 * data[t-1, 0] + noise[t, 3]
    data[t, 4] = 0.5 * data[t-1, 4] + 0.2 * data[t-2, 3] + noise[t, 4]

dataframe = pp.DataFrame(
    data,
    datatime=np.arange(T),
    var_names=var_names,
)

parcorr = ParCorr(significance="analytic")

pcmci = PCMCI(
    dataframe=dataframe,
    cond_ind_test=parcorr,
    verbosity=1,
)

results = pcmci.run_pcmci(
    tau_max=4,        # test lags up to 4 hours
    tau_min=1,        # only lagged (not contemporaneous) links
    pc_alpha=None,    # auto-select alpha for condition selection
    alpha_level=0.01, # significance threshold for final MCI test
)

print("\n--- Significant causal links ---")
pcmci.print_significant_links(
    p_matrix=results["p_matrix"],
    val_matrix=results["val_matrix"],
    alpha_level=0.01,
)

tp.plot_graph(
    val_matrix=results["val_matrix"],
    p_matrix=results["p_matrix"],
    var_names=var_names,
    link_colorbar_label="MCI (partial corr.)",
    node_colorbar_label="Auto-MCI",
    alpha_level=0.01,
    figsize=(10, 6),
)

tp.plot_time_series_graph(
    val_matrix=results["val_matrix"],
    p_matrix=results["p_matrix"],
    var_names=var_names,
    link_colorbar_label="MCI (partial corr.)",
    alpha_level=0.01,
    figsize=(14, 6),
)

Чтение вывода

О подброшенном VAR, print_significant_links возвращает:

Variable BTC has 0 causal parent(s):

Variable ETH has 1 causal parent(s):
    BTC (lag -1): val = 0.38, p = 0.000

Variable SOL has 1 causal parent(s):
    ETH (lag -1): val = 0.28, p = 0.000

Variable BNB has 1 causal parent(s):
    BTC (lag -1): val = 0.24, p = 0.000

Variable AVAX has 1 causal parent(s):
    BNB (lag -2): val = 0.19, p = 0.000

Установленная структура возвращается, включая отрицательный результат, который имеет значение: прямого края BTC -> SOL нет, хотя BTC и SOL сильно коррелируют в этом образце. MCI полностью приписывает ассоциацию посреднику ETH. Именно такое поведение должен производить двойной набор условий, и в его подтверждении и состоит вся суть этого блока. Это прохождение модульного теста, а не вывод о криптографии.

Работа с реальными рыночными данными

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

data = log_returns.values          # (T, N) standardized log-returns
var_names = list(log_returns.columns)

dataframe = pp.DataFrame(data, var_names=var_names)

Две детали тигрита не переносятся из обычного возвратного трубопровода:

  1. Отсутствующие данные: Tigramite поддерживает маскированные массивы для обработки отсутствующих наблюдений. Использовать dataframe.mask чтобы отметить пробелы — не заполняйте их вперед, поскольку сфабрикованное наблюдение распространяется на каждый набор условий, который его содержит.
  2. Выравнивание по частоте: все серии должны находиться в одной временной сетке. Для криптовалют это обычно просто, поскольку биржи предоставляют синхронизированные данные OHLCV.

Исследование, необходимое для этого метода

Все вышеперечисленное — механизмы. Статья не будет опубликована в этом блоге до тех пор, пока машина не направится на реальные данные и не сообщит о том, что обнаружила, в том числе если ответ будет "ничего стабильного". Пробег, который нужно сделать:

  • Настройка: PCMCI+ для почасовой доходности реальной корзины за указанный диапазон дат, tau_max исправлено с помощью рассуждений предметной области, alpha_level = 0.01 с поправкой Беньямини-Екутиэли по всем N2×τmaxN^2 \times \tau_{\max} ссылки. Сообщите о количестве проверенных каналов и скорректированном пороге в соответствии с сдутый Шарп стандарт.
  • Результат для отчета: какие края выдерживают коррекцию, их величины частичной корреляции и сколько из них выдерживают вне выборки.
  • По крайней мере одно измерение стабильности, без которого эта часть представляет собой тиграмитовый README с криптотикерами: какая часть ребер сохраняется от окна к окну в прокручивающихся окнах; или чувствительность восстановленного графика к tau_max и pc_alpha; или разногласия ParCorr и CMIknn по одним и тем же данным.

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

Выбор правильных параметров

Калиброванный абстрактный контроль, окружающий причинно-следственную сеть

Максимальный лаг τmax\tau_{\max}

Этот параметр ограничивает временной горизонт причинно-следственных связей. Установка слишком низкого значения может привести к упущению медленно распространяющихся эффектов; слишком высокое значение увеличивает вычислительные затраты и нагрузку на многократное тестирование.

Для почасовых криптоданных: τmax=6\tau_{\max} = 6 к 2424 это разумный диапазон. Для ежедневных данных τmax=5\tau_{\max} = 5 к 1010 фиксирует большинство отношений опережения-запаздывания. Здесь важны знания предметной области: если вы знаете, что эффект ставки финансирования распространяется в течение 8 часов, установите τmax8\tau_{\max} \geq 8.

Значение выбора условия αPC\alpha_{\text{PC}}

Параметр pc_alpha=None позволяет тиграмиту автоматически выбирать этот параметр, используя информационный критерий Акаике, который является рекомендуемым по умолчанию. Если вы хотите установить его вручную, хорошо подойдут значения от 0,1 до 0,4. Более низкие значения делают этап 1 более агрессивным (оставляется меньше родителей), что снижает вычислительные затраты, но рискует удалить истинных родителей.

Конечный уровень значимости α\alpha

Это стандартный порог проверки гипотезы. Для исследовательского анализа, α=0.05\alpha = 0.05 все в порядке. Для всего, что влияет на торговое решение, используйте α=0.01\alpha = 0.01 или более жесткий и примените его после коррекции с учетом зависимостей, описанной ранее — номинальный уровень — это не тот уровень, на котором вы фактически тестируете.

PCMCI+: добавление одновременных ссылок

Запаздывающие и одновременные причинно-следственные связи во временных слоях

Стандарт PCMCI обнаруживает только запаздывающие причинно-следственные связи (τ1\tau \geq 1). Но на крипторынках, где информация распространяется по активам за считанные секунды, почасовая частота выборки означает, что многие причинные эффекты кажутся одновременными (τ=0\tau = 0).

PCMCI+ (Runge, 2020) расширяет возможности PCMCI для обнаружения как запаздывающих, так и одновременных причинных связей. Одновременные ссылки по умолчанию ненаправлены (поскольку временной порядок не может отличить причину от следствия в пределах одного и того же временного шага), но некоторые из них можно ориентировать с использованием правил ориентации стандартного алгоритма ПК (обнаружение коллайдеров, ограничения ацикличности).

results_plus = pcmci.run_pcmciplus(
    tau_max=4,
    tau_min=0,         # include contemporaneous links
    pc_alpha=None,
)

Для криптографических приложений с почасовой или более низкой частотой PCMCI+ часто более подходит, чем стандартный PCMCI, поскольку многие эффекты перекрестных активов происходят быстрее, чем интервал выборки.

Нелинейные расширения

Нелинейные причинно-следственные связи, образующие искривленные многообразия взаимодействия.

Финансовые временные ряды часто демонстрируют нелинейные зависимости (например, кластеризация волатильности, зависящие от режима эффекты опережения-запаздывания). Tigramite предоставляет несколько нелинейных тестов условной независимости:

Корреляция расстояния гауссовского процесса (GPDC)

from tigramite.independence_tests.gpdc import GPDC

gpdc = GPDC(significance="analytic", gp_params=None)
pcmci = PCMCI(dataframe=dataframe, cond_ind_test=gpdc)

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

Условная взаимная информация (CMIKnn)

from tigramite.independence_tests.cmiknn import CMIknn

cmiknn = CMIknn(significance="shuffle_test", knn=0.1, shuffle_neighbors=5)
pcmci = PCMCI(dataframe=dataframe, cond_ind_test=cmiknn)

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

Для большинства приложений криптовалютной торговли начните с ParCorr. Переключайтесь на нелинейные тесты только тогда, когда у вас есть конкретные доказательства нелинейных причинно-следственных механизмов и достаточные данные (обычно T>5000T > 5000).

Где можно подключить причинно-следственный график

Причинно-следственный граф, интегрируемый в модульный конвейер криптографических исследований

Причинно-следственный график дает вам одну вещь, которую не может дать корреляционная матрица: выход за пределы. Запустите PCMCI на 20–50 ресурсах, и узлы со многими исходящими ребрами станут информационными лидерами — их движения несут прогнозирующий контент для остальной части книги, и это направленное утверждение, которое симметричная корреляционная матрица структурно неспособна сделать. Факторное разложение показывает, что BTC доминирует в дисперсии; Рейтинг исходящей степени показывает, доминирует ли BTC, потому что он лидирует или потому, что все, включая BTC, испытывает один и тот же макрошок.

Если предположить, что стабильный граф когда-либо будет восстановлен, места, которые он мог бы прикрепить к работе, уже в этом блоге достаточно ясны. Изменения топологии графа в виде скользящего окна являются сигналом структурного разрыва, который является предметом обнаружение режима с помощью HMM — остается открытым вопрос, обнаруживает ли причинный граф переход раньше, чем модель состояния. Применение PCMCI к одному активу на разных площадках позволяет добиться лидерства в ценах между площадками, которое уже измеряется с миллисекундным разрешением в интеллектуальная маршрутизация заказов; график на часовых столбцах должен будет превзойти это, а не переформулировать. А периодическая ссылка на преступника-спота, создаваемая механизмом 8-часового финансирования, описанная в арбитраж ставок финансирования, представляет собой тестовый пример с известным ответом: PCMCI должен восстановить причинную структуру, которую мы можем проверить независимо, что делает ее целью проверки, а не открытия.

Ничто из этого не является выводом. Это гипотезы, ожидающие исследования, описанного выше.

Ограничения и предостережения

Точный причинно-следственный график частично скрыт контролируемой неопределенностью

PCMCI — мощный инструмент, но у него есть важные ограничения, которые должны понимать специалисты-практики:

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

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

  3. Линейный и нелинейный: с ParCorr, обнаруживаются только линейные причинные эффекты. Нелинейный причинно-следственный механизм (например, "BTC вызывает падение ETH только тогда, когда BTC падает более чем на 5%)" будет невидим для линейного теста.

  4. Частота дискретизации имеет значение: Причинные эффекты, которые происходят быстрее, чем частота дискретизации, кажутся одновременными (τ=0\tau = 0) ссылки в стандарте PCMCI, и их направление может быть неоднозначным. Используйте PCMCI+ и учитывайте данные с более высокой частотой.

  5. Многократное тестирование: N2×τmaxN^2 \times \tau_{\max} зависимые тесты, исправленные как описано выше — см. сдутый Шарп и множественное тестирование почему структура зависимости исключает очевидный выбор.

  6. Требования к размеру выборки. Для надежного выявления причинно-следственных связей требуется достаточно данных. В качестве грубого ориентира стремитесь к T>500T > 500 для ParCorr с N<10N < 10 переменные и T>2000T > 2000 для нелинейных тестов или больших наборов переменных.

PCMCI против других методов

Различные методы причинно-следственных графов, сравниваемые рядом

Метод Обрабатывает автокорреляцию Обрабатывает общие драйверы Современные ссылки Нелинейный Скрытые помехи
Причинность Грейнджер Частично Нет (двумерный) Нет С расширениями Нет
Передача энтропии Частично Нет (двумерный) Нет Да Нет
PCMCI Да (MCI) Да Нет С CMIknn/GPDC Нет
PCMCI+ Да Да Да С CMIknn/GPDC Нет
ЛКПМКИ Да Да Да С CMIknn/GPDC Да
ВАР-ЛИНГАМ Нет Да Да Нет Нет

Основным преимуществом PCMCI перед причинностью Грейнджера и энтропией переноса является тест MCI, который правильно учитывает автокорреляцию и общие движущие силы в многомерных условиях. Именно такой сценарий встречается на крипторынках, где одновременно взаимодействуют десятки коррелированных автокоррелированных активов.

Заключение

Отфильтрованные прямые причинно-следственные связи, приводящие к измеренному пониманию

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

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

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


Ссылки

  • Рунге Дж., Новак П., Кречмер М., Флаксман С. и Сейдинович Д. (2019). Обнаружение и количественная оценка причинно-следственных связей в больших наборах данных нелинейных временных рядов. Прогресс науки, 5(11), eaau4996.
  • Рунге, Дж. (2020). Обнаружение одновременных и запаздывающих причинно-следственных связей в автокоррелированных наборах данных нелинейных временных рядов. Материалы 36-й конференции по неопределенности в искусственном интеллекте (UAI), PMLR 124:1388-1397.
  • Документация по тиграмиту: https://jakobrunge.github.io/tigramite/
  • Репозиторий Tigramite на GitHub: https://github.com/jakobrunge/tigramite
Дисклеймер: Информация в этой статье предоставлена исключительно в образовательных и ознакомительных целях и не является финансовым, инвестиционным или торговым советом. Торговля криптовалютами сопряжена с высоким риском убытков.

Авторы

Eugen Soloviov
Eugen Soloviov

Инженер торговых систем

Разработка торговых ботов с 2017 года: межбиржевой арбитраж (подключал до 30 бирж), парный арбитраж на коинтеграции между спотом и фьючерсами, скальпинг, фронтраннинг, торговля по новостям, сентиментный анализ, трендовые алгоритмы, а также алгоритмы управления и балансировки портфелей. Делает выставление ордеров до 1 мс, warehouse для big data, бэктестинг-движки, AI-агентов и интерфейсы для ботов (в т.ч. open-source profitmaker.cc). Стек: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, архитектура.

Newsletter

Будьте в курсе событий

Подпишитесь на нашу рассылку, чтобы получать эксклюзивную аналитику по AI-трейдингу и обновления платформы.

Мы уважаем вашу конфиденциальность. Отписаться можно в любой момент.