← लेखों की सूची पर वापस जाएँ
August 1, 2026
5 मिनट का पठन

ट्रेडिंग में विषमधर्मी उपचार प्रभावों के लिए कॉज़ुअल फ़ॉरेस्ट

ट्रेडिंग में विषमधर्मी उपचार प्रभावों के लिए कॉज़ुअल फ़ॉरेस्ट
#causal-inference
#causal-forest
#heterogeneous-effects
#econometrics
#treatment

इस ब्लॉग पर हर पूर्वानुमान मॉडल एक ही वस्तु का अनुमान लगाता है: एक सशर्त माध्य μ(x)=E[YX=x]\mu(\mathbf{x}) = \mathbb{E}[Y \mid \mathbf{X} = \mathbf{x}]। फीचर इंजीनियरिंग, ग्रेडिएंट बूस्टिंग, कॉन्फ़ॉर्मल अंतराल, वॉक-फॉरवर्ड सत्यापन — ये सभी एक एकल अनुमान की सेवा करते हैं। यह लेख एक अलग अनुमान और उस मशीनरी के बारे में है जो बदल जाती है जब आप इसे बदलते हैं।

वस्तु सशर्त औसत उपचार प्रभाव है:

τ(x)=E[Yi(1)Yi(0)Xi=x]\tau(\mathbf{x}) = \mathbb{E}[Y_i(1) - Y_i(0) \mid \mathbf{X}_i = \mathbf{x}]

एक ही इकाई के लिए दो संभावित परिणामों के बीच का अंतर — जिनमें से एक आप कभी नहीं देखते। आप इस पर रिग्रेशन नहीं कर सकते, क्योंकि यह आपके डेटा में नहीं है। कॉज़ुअल फ़ॉरेस्ट (Athey और Imbens 2016; Wager और Athey 2018) इसे गैर-पैरामीट्रिक रूप से अनुमानित करते हैं और, उल्लेखनीय रूप से, इसके चारों ओर एक मान्य विश्वास अंतराल प्रदान करते हैं।

तीन चीजें इसे संभव बनाती हैं और इनमें से कोई भी मानक रैंडम फ़ॉरेस्ट में मौजूद नहीं है: एक विभाजन मापदंड जो भविष्यवाणी त्रुटि को कम करने के बजाय उपचार प्रभाव विचरण को अधिकतम करता है, एक ईमानदारी बाधा जो एक विभाजन को चुनने और उसके भीतर प्रभाव का अनुमान लगाने के लिए एक ही अवलोकनों का उपयोग करने पर प्रतिबंध लगाती है, और जंगल को एक अनुकूली कर्नेल के रूप में पुनर्पढ़ना जो पत्ती सह-घटना को अनुमान वजन में बदल देता है। ये तीन, साथ ही कैलिब्रेशन परीक्षण जो आपको बताता है कि क्या आपके द्वारा पाई गई विषमधर्मता संकेत है, इस लेख की सामग्री हैं।

औसत से विषमधर्मी प्रभाव तक

एक समतल औसत उपचार प्रभाव धनात्मक और नकारात्मक जेबों को छुपाता है जो एक विषमधर्मी उपचार-प्रभाव सतह से प्रकट होते हैं

औसत उपचार प्रभाव

सेटअप: एक बाइनरी उपचार Wi{0,1}W_i \in \{0, 1\} (एक घटना हुई या नहीं), एक परिणाम YiY_i (एक रिटर्न), सहसंबंधी Xi\mathbf{X}_iऔसत उपचार प्रभाव है

τATE=E[Yi(1)Yi(0)]\tau_{\text{ATE}} = \mathbb{E}[Y_i(1) - Y_i(0)]

सभी इकाइयों में औसत प्रभाव। ट्रेडिंग के लिए यह लगभग बेकार है — आप औसत ट्रेड नहीं करते। यदि एक घटना ब्रह्मांड के आधे को ऊपर और आधे को नीचे धकेलती है, तो ATE शून्य है और अवसर अधिकतम है।

सशर्त औसत उपचार प्रभाव

CATE τ(x)\tau(\mathbf{x}) विशेषताओं पर शर्त रखता है। दी गई एक मुद्रा के साथ एक विशिष्ट बाजार पूंजी, वास्तविक अस्थिरता, फंडिंग इतिहास, और पुस्तक गहराई: इस घटना का इस परिसंपत्ति पर अपेक्षित रिटर्न प्रभाव क्या है? CATE सहसंबंधी स्थान पर एक फलन है, और इस फलन का अनुमान बिना इसके आकार को लगाए लगाना वह है जो कॉज़ुअल फ़ॉरेस्ट करते हैं।

केवल रैखिक इंटरैक्शन मॉडल क्यों नहीं?

पाठ्यपुस्तक विकल्प एक संतृप्त प्रतिगमन है:

Yi=α+βWi+γWiXi+δXi+ϵiY_i = \alpha + \beta W_i + \gamma W_i \cdot \mathbf{X}_i + \delta \mathbf{X}_i + \epsilon_i

