← Макалаларга кайтуу
August 18, 2026
5 мүн окуу

PCMCI: Көп өзгөрмөлүү крипто убакыт сериясында себептик ачылыш

PCMCI: Көп өзгөрмөлүү крипто убакыт сериясында себептик ачылыш
#causal-inference
#PCMCI
#causal-discovery
#time-series
#crypto

PCMCI, Джейкоб Рунге (2018, 2020) тарабынан иштелип чыккан, көп өзгөрмөлүү убакыт сериялары үчүн себептик ачылыш алгоритми. Ал графикалык моделди үйрөнүү үчүн PC алгоритмин көз ирмемдик шарттуу көз карандысыздык (MCI) тести менен айкалыштырат, анын кондициялоо комплекси бир эле учурда үч нерсени нейтралдаштыруу үчүн курулган: жалпы драйверлер, кыйыр жолдор жана * булак* өзгөрмөнүн автокорреляциясы. Бул акыркы бөлүгү кылдат окуп чыгууга арзырлык бөлүгү болуп саналат - бул PCMCI импульстун оор серияларында жөнөкөй коргошун-кечигип тестирлөөдөн баш тарткан жалган-оң көрсөткүчтү мурастабагандыгынын себеби.

Бул макалада эки этаптуу курулушту биринчи принциптерден бөлүп, тиграмит китепканасы менен ишке ашырат жана анын кайсынысы болбосун соода салымына айланганга чейин керек болгон реалдуу маалыматтарды изилдөөнү сунуштайт.

Бул жерде болгон нерсеге эмне кошулат

Корреляциялык коинтеграция жана себептүүлүк өзүнчө байланыш түзүмдөрү катары

Блог буга чейин корреляция иштерин жасаган. Крипто биргелешкен кыймылы негизинен жалпы фактордук артефакт болуп саналат - жуптар ортосундагы сигнал корреляциясы PC1 жалгыз он жуп китептеги дисперсиянын 65% сиңирип турганын көрсөтөт. Жогорку жуптук корреляция соода мамилеси эмес, ошондуктан статистикалык арбитраж жана жуп соода ордуна коинтеграцияга жетет. Ал эми көз карандылыктын өзү да туруктуу эмес: DCC-GARCH динамикалык корреляциясы Эмне үчүн статикалык үлгүдөгү корреляция көз карандылыктын стационардуулугун, туруктуу маргиналдык өзгөрмөлүүлүгүн жана багыт боюнча симметрияны кабыл алаарын санап чыгат, алардын бири да туура келбейт.

Алардын бири да багытталган графикти чыгарбайт. Алар сизге BTC, ETH жана SOL чогуу кыймылдаарын жана жалпы фактор анын көбүн түшүндүрөт; алар BTC түздөн-түз SOL айдайбы же бирикме толугу менен ETH аркылуу ортомчу болуп жатабы деп айтышпайт. Грейнджер себептүүлүгү багытка жетүүнүн кадыресе көрүнүшү, бирок стандарттуу Грейнджер эки варианттуу — ал байкалбаган жалпы драйверди чыныгы себептүүлүктөн ажырата албайт.

Бул жерде көрүнгөндөн да маанилүү болгон үчүнчү ката режими бар. Ар бир крипто кайтарым сериясы оң автокорреляцияны камтыйт жана автокорреляция ушундай эки сериянын ортосундагы ар кандай көз карандылык тестинин сыноо статистикасын жогорулатат: эки көз карандысыз автокорреляцияланган процесс чектүү үлгүлөрдөн олуттуу түрдө байланышкан көрүнөт. Корреляция иши муну үлгү өлчөмүн оңдоо катары карайт (сигнал-корреляция макаласындагы эффективдүү_N талкуусу). Себептик ачуу үчүн бул оңдоо эмес, бул борбордук дизайн маселеси — жана дал ушул 2-этаптын кондициялоо топтому чечүү үчүн курулган.

PCMCI алгоритми

Багытталган тармакты дистилденген эки этаптуу себептик ачылыш

PCMCI эки этапта иштейт. Биринчи этап ар бир өзгөрмө үчүн себептүү ата-энелердин талапкер топтомун аныктайт. Экинчи этап кылдаттык менен түзүлгөн шарттуу көз карандысыздык тести менен ар бир талапкер шилтемени сынайт.

