← Makalelere geri dön
August 18, 2026
5 dakikalık okuma

PCMCI: Çok Değişkenli Kripto Zaman Serilerinde Nedensel Keşif

PCMCI: Çok Değişkenli Kripto Zaman Serilerinde Nedensel Keşif
#causal-inference
#PCMCI
#causal-discovery
#time-series
#crypto

Jakob Runge (2018, 2020) tarafından geliştirilen PCMCI, çok değişkenli zaman serileri için nedensel bir keşif algoritmasıdır. Grafiksel model öğrenmeye yönelik PC algoritmasını, koşullandırma seti üç şeyi aynı anda etkisiz hale getirecek şekilde oluşturulmuş Anlık Koşullu Bağımsızlık (MCI) testiyle birleştirir: ortak sürücüler, dolaylı yollar ve kaynak değişkeninin otomatik korelasyonu. Bu son parça, yakından okumaya değer kısımdır - PCMCI'nin, momentum ağırlıklı serilerde saf ön-gecikme testini batıran yanlış pozitif oranı miras almamasının nedeni budur.

Bu makale, iki aşamalı yapıyı ilk prensiplerden ayırıyor, bunu tigramit kütüphanesiyle uyguluyor ve yöntemin herhangi bir ticari girdi haline gelmeden önce ihtiyaç duyduğu gerçek veri çalışmasını ortaya koyuyor.

Bu Zaten Burada Olana Ne Ekliyor?

Farklı ilişki yapıları olarak korelasyon eşbütünleşmesi ve nedensellik

Blog zaten korelasyon çalışmasını yaptı. Kripto ortak hareketi büyük ölçüde ortak faktörlü bir yapıdır — çiftler arasındaki sinyal korelasyonu, PC1'in tek başına on çiftli bir kitaptaki varyansın %65'ini emdiğini gösterir. Yüksek ikili korelasyon, ticareti yapılabilir bir ilişki değildir; bu nedenle istatistiksel arbitraj ve çift ticareti bunun yerine eş bütünleşmeye yönelir. Ve bağımlılığın kendisi bile istikrarlı değil: DCC-GARCH dinamik korelasyonu, statik bir örnek korelasyonunun neden bağımlılığın durağanlığını, sabit marjinal volatiliteyi ve yönler arası simetriyi varsaydığını sıralıyor; bunların hiçbiri geçerli değil.

Bunların hiçbiri yönlendirilmiş bir grafik üretmez. Size BTC, ETH ve SOL'un birlikte hareket ettiğini ve bunların çoğunu ortak bir faktörün açıkladığını söylüyorlar; BTC'nin SOL'u doğrudan mı yönlendirdiğini yoksa ilişkinin tamamen ETH aracılığıyla mı aracılık ettiğini size söylemiyorlar. Granger nedenselliği yön için olağan erişimdir, ancak standart Granger iki değişkenlidir; gözlemlenmeyen ortak bir etkeni gerçek nedensellikten ayıramaz.

Burada göründüğünden daha önemli olan üçüncü bir arıza modu daha var. Her kripto getiri serisi pozitif otokorelasyon taşır ve otokorelasyon, bu tür iki seri arasındaki herhangi bir bağımlılık testinin test istatistiğini şişirir: iki bağımsız otokorelasyon süreci, sonlu numuneler üzerinde önemli ölçüde ilişkili görünecektir. Korelasyon çalışması bunu örnek boyutu düzeltmesi olarak ele alır (sinyal korelasyon makalesindeki etkin_N tartışması). Nedensel keşif için bu bir düzeltme değil, temel tasarım sorunudur ve Aşama 2'nin koşullandırma seti tam da bunu çözmek için tasarlanmıştır.

PCMCI Algoritması

Yönlendirilmiş bir ağı ayrıştıran iki aşamalı nedensel keşif

PCMCI iki aşamada çalışır. İlk aşama, her değişken için bir aday nedensel ebeveynler kümesini tanımlar. İkinci aşama, her aday bağlantısını dikkatlice oluşturulmuş bir koşullu bağımsızlık testiyle test eder.

Aşama 1: PC-Stabil Durum Seçimi (PC1)