जहां γ\gamma इंटरैक्शन वहन करता है। यह मानता है कि इंटरैक्शन रैखिक है। यह शायद ही कभी होता है: फंडिंग फ्लिप के प्रति संवेदनशीलता उत्तोल में उत्तल है, रैखिक नहीं; गहराई बाजार पूंजी के साथ गुणात्मक रूप से इंटरैक्ट करती है; अस्थिरता शासन बाकी सब कुछ को गेट करता है। कॉज़ुअल फ़ॉरेस्ट इनमें से कोई भी नहीं लगाते — वे अनुकूली रूप से सहसंबंधी स्थान को विभाजित करते हैं और विषमधर्मता संरचना को डेटा से गिरने देते हैं।

कॉज़ुअल फ़ॉरेस्ट: एल्गोरिदम

असंबद्ध नमूने पेड़ संरचना बनाते हैं और जमी हुई पत्तियों में प्रभाव का अनुमान लगाते हैं इससे पहले कि कई ईमानदार पेड़ एक कॉज़ुअल फ़ॉरेस्ट में विलय होते हैं

एक कॉज़ुअल फ़ॉरेस्ट एक रैंडम फ़ॉरेस्ट है जिसे उपचार प्रभाव अनुमान के चारों ओर फिर से बनाया गया है। प्रत्येक पेड़ एक कॉज़ुअल ट्री है जो सहसंबंधी स्थान को उपचार प्रभाव विषमधर्मता को अधिकतम करने के लिए विभाजित करता है।

कॉज़ुअल ट्री

प्रत्येक आंतरिक नोड पर, एल्गोरिदम एक विभाजन चर jj और विभाजन बिंदु ss चुनता है। प्रतिगमन पेड़ से मुख्य अंतर: मापदंड वर्ग भविष्यवाणी त्रुटि को कम करने के बजाय बच्चों में अनुमानित उपचार प्रभाव के विचरण को अधिकतम करता है।

डेटा (Yi,Wi,Xi)inode(Y_i, W_i, \mathbf{X}_i)_{i \in \text{node}} वाले नोड के लिए, नोड-स्तरीय प्रभाव अनुमान समूह माध्यों का अंतर है:

τ^node=YˉtreatedYˉcontrol\hat{\tau}_{\text{node}} = \bar{Y}_{\text{treated}} - \bar{Y}_{\text{control}}

और विभाजन स्कोर है

Δ(split)=nLτ^L2+nRτ^R2nτ^parent2\Delta(\text{split}) = n_L \cdot \hat{\tau}_L^2 + n_R \cdot \hat{\tau}_R^2 - n \cdot \hat{\tau}_{\text{parent}}^2

nL,nR,nn_L, n_R, n के साथ बाएं बच्चे, दाएं बच्चे और अभिभावक में नमूना आकार। यह उपचार प्रभावों के बीच-समूह विचरण के बिल्कुल समान है: विभाजन तब अच्छा होता है जब दो बच्चे प्रभाव पर असहमत होते हैं, जब वे परिणाम की अच्छी भविष्यवाणी नहीं करते। एक सहसंबंधी जो YY को मजबूती से भविष्यवाणी करता है लेकिन WW की कार्यप्रणाली के लिए ऑर्थोगोनल है कभी नहीं चुना जाएगा।

ईमानदार अनुमान

महत्वपूर्ण नवाचार ईमानदारी है। पेड़ संरचना निर्धारित करने के लिए उपयोग किए गए डेटा को पत्ती प्रभाव अनुमानित करने के लिए उपयोग किए गए डेटा से असंबद्ध होना चाहिए:

  1. डेटा को विभाजित करें Isplit\mathcal{I}_{\text{split}} और Iest\mathcal{I}_{\text{est}} में
  2. पेड़ बनाएं केवल Isplit\mathcal{I}_{\text{split}} का उपयोग करके विभाजन चर और बिंदु चुनने के लिए
  3. पत्ती प्रभाव अनुमानित करें केवल Iest\mathcal{I}_{\text{est}} का उपयोग करके, उन अवलोकनों को पहले से तय किए गए पेड़ में गिराकर

इसके बिना, पेड़ धोखा देता है: वह पत्तियों को तराशता है जिनके चरम प्रभाव उसी नमूने में शोर हैं जिसका उपयोग उन्हें खोजने के लिए किया गया था, और फिर उस शोर को अनुमान के रूप में रिपोर्ट करता है। यह वही अनुकूली-चयन विफलता है जो बैकटेस्ट ओवरफिटिंग की प्रायिकता रणनीति स्तर पर मापता है, सिवाय इसके कि यहां इसके खिलाफ अनुमानक के अंदर बचाव किया जाता है बाद में निदान किए जाने के बजाय। ईमानदारी एसिम्पटोटिक अप्रवृत्ति खरीदती है:

E[τ^(x)Xi=x]=τ(x)+o(1)\mathbb{E}[\hat{\tau}(\mathbf{x}) \mid \mathbf{X}_i = \mathbf{x}] = \tau(\mathbf{x}) + o(1)

कीमत नमूना दक्षता है — आधा डेटा एक संरचना बनाता है जिसका उपयोग फिर इसे भरने के लिए नहीं किया जा सकता।

पेड़ से जंगल तक

एक कॉज़ुअल फ़ॉरेस्ट BB कॉज़ुअल पेड़ों को एकत्रित करता है, प्रत्येक आकार s<ns < n के यादृच्छिक उप-नमूने पर, प्रत्येक विभाजन पर यादृच्छिक सहसंबंधी उप-समुच्चय के साथ:

τ^(x)=1Bb=1Bτ^b(x)\hat{\tau}(\mathbf{x}) = \frac{1}{B}\sum_{b=1}^{B} \hat{\tau}_b(\mathbf{x})

इसे लिखने का अधिक उपयोगी तरीका एक भारित औसत परिणाम के रूप में है:

τ^(x)=i=1nαi(x)Yi\hat{\tau}(\mathbf{x}) = \sum_{i=1}^{n} \alpha_i(\mathbf{x}) \cdot Y_i

अनुकूली भार के साथ जो यह निर्धारित करते हैं कि अवलोकन ii कितीी बार उसी पत्ती में गिरता है जहां x\mathbf{x} है:

αi(x)=1Bb=1B1(XiLb(x))Lb(x)\alpha_i(\mathbf{x}) = \frac{1}{B}\sum_{b=1}^{B} \frac{\mathbb{1}(\mathbf{X}_i \in L_b(\mathbf{x}))}{|L_b(\mathbf{x})|}

जहां Lb(x)L_b(\mathbf{x}) वह पत्ती है जिसमें x\mathbf{x} पेड़ bb में है। यह सामान्यीकृत रैंडम फ़ॉरेस्ट दृश्य (Athey, Tibshirani और Wager 2019) है: एक कॉज़ुअल फ़ॉरेस्ट एक स्थानीय रूप से अनुकूल कर्नेल अनुमानक है। यह अपनी "समान" की अपनी धारणा सीखता है, जिसे यह परिभाषित करता है कि कौन से सहसंबंधी वास्तव में प्रभाव विषमधर्मता के लिए मायने रखते हैं, यूक्लिडियन दूरी के बजाय जिसे आपको मैन्युअल रूप से स्केल चुननी पड़ती है।

एसिम्पटोटिक सिद्धांत

नियमितता शर्तों के तहत (Wager और Athey 2018) अनुमानक संगत है, τ^(x)pτ(x)\hat{\tau}(\mathbf{x}) \xrightarrow{p} \tau(\mathbf{x}), और एसिम्पटोटिक रूप से सामान्य:

τ^(x)τ(x)σ^(x)dN(0,1)\frac{\hat{\tau}(\mathbf{x}) - \tau(\mathbf{x})}{\hat{\sigma}(\mathbf{x})} \xrightarrow{d} \mathcal{N}(0, 1)

जो बिंदुवार अंतराल देता है τ^(x)±zα/2σ^(x)\hat{\tau}(\mathbf{x}) \pm z_{\alpha/2} \cdot \hat{\sigma}(\mathbf{x})। विचरण σ^2(x)\hat{\sigma}^2(\mathbf{x}) इन्फिनिटेसिमल जैकनाइफ (या बूटस्ट्रैप-ऑफ-लिटिल-बैग्स) से आता है, जिसकी गणना उसी उप-नमूना संरचना से की जाती है जो जंगल पहले से बना चुका है — कोई बाहरी बूटस्ट्रैप लूप नहीं।

यह गारंटी क्या है और क्या नहीं है, इस पर सटीक होना योग्य है। यह एसिम्पटोटिक और बिंदुवार है, और CATE के लिए है। इस ब्लॉग पर अन्यत्र उपयोग किए गए अनुरूप भविष्यवाणी अंतराल सीमित-नमूने और वितरण-मुक्त हैं, लेकिन सीमांत हैं, और एक परिणाम को कवर करते हैं। अलग अनुमान, अलग गारंटी; वे प्रतिस्थापन नहीं हैं।

डबल मशीन लर्निंग कनेक्शन

जब उपचार यादृच्छिक रूप से नहीं दिया जाता है, तो कॉज़ुअल फ़ॉरेस्ट अवशिष्ट डेटा पर फिट किया जाता है: एक परिणाम मॉडल m^(X)=E[YX]\hat{m}(\mathbf{X}) = \mathbb{E}[Y \mid \mathbf{X}] और एक प्रवणता मॉडल e^(X)=E[WX]\hat{e}(\mathbf{X}) = \mathbb{E}[W \mid \mathbf{X}] क्रॉस-फिटिंग द्वारा अनुमानित किए जाते हैं, और जंगल Y~=Ym^\tilde{Y} = Y - \hat{m} को W~=We^\tilde{W} = W - \hat{e} के खिलाफ चलाता है। नेमैन ऑर्थोगोनैलिटी वही है जो इसे सुरक्षित बनाती है: परेशानी-अनुमान त्रुटि केवल एक उत्पाद के रूप में प्रवेश करती है, इसलिए m^\hat{m} और e^\hat{e} प्रत्येक n1/4n^{-1/4} पर अभिसरण कर सकते हैं और τ^\hat{\tau} अभी भी n1/2n^{-1/2} पर अभिसरण करता है।