1-этап: PC-туруктуу абалды тандоо (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] жана себептүү байланыш күчтүү табигый рейтингин камсыз кылуу. Эки ата-эне топтомуна шарттуу, 1-кечүүдө BTC жана 0-да ETH ортосундагы жарым-жартылай корреляция: "Бардык аныкталган чаташтыргычтардын жана автокорреляциянын кесепеттерин алып салгандан кийин, 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 сыноолордун ортосундагы эркин көз карандылыктан аман калган бири болуп саналат; deflated Sharpe жана бир нече сыноо аны конкреттүү кылган нөлдүк жалган ачылыш чендерин өлчөйт. Жарыялаган графиктин жанында текшерилген шилтемелердин санын жана оңдолгон босогону кабарлаңыз.

Натыйжадагы структура убакыт серияларынын графиги (TSG), ал багытталган график, мында:

  • Түйүндөр белгилүү бир убакыт лагындагы өзгөрмөлөрдү билдирет.
  • Багытталган четтер байланышкан артта калуулар менен себеп байланыштарды билдирет.
  • Өз алдынча циклдер авторегрессивдүү эффекттерди билдирет.

Бул TSG өзгөрмөлөр ортосундагы себеп-салдарлык байланыштардын бар экендигин жана багытын гана көрсөткөн жыйноо графигине жыйылган болушу мүмкүн (артыкчылыктар боюнча топтоо), бул көбүнчө чечмелөө үчүн практикалык.

Тиграмит менен ишке ашыруу

Сейрек себеп-салдар графигин түзүүчү көп варианттуу убакыт сериясы

Тиграмит Германиянын Аэрокосмикалык борборунда (DLR) Якоб Рунге тобу тарабынан иштелип чыккан жана колдоого алынган PCMCI реализациясы. Ал маалыматтарды иштетүү үчүн таза 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. Жок дайындар: Тиграмит жетишпеген байкоолорду иштетүү үчүн маскаланган массивдерди колдойт. Колдонуу dataframe.mask боштуктарды белгилөө үчүн - аларды алдыга толтурбаңыз, анткени ойдон чыгарылган байкоо аны камтыган ар бир кондициялоо топтомуна жайылат.
  2. Жыштыктарды тегиздөө: Бардык сериялар бир убакыт торунда отурушу керек. Крипто үчүн бул, адатта, жөнөкөй, анткени биржалар синхрондоштурулган OHLCV маалыматтарын берет.

Бул ыкманы изилдөө керек

Жогорудагылардын баары техника. Бул макаланы бул блогго жарыялоо мүмкүн эмес, техника реалдуу маалыматтарды көрсөтүп, эмне тапканын билдирмейинче, анын ичинде жооп "туруктуу эч нерсе жок" болсо. Эмне кылуу керек:

  • Орнотуу: PCMCI+ белгиленген даталар диапазонунда реалдуу себет үчүн саат сайын кайтаруу боюнча, tau_max домен ой жүгүртүүсү менен аныкталган, alpha_level = 0.01 бардык боюнча Бенжамин-Йекутиели түзөтүү менен N2×τmaxN^2 \times \tau_{\max} шилтемелер. Сыналган шилтемелердин саны жана оңдолгон босого жөнүндө кабарлаңыз дефляцияланган Шарп стандарт.
  • Баяндоонун натыйжасы: кайсы четтери оңдоодон аман калат, алардын жарым-жартылай корреляциялык чоңдуктары жана канчасы үлгүдөн тышкары аман калат.
  • Жок дегенде бир туруктуулукту өлчөө, ансыз бул кесим крипто тикерлери бар тиграмит README болуп саналат: терезеден терезеден терезеге чейинки четтеринин канча бөлүгү сакталат; же калыбына келтирилген графиктин сезгичтиги tau_max жана pc_alpha; же ошол эле маалыматтар боюнча ParCorr vs 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 тиграмитке бул параметрди автоматтык түрдө Akaike маалымат критерийин колдонуп тандоого мүмкүндүк берет, бул сунушталган демейки. Эгер сиз аны кол менен орноткуңуз келсе, 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ди артта калган жана учурдагы себептик байланыштарды табуу үчүн кеңейтет. Убактылуу шилтемелер демейки боюнча багытталбайт (анткени убакыт тартиби себеп менен натыйжаны бир эле убакыт кадамынын ичинде айырмалай албайт), бирок кээ бирлерин стандарттык PC алгоритминин ориентация эрежелери (коллайдерлерди аныктоо, циклдик чектөөлөр) аркылуу багыттоого болот.

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