Aşama 1'in amacı her değişken için bulmaktır. XtjX_t^j, bir süperset B^(Xtj)\widehat{\mathcal{B}}(X_t^j) onun gerçek nedensel ebeveynlerinden. Bu set daha sonra Aşama 2'de koşullandırma seti olarak kullanılacaktır.

Algoritma, potansiyel ebeveynler olarak tüm gecikmeli değişkenlerin tam kümesiyle başlar:

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} \}

Daha sonra koşullu olarak bağımsız olan değişkenleri yinelemeli olarak kaldırır. XtjX_t^j. Yinelemede ppAlgoritma her ebeveyn adayını test eder XtτiX_{t-\tau}^i ile bağımsızlık için XtjX_t^j, şartlandırma pp Geriye kalan en güçlü ebeveynler (hariç XtτiX_{t-\tau}^i kendisi):

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)

Neresi S\mathbf{S} kümesidir pp değişkenler B^(Xtj){Xtτi}\widehat{\mathcal{B}}(X_t^j) \setminus \{X_{t-\tau}^i\} ile en güçlü birlikteliğe sahip XtjX_t^j.

"Kararlı" özellik, kaldırma kararlarının tek bir yinelemede olduğu anlamına gelir pp önceki yinelemedeki ana kümeleri temel alır ve sonuçlarda sıra bağımlılığını önler. Bu tekrarlanabilirlik açısından kritik öneme sahiptir.

Önem düzeyi αPC\alpha_{\text{PC}} bu aşamada kasıtlı olarak serbest olarak ayarlanır (genellikle 0,2 veya daha yüksek veya pc_alpha=None tigramit seçeneği). Buradaki amaç yanlış pozitifleri kontrol etmek değil, mümkün olduğu kadar çok sayıda ilgisiz değişkeni budayarak tüm gerçek ebeveynleri korumaktır. Birkaç yanlış pozitif B^\widehat{\mathcal{B}} kabul edilebilir; yanlış negatifler değildir.

Aşama 2: Anlık Koşullu Bağımsızlık (MCI) Testi

Tahmini ebeveyn setlerine sahip olduğumuzda B^(Xtj)\widehat{\mathcal{B}}(X_t^j) Aşama 2, tüm değişkenler için her potansiyel nedensel bağlantıyı test eder XtτiXtjX_{t-\tau}^i \to X_t^j MCI istatistiğini kullanarak:

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)

En önemli yenilik ise klima setidir. Şunu şart koşuyoruz:

  1. Hedefin ebeveynleri B^(Xtj){Xtτi}\widehat{\mathcal{B}}(X_t^j) \setminus \{X_{t-\tau}^i\}: Bu, ortak sürücülerin ve diğer dolaylı yolların etkisini ortadan kaldırır. XtjX_t^j.
  2. Kaynağın ebeveynleri B^(Xtτi)\widehat{\mathcal{B}}(X_{t-\tau}^i): Bu, kaynak değişkenin otokorelasyonunu ortadan kaldırarak şişirilmiş test istatistiklerini önler.

MCI, her iki seti aynı anda koşullandırarak, doğrudan, anlık nedensel etkiyi etkili bir şekilde izole eder. XtτiX_{t-\tau}^i Açık XtjX_t^j belirli bir gecikmede τ\tau, tüm karıştırıcılar, aracılar ve otokorelasyon etkilerinden arındırılmış.

Test istatistiği herhangi bir geçerli koşullu bağımsızlık testi olabilir. Doğrusal ilişkiler için kısmi korelasyon standart seçimdir. Doğrusal olmayan bağımlılıklar için, şu şekilde tahmin edilen koşullu karşılıklı bilgi (CMI) kk-en yakın komşu yöntemleri veya GPDC (Gauss Süreç Mesafe Korelasyonu) testi kullanılabilir.

Varsayılan Test Olarak Kısmi Korelasyon