वह ढांचा — अवशिष्टता, क्रॉस-फिटिंग, ऑर्थोगोनैलिटी तर्क, नमूना आकार प्रभाव — अपने लेख का विषय है, कॉज़ुअल ट्रेडिंग सिग्नल्स के लिए डबल मशीन लर्निंग। इसे पहले पढ़ें; नीचे सब कुछ इसे मानता है और केवल कवर करता है कि अनुमान τ(x)\tau(\mathbf{x)} होने पर क्या बदलता है τ\tau के बजाय।

ट्रेडिंग अनुप्रयोग: घटना प्रभाव विषमधर्मता

एक बाजार घटना विभिन्न सहसंबंधियों वाली परिसंपत्तियों पर धनात्मक, तटस्थ, और नकारात्मक प्रतिरूप प्रतिक्रियाएं पैदा करती है

सेटअप

इस ब्लॉग के लिए प्राकृतिक डोमेन परपेचुअल-फ्यूचर्स सिक्का ब्रह्मांड है, जहां घटनाएं बारंबार, टाइमस्टैम्प की गई और वेंडर फ़ीड के बिना देखी जा सकती हैं।

  • इकाइयां: ट्रेडेबल perp ब्रह्मांड में सिक्का-घटना अवलोकन
  • उपचार: Wi=1W_i = 1 यदि घटना सिक्का ii के लिए फायर हुई — एक फंडिंग-रेट साइन फ्लिप, एक स्पॉट लिस्टिंग, या एक लिक्विडेशन कैस्केड जो सुपरक्रिटिकल थ्रेशोल्ड को पार करती है जैसा कि लिक्विडेशन कैस्केड्स एक ट्रेडिंग सिग्नल में वर्णित है — और Wi=0W_i = 0 मिलान गैर-घटना विंडो के लिए
  • परिणाम: YiY_i = घटना विंडो पर असाधारण रिटर्न, कच्चा रिटर्न नहीं। घटना से पहले एक अनुमान विंडो पर एक मार्केट मॉडल फिट करें, फिर संचयी असाधारण रिटर्न लें। सटीक विनिर्देश — अनुमान विंडो, मार्केट-मॉडल प्रतिगमन, CAR निर्माण और इसका t-स्टैटिस्टिक — अर्निंग कॉल से LLM अल्फा माइनिंग की घटना-अध्ययन अनुभाग में काम किया गया है; इसे शाब्दिक रूप से पुनः उपयोग करें। यह चरण वैकल्पिक नहीं है: एक कच्चा close-to-close परिणाम बाजार-व्यापी आंदोलन को τ^\hat{\tau} में प्रवेश करने देता है, और चूंकि बाजार आंदोलन सभी इलाज की गई इकाइयों के लिए सामान्य है, यह बिल्कुल उपचार प्रभाव की तरह दिखता है
  • सहसंबंधी Xi\mathbf{X}_i: बाजार पूंजी, वास्तविक अस्थिरता, फंडिंग इतिहास, ऑर्डर-बुक गहराई, ओपन-इंटरेस्ट-टू-कैप अनुपात
  • भ्रमिता Wi\mathbf{W}_i: शासन चर जो घटना प्रायिकता और रिटर्न दोनों को बदलते हैं

ट्रेडिंग सिग्नल

CATE सतह किसी भी कैलिब्रेटेड अनिश्चितता अनुमान की तरह एक स्थिति sizer पर मैप होती है: τ^|\hat{\tau}| को अंतराल चौड़ाई के सापेक्ष आकार दें, और जब अंतराल शून्य को पार करे तो ट्रेड न करें। वह निर्णय नियम — उल्टे-चौड़ाई साइजिंग, एज अनुपात e=τ^/we = |\hat{\tau}|/w, नो-ट्रेड फ़िल्टर, लागत-जागरूक प्रकार, और तर्क कि आप इसे केली अंश में क्यों नहीं गुणा करना चाहिए — रिस्क-अवेयर पोजीशन साइजिंग के लिए कॉन्फ़ॉर्मल प्रेडिक्शन में व्युत्पन्न है। इसे μ^\hat{\mu} के बजाय τ^\hat{\tau} और कॉन्फ़ॉर्मल के बजाय कॉज़ुअल-फ़ॉरेस्ट अंतराल के साथ पुनः उपयोग करें। लॉन्ग और शॉर्ट लेग को संतुलित करें और पुस्तक निर्माण द्वारा बाजार-तटस्थ है।

EconML के साथ Python कार्यान्वयन