Саат сайын же төмөнкү жыштыктагы крипто тиркемелери үчүн PCMCI+ көбүнчө стандарттык PCMCIге караганда ылайыктуу, анткени көптөгөн кайчылаш актив эффекттери тандап алуу интервалына караганда тезирээк пайда болот.

Сызыктуу эмес кеңейтүүлөр

Ийри өз ара аракеттенүү көптүгүн түзүүчү сызыктуу эмес себептүү байланыштар

Финансылык убакыт сериялары көбүнчө сызыктуу эмес көз карандылыкты көрсөтөт (мисалы, туруксуздуктун кластерлери, режимге көз каранды болгон артта калуу эффектилери). Тиграмит бир нече сызыктуу эмес шарттуу көз карандысыздык тесттерин камсыз кылат:

Гаусс процессинин аралык корреляциясы (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 бир эле макро шок боюнча жүктөгөндүктөн айтып берет.

Туруктуу график качан калыбына келтирилет деп ойлосок, ал бул блогдо иштөө үчүн тиркеле турган жерлер жетиштүү айкын болот. График топологиясындагы жылма терезедеги өзгөрүүлөр структуралык үзүлүү сигналы болуп саналат, ал HMMs менен режимди аныктоо — ачык суроо себептик график өтүүнү мамлекеттик моделге караганда эртерээк аныктайбы. PCMCIди бардык жерлерде бир активге колдонуу, буга чейин миллисекунддук резолюцияда өлчөнгөн баалар аралык лидерликке кайрылат. акылдуу заказ багыттоо; сааттык тилкелер боюнча график аны кайталап эмес, согуу керек. Ал эми 8 сааттык каржылоо механизми тарабынан түзүлгөн мезгил-мезгили менен perp-spot шилтеме, камтылган каржылоо курсу арбитраж, бул белгилүү жооп тесттик учур: PCMCI биз өз алдынча текшере ала турган себептүү структураны калыбына келтириши керек, бул аны ачылыш эмес, валидация максатына айлантат.

Булардын бири да табылга эмес. Алар жогоруда сүрөттөлгөн изилдөөнү күтүп жаткан гипотезалар.

Чектөөлөр жана эскертүүлөр

Так себеп-салдар графи жарым-жартылай көзөмөлдөнгөн белгисиздик менен жабылган

PCMCI күчтүү инструмент, бирок анын практиктер түшүнүшү керек болгон маанилүү чектөөлөрү бар:

  1. Себептик жетиштүүлүк болжолу: PCMCI бардык тиешелүү өзгөрмөлөр сакталат деп болжолдойт. Жашыруун жалпы айдоочу (мисалы, киттин соода иши, чыгарылбаган жаңылыктар) байкалган эки активге таасир этсе, PCMCI алардын ортосундагы түздөн-түз себептик байланышты туура эмес билдириши мүмкүн. LPCMCI варианты муну азыраак багытталган четтерин кайтарып берүү баасы менен, жашыруун баш аламандыктарга жол берүү менен жарым-жартылай чечет.

  2. Стационардык божомол: Себептик структура талдоо терезесинде туруктуу деп кабыл алынат. Иш жүзүндө, крипто рыноктун динамикасы тез өзгөрөт. Структуралык тыныгууларды аныктоо үчүн жылма терезе анализин колдонуңуз.

  3. Сызыктуу жана сызыктуу эмес: менен ParCorr, сызыктуу себептик эффекттер гана аныкталат. Сызыктуу эмес себептүү механизм (мисалы, "BTC BTC 5% дан ашык түшкөндө гана ETH төмөндөшүнө себеп болот") сызыктуу тестке көрүнбөй калат.

  4. Талкуу жыштыгынын маанилүүлүгү: Тандоо жыштыгына караганда тезирээк пайда болгон себептик эффекттер замандаш катары көрүнөт (τ=0\tau = 0) стандарттык PCMCIдеги шилтемелер жана алардын багыты түшүнүксүз болушу мүмкүн. PCMCI+ колдонуңуз жана жогорку жыштыктагы маалыматтарды эске алыңыз.

  5. Бир нече сыноо: N2×τmaxN^2 \times \tau_{\max} көз каранды тесттер, жогоруда сүрөттөлгөндөй оңдолгон - карагыла deflated Sharpe жана бир нече сыноо эмне үчүн көз карандылык түзүмү ачык тандоону жокко чыгарат.

  6. ** Үлгү өлчөмүнө талаптар**: Ишенимдүү себеп-салдарлык аныктоо жетиштүү маалыматтарды талап кылат. Болжолдуу көрсөтмө катары, максатыңыз T>500T > 500 үчүн ParCorr менен N<10N < 10 өзгөрмөлөр, жана T>2000T > 2000 сызыктуу эмес тесттер же чоңураак өзгөрмөлүү топтомдор үчүн.

PCMCI башка методдорго каршы

Каузалдык графиктин айырмаланган ыкмалары жанаша

Метод Автокорреляцияны жөнгө салат Жалпы айдоочуларды иштетет Заманбап шилтемелер Сызыктуу эмес Жашыруун адаштыргычтар
Гранжер себептүүлүгү Жарым-жартылай Жок (эки өзгөрмөлүү) Жок Кеңейтүүлөр менен Жок
Энтропияны өткөрүү Жарым-жартылай Жок (эки өзгөрмөлүү) Жок Ооба Жок
PCMCI Ооба (MCI) Ооба Жок CMIknn/GPDC менен Жок
PCMCI+ Ооба Ооба Ооба CMIknn/GPDC менен Жок
LPCMCI Ооба Ооба Ооба CMIknn/GPDC менен Ооба
VAR-LiNGAM Жок Ооба Ооба Жок Жок

PCMCIдин Гранджер себептүүлүгүнөн жана трансфер энтропиясынан негизги артыкчылыгы - бул көп өзгөрмөлүү шартта автокорреляцияны жана жалпы драйверлерди туура эсепке алган MCI тести. Дал ушул сценарий крипто рынокторунда кездешет, анда ондогон корреляцияланган, автокорреляцияланган активдер бир эле учурда өз ара аракеттенет.

Корутунду

Чыпкаланган түз себеп жолдору өлчөнгөн түшүнүккө айландырылат

Эки этаптуу курулуш - бул алып салууга арзырлык салым: ата-эне топтомун байланыштыруу үчүн сейрек шарттарды тандоо, андан кийин кондициялоо топтому * булактын* ата-энелерин жана максатты камтыган MCI тести. Бул экинчи жарым PCMCIди Гренжерден жана энтропияны өткөрүп берүүдөн бөлүп турган нерсе жана бул ыкманы крипто кайтарымдуулугу катары автокорреляцияланган серияларда жашоого жөндөмдүү кылат.

Бул ыкма менен келбеген нерсе далил. Калыбына келтирилген график - бул сигнал эмес, маалымат агымы жөнүндөгү гипотеза жана бул блогдо ал көрсөтүлгөн себет, белгиленген даталар диапазону, көз карандылыкты эске алуу менен оңдоо жана жок дегенде бир өлчөө менен терезе кыймылдаганда графиктин кыймылдабаганын аныктоочу реалдуу маалыматтарда иштетилмейинче эч нерсеге эсептелбейт. Бул чуркоо болгонго чейин, бул жерде бардыгын шайман катары кабыл алыңыз.

График туруктуу эмес болуп чыкса, бул макала. Бул жумушчу окуу куралына караганда бул жерде биринчи терс натыйжа болмок эмес.


Шилтемелер

  • Runge, J., Nowack, P., Kretschmer, M., Flaxman, S., and Sejdinovic, D. (2019). Чоң сызыктуу эмес убакыт серияларынын маалымат топтомдорунда себептик байланыштарды аныктоо жана сандык аныктоо. Илимдин жетишкендиктери, 5(11), eaau4996.
  • Рунге, Дж. (2020). Автокорреляцияланган сызыктуу эмес убакыт серияларынын маалымат топтомдорунда учурдагы жана артта калган себеп-салдарлык байланыштарды ачуу. Жасалма интеллекттеги белгисиздик боюнча 36-конференциянын материалдары (UAI), PMLR 124:1388-1397.
  • Тиграмиттин документтери: https://jakobrunge.github.io/tigramite/
  • Tigramite GitHub репозиторий: https://github.com/jakobrunge/tigramite
blog.disclaimer

Authors

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Рынктан бир кадам алдыда болуңуз

AI соода аналитикасы, рынок талдоолору жана платформа жаңылыктары үчүн биздин жаңылыктар бюллетенине жазылыңыз.

Биз сиздин купуялыгыңызды урматтайбыз. Каалаган убакта жазылымдан чыга аласыз.