Çoğu finansal uygulama için kısmi korelasyon testi (ParCorr Tigramit'te) iş gücüdür. Verilen değişkenler XX, YYve bir iklimlendirme seti Z\mathbf{Z}kısmi korelasyon şu şekildedir:

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

Neresi rXr_X Ve rYr_Y gerilemeden kalanlar mı XX Ve YY Açık Z\mathbf{Z}sırasıyla:

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

Başka bir deyişle kısmi korelasyon, arasındaki doğrusal ilişkiyi ölçer. XX Ve YY koşullandırma değişkenlerinin doğrusal etkisini kaldırdıktan sonra Z\mathbf{Z}. Gauss verileriyle koşullu bağımsızlığın sıfır hipotezi altında, test istatistiği bilinen bir dağılımı takip eder ve kesin sonuç sağlar. pp-değer hesaplaması.

Kısmi korelasyon değerleri [1,1][-1, 1] ve nedensel bağlantı güçlerinin doğal bir sıralamasını sağlar. Her iki ana kümeye bağlı olarak, 1. gecikmedeki BTC ile 0. gecikmedeki ETH arasında 0,3'lük kısmi bir korelasyon şu anlama gelir: "Tanımlanan tüm karıştırıcıların ve otokorelasyonun etkilerini ortadan kaldırdıktan sonra, BTC getirilerine yönelik bir standart sapma şoku, ETH'nin bir dönem sonra geri dönüşünde 0,3 standart sapma hareketini öngörür."

Test Sonuçlarından Nedensel Grafiğe (DAG)

PCMCI'nin çıktısı bir çift matristir:

  • val_matrix: Şekil (N,N,τmax+1)(N, N, \tau_{\max}+1)Her yönlendirilmiş bağlantı için MCI test istatistiğini (ör. kısmi korelasyon) içeren XtτiXtjX_{t-\tau}^i \to X_t^j.
  • p_matrix: Aynı şekil, karşılık gelenleri içerir pp-değerler.

Nedensel bir grafik oluşturmak için eşik değeri atarız. pp-düzeltilmiş anlamlılık seviyesindeki matris:

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}}

Hangi düzeltme dalga geçebileceğiniz bir ayrıntı değil. PCMCI testleri N2×τmaxN^2 \times \tau_{\max} Yapı itibarıyla bağımlı bağlantılar — her bağlantı XtjX_t^j birbirleriyle bir koşullandırma setini paylaşır ve kaynak serileri başlangıçta karşılıklı olarak ilişkilidir. Bu tam olarak Benjamini-Hochberg'in başarısız olduğu ve Benjamini-Yekutieli'nin harmonik cezasının başarısız olduğu rejimdir. c(M)=j=1M1/jc(M) = \sum_{j=1}^{M} 1/j testler arasındaki keyfi bağımlılıktan sağ çıkan; deflated Sharpe ve çoklu testler, bunu somut hale getiren boş yanlış keşif oranlarını ölçer. Yayınladığınız herhangi bir grafiğin yanında test edilen bağlantı sayısını ve düzeltilen eşiği bildirin.

Ortaya çıkan yapı, yönlendirilmiş bir grafik olan bir zaman serisi grafiğidir (TSG):

  • Düğümler belirli zaman gecikmelerindeki değişkenleri temsil eder.
  • Yönlendirilmiş kenarlar, ilgili gecikmelerle birlikte nedensel bağlantıları temsil eder.
  • Kendi kendine döngüler otoregresif etkileri temsil eder.

Bu TSG, yalnızca değişkenler arasındaki nedensel bağlantıların (gecikmeler boyunca toplama) varlığını ve yönünü gösteren bir özet grafiğe daraltılabilir; bu, yorumlama açısından genellikle daha pratiktir.

Tigramit ile Uygulama

Seyrek bir nedensel grafik üreten çok değişkenli zaman serisi ardışık düzeni

Tigramit, Jakob Runge'nin Alman Havacılık ve Uzay Merkezi'ndeki (DLR) grubu tarafından geliştirilen ve bakımı yapılan PCMCI'nin referans uygulamasıdır. Veri işleme için temiz bir API, çoklu koşullu bağımsızlık testleri, çeşitli PCMCI varyantları ve yerleşik görselleştirme sağlar.

Kurulum

pip install tigramite

Kurtarma Akıl Sağlığı Kontrolü (Sonuç Değil)

Piyasa verilerini çalıştırmadan önce boru hattının kurduğunuz yapıyı bulduğunu doğrulamak önemlidir. Bu, uygulamaya yönelik bir birim testidir ve daha fazlası değildir - aşağıdaki temel gerçek, veri oluşturma döngüsüne elle yazılmıştır, bu nedenle onu kurtarmak, kodun çalıştığını kanıtlar ve kripto hakkında hiçbir şey söylemez. Bu şekilde okuyun.

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),
)