import numpy as np
import pandas as pd
from sklearn.ensemble import GradientBoostingRegressor, GradientBoostingClassifier
from econml.dml import CausalForestDML


def fit_causal_forest(Y, T, X, W, n_estimators=1000):
    """
    CausalForestDML: residualize against (X, W), then fit a causal
    forest on the residuals.

    Y: abnormal returns over the event window (CAR, market-model adjusted)
    T: event indicator
    X: effect modifiers -- only these drive heterogeneity
    W: confounders -- enter the nuisance models only
    """
    cf = CausalForestDML(
        model_y=GradientBoostingRegressor(
            n_estimators=200, max_depth=5, learning_rate=0.05
        ),
        model_t=GradientBoostingClassifier(
            n_estimators=200, max_depth=5, learning_rate=0.05
        ),
        n_estimators=n_estimators,
        min_samples_leaf=20,
        max_depth=None,
        criterion="het",          # heterogeneity-based splitting
        honest=True,              # honest estimation
        inference=True,           # infinitesimal-jackknife intervals
        cv=5,                     # cross-fitting folds for DML
        random_state=42,
    )
    cf.fit(Y=Y, T=T, X=X, W=W)
    return cf


def summarize_cate(cf, X, feature_names):
    """Distribution of the CATE and what drives its heterogeneity."""
    tau_hat = cf.effect(X)
    tau_lo, tau_hi = cf.effect_interval(X, alpha=0.05)

    print(f"Mean CATE:      {tau_hat.mean():.4f}")
    print(f"Std CATE:       {tau_hat.std():.4f}")
    print(f"Range:          [{tau_hat.min():.4f}, {tau_hat.max():.4f}]")
    print(f"% CI excl. 0:   {((tau_lo > 0) | (tau_hi < 0)).mean():.1%}")

    for idx in np.argsort(cf.feature_importances_)[::-1]:
        print(f"  {feature_names[idx]:>20s}: {cf.feature_importances_[idx]:.4f}")

    return tau_hat, tau_lo, tau_hi

CATE सतह की व्याख्या

सीमांत प्रभाव प्लॉट दिखाते हैं कि उपचार प्रभाव एक सहसंबंधी के साथ कैसे चलता है जब बाकी उनके माध्य पर रखा जाता है:

def plot_cate_by_feature(cf, X, feature_idx, n_points=50):
    x_grid = np.linspace(X[:, feature_idx].min(),
                         X[:, feature_idx].max(), n_points)
    X_eval = np.tile(np.median(X, axis=0), (n_points, 1))
    X_eval[:, feature_idx] = x_grid

    tau = cf.effect(X_eval)
    tau_lo, tau_hi = cf.effect_interval(X_eval, alpha=0.05)
    return x_grid, tau, tau_lo, tau_hi

इन्हें फिट की गई सतह के विवरण के रूप में पढ़ें, कॉज़ुअल खुराक-प्रतिक्रिया वक्र के रूप में नहीं — अन्य सहसंबंधियों को उनके माध्य पर रखना आपको सहसंबंधी स्थान के एक क्षेत्र में रख सकता है जिसमें कोई समर्थन नहीं है।

मुख्य धारणाएं और डायग्नोस्टिक्स

ओवरलैप, संतुलन, छिपी हुई भ्रष्टता और प्लेसबो जांच एक रक्षा योग्य कॉज़ुअल अनुमान के रास्ते को गेट करते हैं

इनका उल्लंघन करें और आपको आत्मविश्वासी, सटीक, गलत प्रभाव मिलते हैं।

1. अनकंफाउंडेडनेस (ऑब्जर्वेबल्स पर चयन)

Y(0),Y(1)WX,WY(0), Y(1) \perp W \mid \mathbf{X}, \mathbf{W}

उपचार असाइनमेंट को संभावित परिणामों से स्वतंत्र होना चाहिए जब देखी गई सहसंबंधी दी गई हो। यांत्रिक रूप से परिभाषित घटना के लिए यह रक्षा योग्य है; एक घटना के लिए जो खुद एक बाजार प्रतिक्रिया है — एक लिस्टिंग घोषणा, एक एक्सचेंज का अपना लिक्विडेशन इंजन फायरिंग — ऐसा नहीं है, क्योंकि वही अनदेखा प्रवाह जिसने घटना को ट्रिगर किया, वह रिटर्न को भी स्थानांतरित करता है।

रोजेनबाम संवेदनशीलता विश्लेषण के साथ परीक्षण करें: यदि एक अनदेखा UU उपचार संभावनाओं को एक कारक Γ\Gamma तक बदल सकता है,

P(W=1X,U)P(W=0X,U)ΓP(W=1X)P(W=0X)\frac{P(W=1 \mid \mathbf{X}, U)}{P(W=0 \mid \mathbf{X}, U)} \leq \Gamma \cdot \frac{P(W=1 \mid \mathbf{X})}{P(W=0 \mid \mathbf{X})}

