← Maqolalarga qaytish
August 2, 2026
5 daqiqa o'qish

Double Machine Learning: Returninglarni Bashorat Qilish O'rniga Sababiy Parametrni Baholash

Double Machine Learning: Returninglarni Bashorat Qilish O'rniga Sababiy Parametrni Baholash
#causal-inference
#double-ML
#treatment-effect
#econometrics
#quant

Bu blogdagi barcha modelash maqolalari hozirgacha bir xil shakldagi savolni qo'yadi: xususiyatlar berilganida, soni bashorat qil, keyin bashorat namuna tashqarisida yashashini tasdiqlash. Spread modellari spreadni bashorat qiladi. To'ldirish modellari to'ldirish ehtimolini bashorat qiladi. Butun tasdiqlash apparati — tozalandirilgan walk-forward, so'nagan Sharpe, oldinga-qarash taksonomiyasi — bashoratning haqiqiy ekanligini tekshirish uchun mavjud.

Bu maqola boshqa shakldagi savolni qo'yadi va bu blogda hech qachon bo'lmagan yagona mashina qismi: sababiy talqiniga ega bo'lgan yagona skaler parametrni baholang va unga moslashuvchan ML modeli ishlatilishi sababli yashab qoladigan standart xatoni ilova qiling.

Bu faqat reitorik farq emas. "Navbat o'rnini band qilish to'ldirish ehtimolini bashorat qiladi" oddiygina to'g'ri va amaliy jihatdan foydasiz — albatta, ikkalasi ham chuqurlik va o'zgaruvchanlik bilan boshqariladi. "Navbatda bir pozitsiya oldinga siljish tufayli to'ldirish ehtimolatiya θ\theta qadar o'zgaradi, bozor holati o'zgarmas holda" bu buyurtma berish siyosatiga qo'yishingiz mumkin bo'lgan son. Birinchisi regressiya moslamasidir. Ikkinchisi esa standart ML qutixonada mavjud bo'lmagan baholovchini talab qiladi, chunki moslashuvchan birinchi bosqichdagi regulyarizatsiya va ortiqqa moslashish aynan qayg'uradigan koeffitsiyentni bias qiladi.

Double Machine Learning (Chernozhukov, Chetverikov, Demirer, Duflo, Hansen, Newey & Robins, 2018) buni tuzatuvchi baholovchidir. Har bir kvant trederi shuni eshitgan: o'zaro bog'liqlik sababiya emas. DML bu gapdan keyin keladigan qism.

Oddiy Regressiya Nimagada O'z Faoliyatini To'xtatadi

Yashirin bozor-holat aralashtiruvchi omil navbat joylashuvi va to'ldirish natijalarini ikkalasini ham boshqaradi, aldovchi oddiy bog'liqlik yaratadi

Savolni blogning o'z hududida quring. Biz navbat o'rnining to'ldirish ehtimoli ustidagi sababiy ta'sirini xohlaymiz:

  • YiY_i: kuzatuv ii'da dam o'yotayotgan limit buyurtmasi horizon ichida to'ldirilganmi.
  • DiD_i: joylashtirilgandagi navbat o'rnini (daraja o'lchami bilan normallashtirilgan).
  • XiX_i: aralashtiruvchi omillar — realize qilingan o'zgaruvchanlik, quoted spread, chuqurlik balansi, daraja o'lchami, kun vaqti, rejim tegi. Bu blog allaqachon machine learning bilan spread modelash ichida hisoblaydigan bozor-holat o'zgaruvchilaridir.

Sababiy parametr θ0\theta_0 bo'ladi

Yi=Diθ0+g0(Xi)+ϵiY_i = D_i \theta_0 + g_0(X_i) + \epsilon_i