Çıktıyı Okumak

Yerleştirilen VAR'da, print_significant_links şunu döndürür:

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

Önemli olan olumsuz sonuç da dahil olmak üzere ekili yapı geri geliyor: BTC ve SOL bu örnekte güçlü bir şekilde ilişkili olmasına rağmen doğrudan BTC -> SOL sınırı yok. MCI, ilişkiyi tamamen ETH aracısına bağlıyor. Bu, ikili koşullandırma setinin üretmesi gereken davranıştır ve bu bloğun asıl amacı da bunun doğrulanmasıdır. Bu, kriptoyla ilgili bir bulgu değil, geçen bir birim testidir.

Gerçek Piyasa Verileriyle Çalışmak

PCMCI zayıf bir şekilde durağan girdilere ihtiyaç duyar, bu nedenle onu fiyatlar yerine standartlaştırılmış günlük getirileriyle besleyin - ADF makinesi ve ham fiyatların başarısız olmasının nedenleri istatistiksel arbitraj ve çift ticareti kapsamında ele alınmıştır. Standartlaştırılmış bir getiri matrisine sahip olduğunuzda, tigramite özgü kısım iki satırdır:

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

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

İki tigramit detayı olağan iade hattından taşınmıyor:

  1. Eksik veriler: Tigramite, eksik gözlemlerin işlenmesi için maskelenmiş dizileri destekler. Kullanmak dataframe.mask boşlukları işaretlemek için - uydurma bir gözlem onu ​​içeren her koşullandırma setine yayıldığı için bunları ileriye doğru doldurmayın.
  2. Frekans hizalaması: Tüm seriler aynı zaman çizelgesinde yer almalıdır. Borsalar senkronize OHLCV verileri sağladığından kripto için bu genellikle basittir.

Bu Yöntemin İhtiyaç Duyduğu Çalışma

Yukarıdaki her şey makinedir. Makine gerçek verilere yönlendirilene ve cevabın "kararlı bir şey olmadığı" da dahil olmak üzere ne bulduğunu rapor edene kadar makale bu blogda yayınlanmayacak. Yapılacak koşu:

  • Kurulum: Belirtilen tarih aralığında gerçek bir sepet için saatlik getirilerde PCMCI+, tau_max etki alanı mantığıyla düzeltildi, alpha_level = 0.01 Benjamini-Yekutieli düzeltmesi ile N2×τmaxN^2 \times \tau_{\max} bağlantılar. deflated Sharpe standardına göre test edilen bağlantı sayısını ve düzeltilen eşiği bildirin.
  • Raporlanacak sonuç: hangi kenarların düzeltmeden sağ çıktığı, bunların kısmi korelasyon büyüklükleri ve örnek dışında kaç tanesinin hayatta kaldığı.
  • En az bir stabilite ölçümü; bu ölçüm olmadan parça, kripto işaretleyicileri olan bir tigramit README'dir: dönen pencereler boyunca pencereden pencereye kenarların ne kadarı kalıcıdır; veya kurtarılan grafiğin duyarlılığı tau_max Ve pc_alpha; veya aynı veriler üzerinde ParCorr ile CMIknn arasındaki anlaşmazlık.

Kararsız bir grafik, başarısız bir grafik değil, yayınlanabilir bir sonuçtur. "Beş ana konuda PCMCI: nedensel grafik değişen pencerelerde hayatta kalamaz", bu blogun zaten çalıştığı çizgiye uyuyor dürüst bir olumsuz sonuç ve işe yarayan bir eğitimden daha yararlı bir makale.

Doğru Parametreleri Seçmek

Nedensel bir ağı çevreleyen kalibre edilmiş soyut kontroller

Maksimum gecikme τmax\tau_{\max}

Bu parametre nedensel keşfin zamansal ufkunu sınırlar. Çok düşük bir değere ayarlamak yavaş yayılan efektleri kaçırabilir; çok yüksek olması hesaplama maliyetini ve çoklu test yükünü artırır.

Saatlik kripto verileri için, τmax=6\tau_{\max} = 6 ile 2424 makul bir aralıktır. Günlük veriler için, τmax=5\tau_{\max} = 5 ile 1010 çoğu ilerleme-gecikme ilişkisini yakalar. Alan bilgisi burada önemlidir: Fonlama oranı etkilerinin yayılmasının 8 saat sürdüğünü biliyorsanız, τmax8\tau_{\max} \geq 8.