Γ\Gamma कितना बड़ा होना चाहिए जब तक कि अनुमानित प्रभाव संकेत न बदले? एक डिजाइन जो Γ=1.1\Gamma = 1.1 पर टूटता है एक खोज नहीं है।

2. ओवरलैप (सकारात्मकता)

0<P(W=1X=x)<1x0 < P(W = 1 \mid \mathbf{X} = \mathbf{x}) < 1 \quad \forall \mathbf{x}

हर इकाई को दोनों भुजाओं में दिखने की सकारात्मक संभावना की आवश्यकता है। प्रवणता स्कोर की जांच करें और ट्रिम करें:

propensity = cf.models_t[0][0].predict_proba(np.hstack([X, W]))[:, 1]
print(f"Propensity range: [{propensity.min():.3f}, {propensity.max():.3f}]")
valid = (propensity > 0.05) & (propensity < 0.95)
print(f"Retained after trimming: {valid.mean():.1%}")

ट्रिमिंग मुफ़््त नहीं है — यह आबादी को पुनर्परिभाषित करता है जो आपका τ^\hat{\tau} वर्णित करता है। रिपोर्ट करें कि किस अंश ने बचा लिया।

3. SUTVA (स्थिर इकाई उपचार मूल्य धारणा)

Yi=Yi(Wi)(no interference between units)Y_i = Y_i(W_i) \quad \text{(no interference between units)}

एक इकाई का उपचार दूसरे के परिणाम को प्रभावित नहीं करना चाहिए। क्रिप्टो में यह तीन में सबसे कमजोर है: एक perp में लिक्विडेशन कैस्केड साझा कोलैटरल और मार्केट-मेकर इन्वेंटरी के माध्यम से हर सहसंबंधित जोड़ी में फैलता है, जो परिभाषा के अनुसार हस्तक्षेप है। सहसंबंध समूह द्वारा मानक त्रुटियों को क्लस्टर करना इसे आंशिक रूप से संबोधित करता है; कुछ भी पूरी तरह से नहीं।

बाइनरी उपचारों से परे

कॉज़ुअल फ़ॉरेस्ट सतत उपचारों तक उसी DML मशीनरी के माध्यम से फैलते हैं — यह अनुमान लगाना कि झटके का परिमाण, केवल उसकी घटना नहीं, परिसंपत्तियों को अलग-अलग कैसे स्थानांतरित करता है:

Yi=τ(Xi)Ti+g(Xi,Wi)+ϵiY_i = \tau(\mathbf{X}_i) \cdot T_i + g(\mathbf{X}_i, \mathbf{W}_i) + \epsilon_i

जहां TiT_i मान लीजिए बेसिस पॉइंट्स में फंडिंग-रेट परिवर्तन का आकार है। अब τ(x)\tau(\mathbf{x}) प्रति-बेसिस-पॉइंट प्रभाव है।

cf_continuous = CausalForestDML(
    model_y=GradientBoostingRegressor(n_estimators=200),
    model_t=GradientBoostingRegressor(n_estimators=200),  # regression, not classifier
    discrete_treatment=False,
    n_estimators=1000,
    honest=True,
    inference=True,
)
cf_continuous.fit(Y=car, T=funding_change_bps, X=asset_features, W=controls)
effects_25bp = cf_continuous.effect(X_test, T0=0, T1=25)

व्यावहारिक विचार

क्या विषमधर्मता वास्तविक है?

यह वह प्रश्न है जिसका उत्तर कॉज़ुअल फ़ॉरेस्ट देते हैं और इस ब्लॉग पर कुछ भी नहीं करता, और इसे एक अंगूठे के नियम के बजाय एक वास्तविक परीक्षण की आवश्यकता है। ईमानदारी अनुमानक के अंदर नकली विभाजनों से बचाती है; पकड़े गए घटनाओं (पकड़े गए परिसंपत्तियों के नहीं) पर आउट-ऑफ-सैंपल मूल्यांकन मानक है और वॉक-फॉरवर्ड ऑप्टिमाइज़ेशन और डिफ्लेटेड शार्प और मल्टीपल टेस्टिंग में शामिल है। कोई भी आपको नहीं बताता कि क्या τ^(x)\hat{\tau}(\mathbf{x}) एक x\mathbf{x} के साथ बदलता है।

बेस्ट लीनियर प्रेडिक्टर परीक्षण ऐसा करता है। अवशिष्ट परिणाम को अवशिष्ट उपचार पर और इसके इंटरैक्शन को केंद्रित CATE अनुमान के साथ रिग्रेस करें:

Yim^(Xi)=α0(Wie^(Xi))+α1(Wie^(Xi))(τ^(Xi)τˉ)+ϵiY_i - \hat{m}(\mathbf{X}_i) = \alpha_0 (W_i - \hat{e}(\mathbf{X}_i)) + \alpha_1 (W_i - \hat{e}(\mathbf{X}_i))(\hat{\tau}(\mathbf{X}_i) - \bar{\tau}) + \epsilon_i