bu yerda g0(Xi)g_0(X_i) bozor holati va to'ldirish natijasi o'rtasidagi (potentsial murakkab, chiziqli bo'lmagan) munosabatni qamrab oladi.

Davolash tasodifiy berilmagan. Siz navbatning oldinda to'siqlarnisiz chunki daraja ingichka edi, yoki tin davrda joylashtirgansiz, yoki kitob sizning foydangizga nomuvozan edi. Xuddi shunday sharoit mustaqil ravishda to'ldirilishingiz yoki yo'qligini boshqaradi. Bu aralashishdir.

Yondashuv 1: Aralashtiruvchilarni e'tiborsiz qoldirish. YY ni faqat DD ga regressiya qiling. Baholash ikkalari bilan ham korrelyatsiyali bo'lgan har qanday aralashtiruvchining ta'sirini yutadi. Darslik o'zgaruvchini o'tkazib yuborish biasi: ingichka darajalar sizga ham yaxshi navbat yerasini, ham yuqori to'ldirish tezligini beradi, shunday qilib yerning o'z qiymatini ortiqcha baholaysiz.

Yondashuv 2: Nazoratlar bilan chiziqli regressiya. YY ni DD va XX ga regressiya qiling. Bu faqat g0(X)g_0(X) haqiqatan chiziqli bo'lsa ishlaydi. Kitob dinamikasi shunday emas — to'ldirish/o'zgaruvchanlik munosabatining chegaralari bor, chuqurlik-balan ta'siri rejimga belgisini o'zgartiradi. g0g_0 ni noto'g'ri spetsifikatsiyalash biasni qaytarib keltiradi.

Yondashuv 3: ML bashorati. (D,X)(D, X) da gradient boosted modelni moslang. Namuna tashqarisida yaxshi diskriminatsiya olasiz, va hech qanday sababiy talqin yo'q. Model har qanday bashoratli naqshni qamrab oladi, sababiy yoki yo'q; regulyarizatsiya davolash hissasini θ\theta bias qiladigan tarzda qisqartiradi; va ishonganiz mumkin bo'lgan standart xato yo'q.

Bu asosiy taranglik. ML bashorat uchun yaxshi, ammo sababiy parametrga oddiy qo'llash biasli, normal bo'lmagan, ishonchsiz baholashlarni ishlab chiqaradi.

Qisman Chiziqli Model

Ikkita sinxronlashtirilgan residualizatsiya kanali toza qoldiq oqimlari bir ortogonal sababiy baholashda uchrashishdan oldin bezovta qiluvchi bozor holatini olib tashlaydi

DML strukturaviy ramka ichida ishlaydi. Ishchi ot qisman chiziqli regressiya (PLR):

Y=Dθ0+g0(X)+U,E[UX,D]=0Y = D\theta_0 + g_0(X) + U, \quad \mathbb{E}[U \mid X, D] = 0

D=m0(X)+V,E[VX]=0D = m_0(X) + V, \quad \mathbb{E}[V \mid X] = 0

  • θ0\theta_0 qiziqish sababiy parametridir.
  • g0(X)g_0(X) bezovta funksiya — natijaning bozor holati bilan tushuntirilgan qismi.
  • m0(X)m_0(X) boshqa bezovta funksiya — bozor holati berilgan davolashning shartli kutilmasi (doimiy-davolash sozlamasidagi "propensity").
  • UU va VV strukturali qoldiqlardir.

Asosiy tushuncha: θ0\theta_0 past o'lchamli, ammo g0g_0 va m0m_0 ixtiyoriy murakkab bo'lishi mumkin. Biz bezovta funksiyalarni ML boshqarishini xohlaymiz, bir vaqtda skaler ustida haqiqiy chiqarishni yetkazib.

Nima Uchun "Ikki"?

Ikki ML modeli, bitta emas:

  1. Natija modeli: ^(X)E[YX]\hat{\ell}(X) \approx \mathbb{E}[Y \mid X] — natijani faqat bozor holatidan bashorat qilish.
  2. Davolash modeli: m^(X)E[DX]\hat{m}(X) \approx \mathbb{E}[D \mid X] — davolashni faqat bozor holatidan bashorat qilish.

Qoldiqlarni shakllantiring

Y~i=Yi^(Xi),D~i=Dim^(Xi)\tilde{Y}_i = Y_i - \hat{\ell}(X_i), \quad \tilde{D}_i = D_i - \hat{m}(X_i)

va Y~\tilde{Y} ni D~\tilde{D} ga regressiya qilish orqali θ0\theta_0 ni baholang:

θ^0=iD~iY~iiD~i2\hat{\theta}_0 = \frac{\sum_i \tilde{D}_i \tilde{Y}_i}{\sum_i \tilde{D}_i^2}

Bu steroidal Frisch-Waugh-Lovell: aralashtiruvchilarni chiziqli proeksiya o'rniga ML bilan qisman chiqaring, keyin davolash ta'sirini qoldiq o'zgarishdan o'qing.

Neyman Ortogonaliteti: Nima Uchun Ishlaydi

Oddiy qisman-chiqish yondashuvi (g0g_0 ni baholang, chiqiring, regressiya qiling) g^0\hat{g}_0 dagi ML baholash xatolari to'g'ridan-to'g'ri θ^0\hat\theta_0 ga tarqalishi sababli muvaffaqiyatsiz bo'ladi. DML balli Neyman ortogonal bolish uchun qurilgan — bezovta funksiyalardagi kichik bezovtaliklarga nisbatan sezgir emas.

PLR uchun ortogonal ball:

ψ(W;θ,η)=[Y(X)θ(Dm(X))][Dm(X)]\psi(W; \theta, \eta) = \big[Y - \ell(X) - \theta(D - m(X))\big] \cdot \big[D - m(X)\big]

bu yerda η=(,m)\eta = (\ell, m). Ortogonallik sharti

ηE[ψ(W;θ0,η)]η=η0=0\left. \frac{\partial}{\partial \eta} \mathbb{E}\big[\psi(W; \theta_0, \eta)\big] \right|_{\eta = \eta_0} = 0

intuitive ravishda, ball faqat DD va YY ning XX dan mustaqil o'zgarishini ishlatadi, va bir bezovta funksiyadagi xatolar boshqasi bilan kompensatsiya qilinadi. Agar m^\hat{m} davolashni biroz ortiqcha bashorat qilsa, D~\tilde{D} biroz kichik bo'ladi, ammo \ell ni noto'g'ri baholashdan kelib chiqqan Y~\tilde{Y} dagi mos keladigan xato kompensatsiya qiluvchi yo'nalishda itaradi. Bias ikkinchi tartibli bo'ladi — ikkita birinchi bosqich xatosining ko'paytmasi — birinchi tartib o'rniga.

Rasmiy ravishda, agar ikkala bezovta baholovchi ham n1/4n^{-1/4} tezlikda yaqinlashsa (yumshoq; ko'pchilik oqilona ML usullari buni o'tadi), u holda

N(θ^0θ0)dN(0,σ2)\sqrt{N}(\hat{\theta}_0 - \theta_0) \xrightarrow{d} \mathcal{N}(0, \sigma^2)

shunday qilib θ^0\hat\theta_0 parametrik tezlikda yaqinlashadi va asimptotik ravishda normal.

Cross-Fitting: Nima Uchun Bu Yerdan Majburiy

Faqat ortogonallik yetarli emas. Agar bezovta modellar θ0\theta_0 ni baholash uchun ishlatilgan bir xil satrlarga moslashtirilsa, birinchi bosqich ortiqqa moslashishi ikkinchi bosqichni ifloslantiradi — va aniq zarar haqida aniq aytish worth, chunki bu siz o'rgangan zarar emas. Boshqa joylarda, ortiqqa moslashish shishgan tasdiqlash balli sifatida paydo bo'ladi: siz uni sezarsiz, chegara qo'yarsiz, davom ettirasiz. Bu yerda θ0\theta_0 uchun siljigan nuqta baholashi sifatida paydo bo'ladi, hali tor va hali noto'g'ri raqam atrofida markazlangan ishonch oraligi bilan. Shubha qilish uchun hech qanday ball yo'q. Baholovchi faqat jim yolg'on gapiradi.

Cross-fitting bog'liqlikni buzadi: har bir kuzatuvning bezovta bashoratlari undan o'rgatilmagan modeldan keladi, va θ0\theta_0 birlashtirilgan held-out qoldiqlardan baholanadi. Mekanika oddiy K-fold mashinasi, machine learning bilan spread modelash ichida qamrab olingan; quyida muhimi siz unga qanday foldlarni berganingiz.

Qadam-Qadam DML Algoritmi

Kiritma: ma'lumotlar {(Yi,Di,Xi)}i=1N\{(Y_i, D_i, X_i)\}_{i=1}^N, ML usullari M\mathcal{M}_\ell va Mm\mathcal{M}_m, foldlar KK

Qadam 1 — Bo'lish: {1,,N}\{1, \ldots, N\} ni KK kesishmaydigan foldlarga bo'ling.

Qadam 2 — Cross-fit bezovta modellari: k=1,,Kk = 1, \ldots, K uchun, fold kk ning to'ldiruvchisida ^(k)\hat{\ell}^{(-k)} va m^(k)\hat{m}^{(-k)} ni o'qiting, keyin iIki \in I_k uchun Y~i=Yi^(k)(Xi)\tilde{Y}_i = Y_i - \hat{\ell}^{(-k)}(X_i) va D~i=Dim^(k)(Xi)\tilde{D}_i = D_i - \hat{m}^{(-k)}(X_i) hisoblang.

Qadam 3 — Baholash:

θ^0=(i=1ND~i2)1i=1ND~iY~i\hat{\theta}_0 = \left(\sum_{i=1}^N \tilde{D}_i^2\right)^{-1} \sum_{i=1}^N \tilde{D}_i \tilde{Y}_i

Qadam 4 — Chiqarish:

σ^2=1Ni=1N(Y~iθ^0D~i)2D~i2/(1Ni=1ND~i2)2\hat{\sigma}^2 = \frac{1}{N} \sum_{i=1}^N \big(\tilde{Y}_i - \hat{\theta}_0 \tilde{D}_i\big)^2 \tilde{D}_i^2 \bigg/ \left(\frac{1}{N} \sum_{i=1}^N \tilde{D}_i^2\right)^2

oraliklar θ^0±zα/2σ^/N\hat{\theta}_0 \pm z_{\alpha/2} \cdot \hat{\sigma} / \sqrt{N} bilan.

Ishonch oraligi faqat bitta savol uchun haqiqiy

Bu, DML natijasining qiymati ekanligini hal qiluvchi ogohlantirish va usulning ko'p qo'llanilishi jimjimlik tarqab ketadigan joy.

Yuqoridagi asimptotik normallik bitta oldindan belgilangan davolash, bitta oldindan belirlangan aralashtiruvchi to'plami, bitta oldindan belgilangan ball to'g'risidagi bayonotdir. Ularni oldindan belgilang, baholovchini bir marta ishga tushiring, va oralik aytganini anglatadi. Uchta nomzod davolashni sinab ko'ring, yoki to'rtta aralashtiruvchi to'plamini, yoki p-value yaxshi ko'rinmaguncha learnerlarni almashtiring, va siz endi chiqarish qilmayapsiz — siz qidiruvsiz, va hisobot qilingan p-value maksimumning p-value, o'yma emas.

Blog allaqachon buning nima qilganini o'lgan. the deflated Sharpe ratio study ichida, sof shovqin ustida nol real advantage bilan qidirishlar 1.000 naive false-discovery koeffitsiyentini ishlab chiqaradi — sozlanmagan test har doim otadi — meanwhile g'olibning median naive p-value 0.0007 atrofida o'tiradi. Neyman ortogonaliteti haqida hech narsa sizni budan himoya qilmaydi. Ortogonallik bezovta baholashdan kelib chiqqan biasni tuzatadi; spetsifikatsiya qidirishidan kelib chiqqan bias haqida hech narsa demaydi. Oltita spetsifikatsiyani sinab ko'rgan holda olingan 1e-05 DML p-value, MM siz aslida ishlatgan spetsifikatsiyalar soniga o'rnatilgan, har qanday griddan olingan boshqa g'olib bilan aynan bir Bonferroni/Holm/BHY muolajasini haq qiladi.

Bu, asbobning qulaylik xususiyatlari uchun to'g'ridan-to'g'ri amaliy oqibatga ega. DoubleMLData d_cols ichida ro'yxatni qabul qiladi va bitta jadvalda uchta davolash effektini xursand qilib qaytaradi:

dml_data_multi = dml.DoubleMLData(
    df, y_col='filled', d_cols=['queue_pos', 'toxicity', 'spread_at_post'],
    x_cols=confounder_cols,
)

Uchta qator, uchta p-value, va jadvalning eslatmagan ko'p testlash muammosi. Agar hammasini o'qisangiz, hammasini sozlang. Agar faqat bittasi oldindan ro'yxatga olingan savol bo'lsa, shunday deying, va qolgan ikkitasini aniq ravishda eksploratoriya sifatida muomala qiling.

Vaqt Seriyalari ustida Cross-Fitting: Purge, Embargo, Maxsus Foldlar

Aylanayotgan vaqt-seriya foldlari purge bo'shliqlarini va embargo zonalarini ishlatadi, out-of-fold qoldiqlari bitta sababiy baholashga birlashishdan oldin

Standart DML i.i.d. kuzatuvlarni faraz qiladi. Kitob ma'lumotlari shunday emas, va muvaffaqiyatsizlik rejimi blog allaqachon batafsil hujjatlashtirgan rejimdir: qo'shni satrlar mos keladigan oldingi oynalarni baham ko'radi, shunday qilib oddiy TimeSeriesSplit ham fold chegarasi orqali javobni sizdiradi. Tozalandirilgan va embargolu walk-forward implementatsiya va kamida horizon satr bo'shligi talabining sababi uchun machine learning bilan spread modelash ga qaring, va to'liq sizdirish katalogi va o'lchangan kattaliklari uchun the look-ahead bias taxonomy ga qaring.

Haqiqatan DML-maxsus qismi tozalandirilgan foldlarni baholovchiga qanday topshirishingizdir, chunki set_sample_splitting odamlarni hayratda qoldiradigan shartnoma ga ega:

import numpy as np
import doubleml as dml

def purged_folds(n: int, n_splits: int, horizon: int):
    """`horizon` satr purge/embargo bo'shligi bilan kengayuvchi oyna foldlari.

    Spread-modelash maqolasidagi tozalandirilgan walk-forward CV bilan bir xil
    qurilish: bo'shliq o'qitish satrining oldingi oynasi va tasdiqlash
    satrining o'rtasidagi o'rtiqni olib tashlaydi.
    """
    fold_size = n // (n_splits + 1)
    for k in range(1, n_splits + 1):
        train_end = fold_size * k
        val_start = train_end + horizon
        val_end = val_start + fold_size
        if val_end > n:
            break
        yield np.arange(0, train_end - horizon), np.arange(val_start, val_end)

folds = list(purged_folds(len(df), n_splits=5, horizon=HORIZON))

dml_plr = dml.DoubleMLPLR(dml_data, ml_l=ml_l, ml_m=ml_m)
// tuple ro'yxatlarining ro'yxatini kutadi. Bir takrorlash:
dml_plr.set_sample_splitting([folds])
dml_plr.fit()

Kutubxona hujjatlaridan hech biri aniq bo'lmagan ikki narsa bor:

  1. Tozalandirilgan walk-forward foldlari har bir satrni qamrab olmaydi. Purge bo'shliqlari va boshlang'ich o'qitish bloxi hech kimsaning test foldi emas, shunday qilib θ0\theta_0 NN qoldiqdan qat'iy n kamroqdan baholanadi. Bu to'g'ri xulq, xato emas, lekin bu varyans formulasidagi effektiv NN birlashtirilgan test satrlarining soni ekanligini anglatadi — faraz o'rniga tekshiring.

  2. n_rep takrorlari bu yerda bepul emas. Tasodifiy K-fold bilan, cross-fittingni takrorlash va o'rtacha arzonlaydi varyansni kamaytiradi. Deterministik vaqt-sotilgan split bilan faqat bitta split bor, shunday qilib n_rep hech narsini sotib olmaydi va hech narsini yashirmaydi; barqarorlik turli ma'lumot oynalarida qayta ishlashdan kelishi kerak.

Panel tuzilmalari uchun (bir vaqtda ko'plab ramzlar), DoubleML klaster-robust standart xatolarni qo'llab-quvvatlaydi — ramz ustida klasterlash, vaqt ustida emas, va blogning cross-asbob natija qachon haqiqatan o'rnatiladi haqidagi pozitsiyasi uchun multi-symbol validation ga qaring.

O'lchlangan Holat: Navbat O'rnı va To'ldirish Ehtimoli

FIFO navbatidagi buyurtma pozitsiyalari DML-sozlangan navbat-o'rnı ta'siriga ishonch aylisi bilan yaqinlashadi

Bu maqoladagi loyiha allaqachon ma'lumotga ega bo'lgan yagona sababiy savol va u taklif qilish o'rniga ishga tushirilishi kerak. Navbat o'rnı tahlili allaqachon haqiqiy kitob ma'lumotlarida o'rnı baholash, FIFO mexanikasi, dren tezliklari va to'ldirish vaqtini qamrab oladi; to'ldirish simulyatsiyasi to'ldirish ehtimoli modellashtirishini va jonli to'ldirishlarga qarshi kalibrlash tsiklini qamrab oladi. Ikkalasi ham to'ldirishlarning bashorat modelini ishlab chiqaradi. DML bir xil kiritmalarni sababiy baholashga aylantiradi.

Baholashdan oldin oldindan ro'yxatga olingan spetsifikatsiya:

  • Natija YY: HORIZON snapshot ichida to'ldirilgan (binar).
  • Davolash DD: joylashtirilganda normallashtirilgan navbat o'rnı.
  • Aralashtiruvchilar XX: 1s realized o'zgaruvchanlik, bps da quoted spread, chuqurlik balansi, post daraja o'lchami, ticklarda mid'dan masofa, kun vaqti kodlash, rejim tegi.
from sklearn.ensemble import GradientBoostingRegressor
import doubleml as dml

confounder_cols = [
    'rv_1s', 'spread_bps', 'depth_imbalance', 'level_size',
    'dist_from_mid_ticks', 'tod_sin', 'tod_cos', 'regime',
]

dml_data = dml.DoubleMLData(
    df, y_col='filled', d_cols='queue_pos_norm', x_cols=confounder_cols,
)

ml_l = GradientBoostingRegressor(n_estimators=300, max_depth=5)
ml_m = GradientBoostingRegressor(n_estimators=300, max_depth=5)

dml_plr = dml.DoubleMLPLR(dml_data, ml_l=ml_l, ml_m=ml_m, score='partialling out')
dml_plr.set_sample_splitting([folds])
dml_plr.fit()

print(dml_plr.summary)
dml_plr.sensitivity_analysis()
print(dml_plr.sensitivity_summary)

Hisobot qilinadigan natija bitta koeffitsient emas, to'rtta ustunli solishtirishdir: faqat DD ustida YY ning oddiy OLS baholashi, DD va XX ustida YY ning chiziqli nazorat baholashi, standart xatosi bilan DML baholashi, va sensitivity tahlilidan mustahkamlik qiymati ta'sirini bekor qilish uchun kuzatilmagan aralashtiruvchining qancha kuchli bo'lishi kerakligi. Oddiy va DML ustunlari o'rtasidagi farq haqiqiy qiziqish miqdoridir: bu navbat o'rnining ko'rinadigan qiymatining qancha qismi bozor holatining libosi ekanligidir.

Bu yerda null yoki manfiy θ\theta nashr etilishi mumkin bo'lgan natija va bu blogga toza musbatdan mos keladi. Agar navbat o'rnining sababiy ta'siri o'zgaruvchanlik va daraja o'lchami qisman chiqarilgandan keyin qulasa, bu buyurtma berish siyosati to'g'risida to'g'ridan-to'g'ri topilmadir: joy to'ldirishni qozongan narsa emas, joy olgan sharoitlardir.

Sababiy Faktor Tahlili

Faktor investirligi uchun standart yondashuv assotsiativdir: xarakteristika bo'yicha saralash, long-short portfellarni shakllantirish, daromadlar farq qiladi kuzatish. DML boshqa testni imkoniyatlaydi — daromaddagi xarakteristikaning bevosita sababiy ta'sirini baholang, boshqa xarakteristikalar aralashtiruvchi ta'sirlarini tashlab. Agar ta'sir DML ostida yo'qolsa, faktor mustaqil ravishda sababiy emas; bu proksi.

Bu, faktor skeptikizmining ikkinchi, mustaqil shakli, va blog allaqachon nashr etgan narsa bilan qanday bog'langanligini aniq bo'lish worth. The deflated Sharpe ratio faktir hayvonot bog'i tomondan tanlov bilan hujum qiladi: etarli sinovlar bilan, faktor ko'p marta qaragangiz uchun muhim ko'rinishi mumkin. DML aralashtirish tomondan hujum qiladi: faktor bitta halol testda muhim ko'rinishi mumkin va shunday bo'lsa ham shart to'plamidagi boshqa narsa uchun proksi bo'lishi mumkin. Faktor qiziqarli bo'lishi uchun ikkalasidan ham yashashi kerak, va ikkita muvaffaqiyatsizlik moduli mustaqildir — bittasini o'tish ikkinchisi haqida hech narsa demaydi.

DML Qila Olmaydigan Narsalar

  1. Aralashtiruvchilarning kuzatilishini talab qiladi. Agar kuzatilmagan o'zgaruvchi ham davolashni, ham natijani boshqarisa, DML biasli, va hech qanday ML murakkabligi identifikatsiya muammosini tuzatmaydi. Sensitivity tahlili riskni cheklaydi; olib tashlamaydi.

  2. O'rtacha ta'sirni baholaydi. Agar navbat o'rnı ta'siri rejimlar orasida keskin o'zgarsa, nuqta baholashi namunamizning rejim aralashmasi o'rtasidagi o'rtachadir. Getarogenlik uchun Interactive Regression Model (DoubleMLIRM) yoki causal forestdan foydalaning.

  3. Struktural model faraz qiladi. Qisman chiziqli spetsifikatsiya davolashning natija tenglamasiga ma'lum bir kirishini talab qiladi. Agar haqiqiy jarayon asosan farqli bo'lsa, DML ishonchli noto'g'ri.

  4. Sababiy strukturani topmaydi. DML oldindan belgilangan davolashning ta'sirini baholaydi. U qaysi o'zgaruvchilar sabab ekanligini aytmaydi.

  5. Sizni ko'p testdan ozod qilmaydi. Yuqoridagi nuqtani takrorlash chunki bu eng ko'p saklangan nuqtadir: ortogonallik bezovta baholash biasini tuzatadi, spetsifikatsiya qidirishnikini emas.

Amaliy Qaydlar

Namuna o'lchami. DML bezovta modellarning n1/4n^{-1/4} tezlikda yaqinlashishini talab qiladi, bu amaliy jihatdan ML modellari g0g_0 va m0m_0 ni hech qanday tarzda yaqinlashishi uchun yetarli satrni anglatadi. Yaxlit son chegaralariga ishonish o'rniga, multi-symbol validation qilgani kabi empirik etarlilikni o'rnating — baholash asboblar va past davrlar across yashab qolishini tekshiring, va beqarorlikni u ekanligi kabi qarang.

Learner tanlovi. DML-maxsus faktor tor ammo foydali: n1/4n^{-1/4} yaqinlashishi berilganida, learner θ^0\hat\theta_0 ning samadorligiga (oralik kengligi) ta'sir qiladi, uning mosligiga emas. Qaysi learnerlarning jadvalliy bozor ma'lumotlarida erishishga loyiq va nima uchun gradient boosting default ekanligi, allaqachon machine learning bilan spread modelash ichida qamrab olingan. Agar θ^0\hat\theta_0 learnerlar across moddiy harakatlasa, bu tanlash uchun menyu emas — bu bezovta funksiyalarning yomon baholanganiga dalilatdir, va yuqoridaki bo'limga ko'ra, eng do'stonasini tanlash mashg'ulotni qidirishga aylantiradi.

Xulosa

DML blogga yoq narsani beradi: bozor-mikrostruktura da'vosini yaxshi tasdiqlash balli bilan bashorat sifatida ifodalash o'rniga, himoya qilishi mumkin bo'lgan standart xato bilan sababiy parametr sifatida ifodalashning yo'li.

Uch yuk ko'taruvchi g'oya:

  • Ortogonalizatsiya qiling ballni shunday qilib birinchi bosqich xatolari ikkinchi tartibga kompensatsiya bo'lsin.
  • Cross-fit, vaqt-seriya ma'lumotlarida tozalandirilgan va embargolu foldlar bilan, shunday qilib birinchi bosqich ortiqqa moslashishi θ0\theta_0 ni siljitishi mumkin emas.
  • Oldindan belgilang, shunday qilib hisobot qilgan oralik haqiqatan olgan oraligingizdir.

Baholovchi oson qism. Qismiy qismlar o'zgarmaydi: qaysi aralashtiruvchilar muhimligiga qaror qilish, identifikatsiya farazlarining tutganini baholash, va spetsifikatsiyani yana bir marta ishga tushirish istagiga qarshi turish.


Adabiyotlar

DML nasli qisqa va bitta satr worth: bu Robinson'ning (1988) qisman chiziqli modeli, ML kernel baholovchilarni almashtiradi, semiparametrik samarali chegaraga erishadi, Neyman'ning C(α\alpha) testiga boradigan ortogonallik sharti va targeted-learning (TMLE) adabiyotida yaqin amakivariyal bilan. Chernozhukov va ark.'ning hissasi, ixtiyoriy ML learnerlari bilan N\sqrt{N}-tutarli, asimptotik normal chiqarishni saqlab holda buning operationallashishi mumkinligini ko'rsatishdir.

  1. Chernozhukov, V., Chetverikov, D., Demirer, M., Duflo, E., Hansen, C., Newey, W., & Robins, J. (2018). Double/Debiased Machine Learning for Treatment and Structural Parameters. The Econometrics Journal, 21(1), C1-C68.
  2. Robinson, P. M. (1988). Root-N-Consistent Semiparametric Regression. Econometrica, 56(4), 931-954.
  3. Bach, P., Chernozhukov, V., Kurz, M. S., & Spindler, M. (2022). DoubleML — An Object-Oriented Implementation of Double Machine Learning in Python. Journal of Machine Learning Research, 23(53), 1-6.
  4. Facure, M. (2022). Causal Inference for the Brave and True. Chapter 22: Debiased/Orthogonal Machine Learning.
  5. Cahan, E., Bai, J., & Ng, S. (2024). Causal Factor Investing. Quantitative Finance.
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

Bozordan bir qadam oldinda bo'ling

Sun'iy intellekt savdo tahlillari, bozor tahlili va platforma yangiliklari uchun bizning xabarnomaga obuna bo'ling.

Biz sizning maxfiyligingizni hurmat qilamiz. Istalgan vaqtda obunadan chiqishingiz mumkin.