Koşul seçiminin önemi αPC\alpha_{\text{PC}}

Ayar pc_alpha=None tigramite'in önerilen varsayılan Akaike Bilgi Kriterini kullanarak bu parametreyi otomatik olarak seçmesine izin verir. Manuel olarak ayarlamak isterseniz 0,1 ile 0,4 arasındaki değerler işe yarar. Daha düşük değerler Aşama 1'i daha agresif hale getirir (daha az ebeveyn tutulur), bu da hesaplama maliyetini azaltır ancak gerçek ebeveynlerin kaldırılması riskini taşır.

Son önem düzeyi α\alpha

Bu standart hipotez testi eşiğidir. Keşifsel analiz için, α=0.05\alpha = 0.05 iyi. Bir alım satım kararını besleyen herhangi bir şey için şunu kullanın: α=0.01\alpha = 0.01 veya daha sıkı bir şekilde uygulayın ve bunu daha önce açıklanan bağımlılığa duyarlı düzeltmeden sonra uygulayın; nominal seviye, gerçekte test ettiğiniz seviye değildir.

PCMCI+ : Eşzamanlı Bağlantılar Ekleme

Zamansal katmanlar arasında gecikmeli ve eşzamanlı nedensel bağlantılar

Standart PCMCI yalnızca gecikmeli nedensel bağlantıları keşfeder (τ1\tau \geq 1). Ancak bilginin varlıklar arasında saniyeler içinde yayıldığı kripto piyasalarında, saatlik örnekleme sıklığı birçok nedensel etkinin eş zamanlı göründüğü anlamına geliyor (τ=0\tau = 0).

PCMCI+ (Runge, 2020), PCMCI'yi hem gecikmeli hem de eşzamanlı nedensel bağlantıları keşfedecek şekilde genişletir. Eşzamanlı bağlantılar varsayılan olarak yönsüzdür (çünkü zaman sıralaması aynı zaman adımında nedeni sonuçtan ayırt edemez), ancak bazıları standart PC algoritmasının yönlendirme kuralları (çarpıştırıcı tespiti, döngüsellik kısıtlamaları) kullanılarak yönlendirilebilir.

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

Saatlik veya daha düşük frekanstaki kripto uygulamaları için PCMCI+ genellikle standart PCMCI'dan daha uygundur çünkü birçok çapraz varlık etkisi örnekleme aralığından daha hızlı gerçekleşir.

Doğrusal Olmayan Uzantılar

Eğri etkileşim manifoldlarını oluşturan doğrusal olmayan nedensel ilişkiler

Finansal zaman serileri genellikle doğrusal olmayan bağımlılıklar sergiler (örneğin, oynaklık kümelenmesi, rejime bağlı öncü-gecikme etkileri). Tigramite çeşitli doğrusal olmayan koşullu bağımsızlık testleri sağlar:

Gauss Süreci Uzaklık Korelasyonu (GPDC)

from tigramite.independence_tests.gpdc import GPDC

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

GPDC, koşullandırma setinin etkisini ortadan kaldırmak için Gauss süreç regresyonunu kullanır ve ardından artıklar üzerinde mesafe korelasyonu uygular. Bundan daha güçlü ParCorr Doğrusal olmayan etkileri tespit etmek için ancak önemli ölçüde daha yavaştır.