दो गुणांक दो अलग-अलग प्रश्नों के उत्तर देते हैं। α0\alpha_0 औसत प्रभाव है: क्या यहां कुछ भी है? α1\alpha_1 आपकी अपनी भविष्यवाणियों पर कैलिब्रेशन ढलान है: जब आपका जंगल कहता है कि प्रभाव बड़ा है, तो क्या यह वास्तव में बड़ा है? कोई विषमधर्मता की शून्य धारणा के तहत α1=0\alpha_1 = 0। पूर्ण कैलिब्रेशन के तहत α1=1\alpha_1 = 1। एक α1\alpha_1 शून्य से ऊपर काफी लेकिन एक से काफी नीचे का मतलब है जंगल ने एक वास्तविक क्रम पाया है लेकिन इसके फैलाव को बढ़ा-चढ़ाकर बताया है — आप रैंकिंग ट्रेड कर सकते हैं, परिमाण नहीं।

EconML का RScorer एक साथी मॉडल-चयन स्कोर देता है:

from econml.score import RScorer

scorer = RScorer(
    model_y=GradientBoostingRegressor(n_estimators=100),
    model_t=GradientBoostingClassifier(n_estimators=100),
    discrete_treatment=True,
    cv=5,
)
scorer.fit(Y_val, T_val, X=X_val, W=W_val)
print(f"R-score: {scorer.score(cf):.4f}")

स्कोरर को एक वैलिडेशन स्प्लिट पर फिट करें जो जंगल ने कभी नहीं देखा, फिर इसका उपयोग उम्मीदवार CATE मॉडल की तुलना एक-दूसरे और एक स्थिर-प्रभाव बेसलाइन के खिलाफ करने के लिए करें। एक जंगल जो R-score पर स्थिर-प्रभाव मॉडल को नहीं हरा सकता, उसने कोई ट्रेड करने लायक विषमधर्मता नहीं पाई, चाहे इन-सैंपल महत्व कुछ भी कहें।

नमूना आकार

कॉज़ुअल फ़ॉरेस्ट को एक परिणाम मॉडल की तुलना में अधिक डेटा की आवश्यकता होती है, क्योंकि अनुमान एक अंतर है और दोनों भुजाओं को हर पत्ती के अंदर आबाद होना चाहिए। सामान्य डेटा-बनाम-पैरामीटर अनुशासन — प्रति मुफ्त पैरामीटर कितने आउट-ऑफ-सैंपल बिंदु, और एक बार बोनफेरोनी सुधार जब आप विन्यासों की तुलना करते हैं — वॉक-फॉरवर्ड ऑप्टिमाइज़ेशन के डेटा-आवश्यकताओं अनुभाग में है। कॉज़ुअल-फ़ॉरेस्ट-विशिष्ट उत्तर अनुभवजन्य है, अंगूठे का नियम नहीं: जंगल को नेस्टेड उप-नमूनों पर फिट करें और माध्य अंतराल चौड़ाई को nn के विरुद्ध प्लॉट करें; उपयोग करने योग्य नमूना आकार जहां चौड़ाई उन प्रभाव आकारों से नीचे गिरती है जिन्हें आप ट्रेड करना चाहते हैं।

वॉक-फॉरवर्ड, दो मोड़ के साथ

मूल्यांकन प्रोटोकॉल साधारण एंकर्ड वॉक-फॉरवर्ड है — tt तक सभी घटनाओं पर रीफिट, ट्रेड घटना t+1t+1 — और पूरा उपचार, पर्जिंग, एम्बार्गो, वॉक-फॉरवर्ड दक्षता अनुपात और गिरावट दर सहित, वॉक-फॉरवर्ड ऑप्टिमाइज़ेशन में है। दो चीजें इस अनुमानक के लिए विशिष्ट हैं।

पहले, घटना विंडो ओवरलैप करते हैं। यदि घटना t+1t+1 से पहले की सहसंबंधी विंडो घटना tt की परिणाम विंडो को शामिल करती है, तो फोल्ड अवलोकन साझा करते हैं और आउट-ऑफ-सैंपल परिणाम दूषित है। ओवरलैपिंग विंडो को एकल PnL नंबर गिनने से पहले पर्ज करें; यांत्रिक रूप से बारंबार उपचार के साथ जैसे फंडिंग फ्लिप, यह घटनाओं का एक महत्वपूर्ण हिस्सा हटा सकता है।

दूसरे, ईमानदार विभाजन को हर रीफिट पर फिर से खींचा जाना चाहिए। एक ही Isplit\mathcal{I}_{\text{split}}/Iest\mathcal{I}_{\text{est}} विभाजन को फोल्ड में ले जाने से वह संरचना-चयन लीकेज फिर से शुरू हो जाती है जिसके लिए ईमानदारी मौजूद है, क्योंकि नई जोड़ी गई घटनाएं एक विभाजन में गिरती हैं जो पुरानों के ज्ञान के साथ चुना गया था।