Koşullu Karşılıklı Bilgi (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 kullanarak koşullu karşılıklı bilgiyi tahmin eder kk-en yakın komşu yöntemleri. Tamamen parametrik değildir ve isteğe bağlı işlevsel bağımlılıkları tespit edebilir. Buradaki ödün, hesaplama maliyeti ve istatistiksel güce ulaşmak için daha fazla veriye duyulan ihtiyaçtır.

Çoğu kripto ticareti uygulaması için şununla başlayın: ParCorr. Doğrusal olmayan testlere yalnızca doğrusal olmayan nedensel mekanizmalara ilişkin belirli kanıtlara ve yeterli veriye sahip olduğunuzda (genellikle T>5000T > 5000).

Nedensel Grafiğin Nereye Takılacağı

Modüler bir kripto araştırma hattına entegre olan nedensel grafik

Nedensel grafiğin size korelasyon matrisinin veremeyeceği bir şey var: dereceden fazla. PCMCI'yi 20-50 varlık arasında çalıştırın ve birçok çıkış ucuna sahip düğümler bilgi liderleridir; onların hareketleri kitabın geri kalanı için tahmine dayalı içerik taşır ve bu, simetrik korelasyon matrisinin yapısal olarak yapamayacağı yön verici bir iddiadır. Faktör ayrıştırması size BTC'nin varyansa hakim olduğunu söyler; derece dışı bir sıralama, BTC'nin öncülük ettiği için mi yoksa BTC dahil her şeyin aynı makro şoka maruz kalması nedeniyle mi hakim olduğunu gösterir.

Sabit bir grafiğin kurtarılabileceğini varsayarsak, bu blogda zaten çalışmak üzere ekleneceği yerler yeterince açıktır. Grafik topolojisindeki kayan pencere değişiklikleri, HMM'lerle rejim tespiti konusu olan yapısal bir kırılma sinyalidir. Açık soru, nedensel bir grafiğin geçişi bir durum modelinden daha önce tespit edip etmediğidir. PCMCI'nın mekanlar genelinde tek bir varlığa uygulanması, halihazırda akıllı sipariş yönlendirmede milisaniyelik çözünürlükte ölçülen mekanlar arası fiyat liderliğini ele alır; saatlik çubuklara ilişkin bir grafiğin bunu yeniden ifade etmesi değil, aşması gerekir. Ayrıca, 8 saatlik fonlama mekanizması tarafından oluşturulan ve fonlama oranı arbitrajı kapsamındaki periyodik perp-spot bağlantısı, cevabı bilinen bir test durumudur: PCMCI, bağımsız olarak doğrulayabileceğimiz nedensel bir yapıyı kurtarmalıdır, bu da onu bir keşiften ziyade bir doğrulama hedefi haline getirir.

Bunların hiçbiri bulgu değil. Bunlar yukarıda açıklanan çalışmayı bekleyen hipotezlerdir.

Sınırlamalar ve Uyarılar

Kesin nedensel grafik, kontrollü belirsizlik nedeniyle kısmen gizlenmiş

PCMCI güçlü bir araçtır ancak uygulayıcıların anlaması gereken önemli sınırlamaları vardır:

  1. Nedensel yeterlilik varsayımı: PCMCI, ilgili tüm değişkenlerin gözlemlendiğini varsayar. Gizli bir ortak etken (örneğin, bir balinanın ticaret faaliyeti, yayınlanmamış haberler) gözlemlenen iki varlığı etkiliyorsa, PCMCI hatalı bir şekilde bunlar arasında doğrudan bir nedensel bağlantı bildirebilir. LPCMCI varyantı, daha az sayıda yönlendirilmiş kenar döndürme pahasına gizli karıştırıcılara izin vererek bu sorunu kısmen giderir.

  2. Durağanlık varsayımı: Nedensel yapının analiz penceresi boyunca sabit olduğu varsayılmaktadır. Uygulamada kripto piyasası dinamikleri hızla değişiyor. Yapısal kırılmaları tespit etmek için kayan pencere analizini kullanın.

  3. Doğrusal ve doğrusal olmayan: ile ParCorr, yalnızca doğrusal nedensel etkiler tespit edilir. Doğrusal olmayan bir nedensel mekanizma (örneğin, "BTC, yalnızca BTC %5'ten fazla düştüğünde ETH'nin düşmesine neden olur") doğrusal testte görünmez olacaktır.

  4. Örnekleme frekansı önemlidir: Örnekleme frekansından daha hızlı meydana gelen nedensel etkiler eşzamanlı olarak görünür (τ=0\tau = 0) standart PCMCI'deki bağlantılar ve bunların yönleri belirsiz olabilir. PCMCI+ kullanın ve daha yüksek frekanslı verileri göz önünde bulundurun.

  5. Çoklu test: N2×τmaxN^2 \times \tau_{\max} bağımlı testler, yukarıda açıklandığı gibi düzeltildi - bağımlılık yapısının neden bariz seçeneği dışladığını görmek için deflated Sharpe ve çoklu test konusuna bakın.

  6. Örnek boyutu gereksinimleri: Güvenilir nedensel keşif, yeterli veri gerektirir. Kaba bir kılavuz olarak şunları hedefleyin: T>500T > 500 için ParCorr ile N<10N < 10 değişkenler ve T>2000T > 2000 doğrusal olmayan testler veya daha büyük değişken kümeleri için.

PCMCI ve Diğer Yöntemler

Yan yana karşılaştırılan farklı nedensel grafik yöntemleri

Yöntem Otomatik korelasyonu yönetir Yaygın sürücüleri yönetir Eşzamanlı bağlantılar Doğrusal Olmayan Gizli kafa karıştırıcılar
Granger nedenselliği Kısmen Hayır (iki değişkenli) Hayır Uzantılı Hayır
Entropi aktarımı Kısmen Hayır (iki değişkenli) Hayır Evet Hayır
PCMCI Evet (MCI) Evet Hayır CMIknn/GPDC ile Hayır
PCMCI+ Evet Evet Evet CMIknn/GPDC ile Hayır
LPCMCI Evet Evet Evet CMIknn/GPDC ile Evet
VAR-LiNGAM Hayır Evet Evet Hayır Hayır

PCMCI'nin Granger nedenselliği ve transfer entropisine göre ana avantajı, çok değişkenli bir ortamda otokorelasyonu ve ortak sürücüleri doğru bir şekilde açıklayan MCI testidir. Bu, düzinelerce ilişkili, otokorelasyonlu varlığın aynı anda etkileşime girdiği kripto piyasalarında karşılaşılan senaryonun tam olarak aynısıdır.

Sonuç

Ölçülen bir içgörüye dönüşen filtrelenmiş doğrudan nedensel yollar

İki aşamalı yapı, almaya değer bir katkıdır: ana kümeyi sınırlamak için seyrek koşul seçimi, ardından koşullandırma seti hedefin yanı sıra kaynağın ebeveynlerini de içeren bir MCI testi. Bu ikinci yarı, PCMCI'yi Granger'dan ve transfer entropisinden ayıran şeydir ve yöntemi, kripto getirileri gibi otomatik korelasyonlu serilerde uygulanabilir kılan şeydir.

Yöntemin getirmediği şey kanıttır. Kurtarılan bir grafik, bir sinyal değil, bilgi akışıyla ilgili bir hipotezdir ve bu blogda, belirtilen bir sepet, belirtilen bir tarih aralığı, bağımlılığa duyarlı bir düzeltme ve pencere hareket ettiğinde grafiğin hareketsiz kalıp kalmadığına ilişkin en az bir ölçüm ile gerçek veriler üzerinde çalıştırılana kadar hiçbir şey sayılmaz. Bu çalışma mevcut olana kadar buradaki her şeye takım olarak davranın.

Grafiğin istikrarlı olmadığı ortaya çıkarsa, sorun budur. Bu, burada çalışan bir eğitimden daha değerli olan ilk olumsuz sonuç olmayacaktır.


Referanslar

  • Runge, J., Nowack, P., Kretschmer, M., Flaxman, S. ve Sejdinovic, D. (2019). Büyük doğrusal olmayan zaman serisi veri kümelerindeki nedensel ilişkilerin saptanması ve ölçülmesi. Bilim Gelişmeleri, 5(11), eaau4996.
  • Runge, J. (2020). Otomatik korelasyonlu doğrusal olmayan zaman serisi veri kümelerinde eş zamanlı ve gecikmeli nedensel ilişkilerin keşfedilmesi. 36. Yapay Zekada Belirsizlik Konferansı (UAI) Bildirileri, PMLR 124:1388-1397.
  • Tigramit belgeleri: https://jakobrunge.github.io/tigramite/
  • Tigramite GitHub deposu: https://github.com/jakobrunge/tigramite
Sorumluluk Reddi: Bu makalede sağlanan bilgiler yalnızca eğitim ve bilgilendirme amaçlıdır ve finansal, yatırım veya ticaret tavsiyesi niteliği taşımaz. Kripto para ticareti önemli bir kayıp riski içerir.

Yazarlar

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

Piyasanın Önünde Olun

Özel yapay zeka ticaret içgörüleri, piyasa analizi ve platform güncellemeleri için bültenimize abone olun.

Gizliliğinize saygı duyuyoruz. İstediğiniz zaman abonelikten çıkabilirsiniz.