फिर घटना-स्तरीय आउट-ऑफ-सैंपल PnL को सामान्य गेट्स से गुजारें — PBO और डिफ्लेटेड शार्प रेश्यो — किसी भी चीज़ पर विश्वास करने से पहले।

लागत

एक CATE सिग्नल किसी भी अन्य घटना-संचालित सिग्नल की तरह प्राइस्ड है: τ^|\hat{\tau}| से अपेक्षित आधे स्प्रेड को नो-ट्रेड फ़िल्टर से पहले घटाएं, और पतली किताबों में आकार कम करें। मात्रात्मक संस्करण — स्लिपेज लागत मॉडल में वर्ग-मूल प्रभाव नियम और फिट लागत वक्र, कॉन्फ़ॉर्मल प्रेडिक्शन में लागत-जागरूक नो-ट्रेड फ़िल्टर, और इंप्लीमेंटेशन शॉर्टफॉल और TCA में निष्पादन लेखा — सभी बिना बदले स्थानांतरित होते हैं।

एक चीज जो स्थानांतरित नहीं होती: एक CATE सिग्नल की शेल्फ लाइफ घटना विंडो द्वारा सीमित है, इसलिए लागत एक निर्धारित छोटी होल्डिंग अवधि पर आबंटित होती है एक खुले समाप्त वाले के बजाय। एक निरंतर रखा गया सिग्नल स्प्रेड का भुगतान एक बार करता है और जब तक एज बना रहता है तब तक कमाता है; यह हर घटना पर इसका भुगतान करता है। क्या एज इससे बचता है आपके विशिष्ट घटना और आपके विशिष्ट ब्रह्मांड के बारे में एक अनुभवजन्य प्रश्न है, और यह जांचने के लिए पहली चीज है, क्योंकि यह रणनीति को मार सकता है इससे पहले कि कोई भी कॉज़ुअल मशीनरी मायने रखती है।

निष्कर्ष

कॉज़ुअल फ़ॉरेस्ट इस ब्लॉग की टूलकिट के बाकी से एक अलग वस्तु का अनुमान लगाते हैं। "यह परिसंपत्ति क्या वापसी देगी" नहीं, बल्कि "इस घटना ने इस परिसंपत्ति को कितना स्थानांतरित किया, उस प्रतिरूप के सापेक्ष जहां इसने फायर नहीं किया"। वह मशीनरी जो इसे अनुमान योग्य बनाती है — विषमधर्मता-अधिकतम विभाजन, ईमानदार अनुमान, अनुकूली-कर्नेल वजन प्रतिनिधित्व और इन्फिनिटेसिमल-जैकनाइफ अंतराल — का सामान्य पर्यवेक्षित अधिगम में कोई एनालॉग नहीं है, और धारणाएं जो इसे चाहिए (अनकंफाउंडेडनेस, ओवरलैप, SUTVA) पर्याप्त मजबूत हैं कि उन्हें दावा करने के बजाय परीक्षण किया जाना चाहिए।

जिसका यह लेख अभाव है वह एक परिणाम है। ऊपर हर नंबर एक प्लेसहोल्डर है। ईमानदार नकारात्मक और डिफ्लेटेड शार्प द्वारा स्थापित मानक के खिलाफ, एक विधि बिना मापा CATE वितरण, एक BLP α1\alpha_1 एक p-मान के साथ, एक ओवरलैप डायग्नोस्टिक, और DSR/PBO-गेटेड आउट-ऑफ-सैंपल PnL एक ट्यूटोरियल है, एक खोज नहीं। वे नंबर अगला काम हैं; एक नकारात्मक परिणाम प्रकाशित होने योग्य है।

संदर्भ

  1. Athey, S., Imbens, G.W. "Recursive Partitioning for Heterogeneous Causal Effects." PNAS, 113(27), 7353-7360 (2016).
  2. Wager, S., Athey, S. "Estimation and Inference of Heterogeneous Treatment Effects using Random Forests." JASA, 113(523), 1228-1242 (2018). arXiv:1510.04342
  3. Athey, S., Tibshirani, J., Wager, S. "Generalized Random Forests." Annals of Statistics, 47(2), 1148-1178 (2019).
  4. Chernozhukov, V., et al. "Double/Debiased Machine Learning for Treatment and Structural Parameters." The Econometrics Journal, 21(1), C1-C68 (2018).
  5. Chernozhukov, V., Demirer, M., Duflo, E., Fernandez-Val, I. "Generic Machine Learning Inference on Heterogeneous Treatment Effects in Randomized Experiments." (2018). arXiv:1712.04802
  6. Battocchi, K., et al. "EconML: A Python Package for ML-Based Heterogeneous Treatment Effects Estimation." Microsoft Research (2019). GitHub
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 ट्रेडिंग इनसाइट्स, मार्केट एनालिसिस और प्लेटफ़ॉर्म अपडेट के लिए हमारे न्यूज़लेटर को सब्सक्राइब करें।

हम आपकी गोपनीयता का सम्मान करते हैं। किसी भी समय अनसब्सक्राइब करें।