← Kembali ke artikel
August 2, 2026
5 menit baca

Double Machine Learning: Mengestimasi Parameter Kausal Alih-alih Memprediksi Return

Double Machine Learning: Mengestimasi Parameter Kausal Alih-alih Memprediksi Return
#causal-inference
#double-ML
#treatment-effect
#econometrics
#quant

Setiap artikel pemodelan di blog ini hingga saat ini mengajukan bentuk pertanyaan yang sama: diberikan fitur, prediksi sebuah angka, lalu validasi bahwa prediksi bertahan di luar sampel. Model spread memprediksi spread. Model fill memprediksi probabilitas fill. Seluruh aparatus validasi — purged walk-forward, Sharpe deflated, taksonomi look-ahead — ada untuk memeriksa apakah sebuah prediksi nyata.

Artikel ini mengajukan bentuk pertanyaan yang berbeda, dan ini adalah satu-satunya bagian mesin yang belum pernah dimiliki blog ini: mengestimasi satu parameter skalar yang memiliki interpretasi kausal, dan melampirkan standar error yang bertahan dari fakta bahwa model ML yang fleksibel digunakan untuk sampai di sana.

Itu bukan perbedaan retoris. "Posisi antrian memprediksi probabilitas fill" secara trivial benar dan secara operasional tidak berguna — tentu saja demikian, keduanya digerakkan oleh kedalaman dan volatilitas. "Bergerak satu posisi ke depan dalam antrian menyebabkan perubahan θ\theta dalam probabilitas fill, dengan kondisi pasar tetap" adalah sebuah angka yang bisa Anda masukkan ke dalam kebijakan penempatan order. Yang pertama adalah fitting regresi. Yang kedua memerlukan estimator yang tidak ada dalam toolkit ML standar, karena regularisasi dan overfitting dalam tahap pertama yang fleksibel bias persis koefisien yang Anda pedulikan.

Double Machine Learning (Chernozhukov, Chetverikov, Demirer, Duflo, Hansen, Newey & Robins, 2018) adalah estimator yang memperbaiki ini. Setiap trader kuantitatif pernah mendengar ini: korelasi bukan kausalitas. DML adalah bagian yang datang setelah kalimat itu.

Mengapa Regresi Naif Gagal

Confounder kondisi pasar tersembunyi menggerakkan penempatan antrian dan hasil fill, menciptakan asosiasi naif yang menipu

Tetapkan pertanyaan di wilayah blog sendiri. Kami ingin efek kausal dari posisi antrian pada probabilitas fill:

  • YiY_i: apakah limit order yang sedang beristirahat pada observasi ii terisi dalam horizon.
  • DiD_i: posisi antrian saat penempatan (dinormalisasi oleh ukuran level).
  • XiX_i: confounder — volatilitas terealisasi, spread yang dikutip, ketidakseimbangan kedalaman, ukuran level, waktu hari, label rezim. Ini adalah variabel kondisi pasar yang sudah dihitung blog dalam pemodelan spread dengan machine learning.

Parameter kausal adalah θ0\theta_0 dalam

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

di mana g0(Xi)g_0(X_i) menangkap hubungan (mungkin kompleks, nonlinier) antara kondisi pasar dan hasil fill.

Perlakuan tidak ditugaskan secara acak. Anda berada di depan antrian karena levelnya tipis, atau karena Anda memposting selama periode tenang, atau karena buku tidak seimbang demi keuntungan Anda. Kondisi yang sama secara independent mengerakan apakah Anda terisi. Itu adalah confounding.

Pendekatan 1: Abaikan confounder. Regresi YY pada DD saja. Estimasi menyerap efek dari setiap confounder yang berkorelasi dengan keduanya. Bias variabel yang dihilangkan dari textbook: level tipis memberi Anda slot antrian yang baik dan tingkat fill yang tinggi, jadi Anda melebih-lebihkan nilai slot itu sendiri.

Pendekatan 2: Regresi linier dengan kontrol. Regresi YY pada DD dan XX. Ini hanya bekerja jika g0(X)g_0(X) benar-benar linier. Dinamika buku tidak — hubungan fill/volatilitas memiliki ambang, efek ketidakseimbangan kedalaman berubah tanda menurut rezim. Menentukan g0g_0 dengan salah memasukkan kembali bias.

Pendekatan 3: Prediksi ML. Pasang model gradient boosted pada (D,X)(D, X). Anda mendapatkan diskriminasi yang baik di luar sampel, dan tanpa interpretasi kausal sama sekali. Model menangkap setiap pola prediktif, kausal atau tidak; regularisasi menyusutkan kontribusi perlakuan dengan cara-cara yang membias θ\theta; dan tidak ada standar error yang bisa Anda percayai.

Ini adalah ketegangan inti. ML baik dalam prediksi, tetapi aplikasi naif pada parameter kausal menghasilkan estimasi yang bias, tidak normal, tidak dapat diandalkan.

Model Partially Linear

Dua saluran residualisasi yang disinkronkan menghilangkan kondisi pasar yang mengganggu sebelum aliran residual bersih bertemu pada estimasi kausal ortogonal

DML bekerja dalam kerangka struktural. Penarik beban adalah regresi partially linear (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 adalah parameter kausal yang diminati.
  • g0(X)g_0(X) adalah fungsi gangguan — bagian dari hasil yang dijelaskan oleh kondisi pasar.
  • m0(X)m_0(X) adalah fungsi gangguan lain — ekspektasi kondisional perlakuan diberikan kondisi pasar ("propensity" dalam pengaturan perlakuan kontinu).
  • UU dan VV adalah residual struktural.

Wawasan kunci: θ0\theta_0 berdimensi rendah, tetapi g0g_0 dan m0m_0 bisa sangat kompleks. Kami ingin ML menangani fungsi gangguan sambil tetap memberikan inferensi yang valid pada skalar.

Mengapa "Ganda"?

Dua model ML, bukan satu:

  1. Model hasil: ^(X)E[YX]\hat{\ell}(X) \approx \mathbb{E}[Y \mid X] — prediksi hasil dari kondisi pasar saja.
  2. Model perlakuan: m^(X)E[DX]\hat{m}(X) \approx \mathbb{E}[D \mid X] — prediksi perlakuan dari kondisi pasar saja.

Bentuk residual

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)

dan estimasi θ0\theta_0 dengan meregresi Y~\tilde{Y} pada D~\tilde{D}:

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

Ini adalah Frisch-Waugh-Lovell dengan steroid: partial-out confounder dengan ML bukan proyeksi linier, lalu baca efek perlakuan dari variasi residual.

Ortogonalitas Neyman: Mengapa Ini Berfungsi

Pendekatan partial-out naif (estimasi g0g_0, kurangi, regresi) gagal karena error estimasi ML dalam g^0\hat{g}_0 masuk langsung ke θ^0\hat\theta_0. Skor DML dibuat menjadi Neyman ortogonal — tidak sensitif terhadap gangguan kecil dalam fungsi gangguan.

Skor ortogonal untuk PLR:

ψ(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]

di mana η=(,m)\eta = (\ell, m). Kondisi ortogonalitas adalah

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

Secara intuitif, skor hanya menggunakan variasi dalam DD dan YY yang independen dari XX, dan error dalam satu fungsi gangguan dikompensasi oleh yang lain. Jika m^\hat{m} sedikit over-prediksi perlakuan, D~\tilde{D} sedikit terlalu kecil, tetapi error yang sesuai dalam Y~\tilde{Y} dari salah estimasi \ell mendorong ke arah kompensasi. Bias menjadi urutan kedua — produk dari dua error tahap pertama — bukan urutan pertama.

Secara formal, jika kedua estimator gangguan konvergen pada laju n1/4n^{-1/4} (ringan; metode ML yang wajar yang paling memenuhi), maka

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

jadi θ^0\hat\theta_0 konvergen pada laju parametrik dan asymptotically normal.

Cross-Fitting: Mengapa Wajib di Sini

Ortogonalitas sendiri tidak cukup. Jika model gangguan dipasang pada baris yang sama digunakan untuk estimasi θ0\theta_0, overfitting tahap pertama mencemari tahap kedua — dan kerusakan spesifik ini sepadan untuk dinyatakan secara presisi, karena ini bukan kerusakan yang biasa Anda lihat. Di tempat lain, overfitting muncul sebagai skor validasi yang menggelembung: Anda menyadarinya, Anda mendiskonnya, Anda melanjutkan. Di sini muncul sebagai estimasi titik yang bergeser untuk θ0\theta_0, dengan interval kepercayaan yang masih sempit dan masih berpusat pada angka yang salah. Tidak ada skor untuk dicurigai. Estimator hanya berbohong dengan tenang.

Cross-fitting memutus ketergantungan: prediksi gangguan setiap observasi berasal dari model yang dilatih tanpanya, dan θ0\theta_0 diestimasi dari residual yang diheld-out. Mekanik adalah mesin K-fold biasa, dibahas dalam pemodelan spread dengan machine learning; yang penting di bawah adalah folds apa yang Anda berikan.

Algoritma DML Langkah demi Langkah

Input: data {(Yi,Di,Xi)}i=1N\{(Y_i, D_i, X_i)\}_{i=1}^N, metode ML M\mathcal{M}_\ell dan Mm\mathcal{M}_m, folds KK.

Langkah 1 — Partisi: bagi {1,,N}\{1, \ldots, N\} menjadi KK folds disjoint.

Langkah 2 — Cross-fit model gangguan: untuk k=1,,Kk = 1, \ldots, K, latih ^(k)\hat{\ell}^{(-k)} dan m^(k)\hat{m}^{(-k)} pada komplemen fold kk, lalu hitung Y~i=Yi^(k)(Xi)\tilde{Y}_i = Y_i - \hat{\ell}^{(-k)}(X_i) dan D~i=Dim^(k)(Xi)\tilde{D}_i = D_i - \hat{m}^{(-k)}(X_i) untuk iIki \in I_k.

Langkah 3 — Estimasi:

θ^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

Langkah 4 — Inferensi:

σ^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

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

Interval kepercayaan valid untuk tepat satu pertanyaan

Ini adalah peringatan yang menentukan apakah hasil DML bernilai, dan di mana sebagian besar penggunaan metode secara terapan diam-diam runtuh.

Normalitas asymptotik di atas adalah pernyataan tentang satu perlakuan yang telah ditentukan sebelumnya, satu set confounder yang telah ditentukan sebelumnya, satu skor yang telah ditentukan sebelumnya. Tetapkan itu sebelumnya, jalankan estimator sekali, dan interval berarti apa yang dikatakannya. Coba tiga perlakuan kandidat, atau empat set confounder, atau tukar learner sampai p-value terlihat lebih baik, dan Anda tidak lagi melakukan inferensi — Anda menjalankan pencarian, dan p-value yang dilaporkan adalah p-value dari maksimum, bukan dari draw.

Blog sudah mengukur apa yang dilakukannya. Dalam studi rasio Sharpe deflated, pencarian atas noise murni dengan keunggulan nyata nol menghasilkan tingkat penemuan palsu naif 1,000 — tes yang tidak disesuaikan dipicu setiap saat — sementara p-value naif median dari pemenang duduk di dekat 0,0007. Tidak ada tentang ortogonalitas Neyman yang melindungi Anda dari ini. Ortogonalitas memperbaiki bias dari estimasi gangguan; tidak mengatakan apa-apa tentang bias dari pencarian spesifikasi. p-value DML 1e-05 yang diperoleh setelah mencoba enam spesifikasi layak mendapatkan perawatan Bonferroni/Holm/BHY yang sama seperti pemenang lain yang ditarik dari grid, dengan MM diatur ke jumlah spesifikasi yang sebenarnya Anda jalankan.

Ini memiliki konsekuensi praktis langsung untuk fitur kenyamanan alat. DoubleMLData menerima daftar di d_cols dan dengan senang akan mengembalikan tiga efek perlakuan dalam satu tabel ringkasan:

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

Tiga baris, tiga p-values, dan masalah pengujian ganda yang tidak disebutkan tabel ringkasan. Jika Anda membaca ketiganya, sesuaikan ketiganya. Jika hanya satu yang pertanyaan yang telah terdaftar, katakan demikian, dan perlakukan dua lainnya secara eksplisit sebagai eksploratori.

Cross-Fitting pada Time Series: Purge, Embargo, Custom Folds

Fold time series yang berputar menggunakan celah purge dan zona embargo sebelum residual out-of-fold bergabung menjadi satu estimasi kausal

DML standar mengasumsikan observasi i.i.d. Data buku tidak, dan mode kegagalan adalah yang sudah didokumentasikan blog secara rinci: baris yang berdekatan berbagi jendela forward yang tumpang tindih, jadi TimeSeriesSplit biasa masih bocor jawaban di seluruh batas fold. Lihat pemodelan spread dengan machine learning untuk implementasi walk-forward yang dipurges dan diembargo dan alasan mengapa jarak setidaknya horizon baris diperlukan, dan taksonomi bias look-ahead untuk katalog lengkap kebocoran dan magnitudo terukurnya.

Bagian yang benar-benar DML-spesifik adalah bagaimana Anda menyerahkan folds yang dipurges ke estimator, karena set_sample_splitting memiliki kontrak yang membuat orang tersandung:

import numpy as np
import doubleml as dml

def purged_folds(n: int, n_splits: int, horizon: int):
    """Fold jendela yang meluas dengan jarak purge/embargo `horizon` baris.

    Konstruksi yang sama dengan CV walk-forward yang dipurges di artikel
    pemodelan spread: jarak menghapus tumpang tindih antara jendela forward
    dari baris pelatihan dan baris validasi.
    """
    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)
dml_plr.set_sample_splitting([folds])
dml_plr.fit()

Dua hal yang perlu diwaspadai, tidak ada yang jelas dari docs pustaka:

  1. Fold walk-forward yang dipurges tidak mencakup setiap baris. Jarak purge dan blok pelatihan awal tidak pernah menjadi fold tes siapa pun, jadi θ0\theta_0 diestimasi dari kurang dari NN residual secara ketat. Itu perilaku yang benar, bukan bug, tetapi berarti bahwa NN efektif dalam rumus varians adalah jumlah baris tes yang digabungkan — periksa daripada berasumsi.
  2. Pengulangan n_rep tidak gratis di sini. Dengan K-fold acak, mengulang cross-fitting dan rata-rata adalah reduksi varians murah. Dengan split deterministik yang diurutkan waktu hanya ada satu splitting, jadi n_rep tidak membeli apa-apa dan tidak menyembunyikan apa-apa; stabilitas harus berasal dari menjalankan kembali pada jendela data yang berbeda.

Untuk struktur panel (banyak simbol dalam periode yang sama), DoubleML mendukung error standar yang kuat kluster — kluster pada simbol, bukan pada waktu, dan lihat validasi multi-simbol untuk posisi blog tentang kapan hasil cross-instrument benar-benar ditetapkan.

Kasus Terukur: Posisi Antrian dan Probabilitas Fill

Posisi order dalam antrian FIFO konvergen ke efek posisi antrian yang disesuaikan DML dengan halo kepercayaan

Ini adalah satu-satunya pertanyaan kausal dalam artikel di mana proyek sudah memiliki data, dan harus dijalankan bukan diajukan. Analisis posisi antrian sudah membahas estimasi posisi, mekanika FIFO, laju drain dan waktu-ke-fill pada data buku nyata; simulasi fill membahas pemodelan probabilitas fill dan loop kalibrasi terhadap fill langsung. Keduanya menghasilkan model prediktif dari fill. DML mengubah input yang sama menjadi estimasi kausal.

Spesifikasi, terdaftar sebelumnya sebelum melihat estimasi:

  • Hasil YY: terisi dalam HORIZON snapshots (biner).
  • Perlakuan DD: posisi antrian yang dinormalisasi saat penempatan.
  • Confounder XX: volatilitas terealisasi 1s, spread yang dikutip dalam bps, ketidakseimbangan kedalaman, ukuran level saat posting, jarak dari mid dalam tick, encoding waktu hari, label rezim.
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)

Hasil untuk dilaporkan adalah perbandingan empat kolom, bukan satu koefisien: estimasi naif OLS dari YY pada DD saja, estimasi kontrol linier dari YY pada DD dan XX, estimasi DML dengan standar error-nya, dan nilai robustness dari analisis sensitivitas — seberapa kuat confounder yang tidak diamati harus untuk meniadakan efek. Kesenjangan antara kolom naif dan DML adalah kuantitas nyata yang diminati: itu berapa banyak dari nilai nyata posisi antrian adalah kondisi pasar yang memakai kostum.

θ\theta nol atau negatif di sini adalah hasil yang dapat dipublikasikan dan lebih sesuai dengan blog ini daripada yang positif yang bersih. Jika efek kausal posisi antrian runtuh setelah volatilitas dan ukuran level dipartial-out, itu adalah temuan langsung tentang kebijakan penempatan order: slot bukan yang menghasilkan fill, kondisi di mana Anda mendapatkan slot adalah.

Analisis Faktor Kausal

Pendekatan standar untuk investasi faktor adalah asosiatif: urutkan dengan karakteristik, bentuk portofolio long-short, amati bahwa return berbeda. DML memungkinkan tes yang berbeda — estimasi efek kausal langsung dari karakteristik pada return, menghapus efek confounding dari karakteristik lain. Jika efek menghilang di bawah DML, faktor tidak independen kausal; itu adalah proksi.

Ini adalah bentuk kedua, skeptisisme faktor yang independen, dan sepadan untuk eksplisit tentang bagaimana ini berkaitan dengan yang sudah dipublikasikan blog. Rasio Sharpe deflated menyerang kebun binatang faktor dari sisi seleksi: dengan cukup percobaan, faktor bisa tampak signifikan murni karena Anda melihat berkali-kali. DML menyerang dari sisi confounding: faktor bisa tampak signifikan pada satu tes jujur dan masih menjadi proksi untuk sesuatu yang lain dalam set kondisi. Faktor harus bertahan keduanya untuk menarik, dan dua mode kegagalan independen — lulus satu tidak memberi tahu apa-apa tentang yang lain.

Apa yang DML Tidak Dapat Lakukan

  1. Ini mengharuskan confounder untuk diamati. Jika variabel yang tidak diamati menggerakkan perlakuan dan hasil, DML bias, dan tidak ada kecanggihan ML yang memperbaiki masalah identifikasi. Analisis sensitivitas membatasi risiko; tidak menghapusnya.

  2. Ini mengestimasi efek rata-rata. Jika efek posisi antrian bervariasi tajam melintasi rezim, estimasi titik adalah rata-rata atas campuran rezim sampel Anda. Untuk heterogenitas gunakan Interactive Regression Model (DoubleMLIRM) atau hutan kausal.

  3. Ini mengasumsikan model struktural. Spesifikasi partially linear mengharuskan perlakuan masuk ke persamaan hasil dengan cara tertentu. Jika proses sebenarnya berbeda secara mendasar, DML salah dengan percaya diri.

  4. Ini tidak menemukan struktur kausal. DML mengestimasi efek dari perlakuan yang telah ditentukan sebelumnya. Ini tidak memberi tahu Anda variabel mana yang menjadi penyebab.

  5. Ini tidak membebaskan Anda dari pengujian ganda. Mengulang poin di atas karena ini yang paling sering dilewati: ortogonalitas de-bias estimasi gangguan, bukan pencarian spesifikasi.

Catatan Praktis

Ukuran sampel. DML membutuhkan model gangguan untuk konvergen pada n1/4n^{-1/4}, yang dalam praktiknya berarti cukup baris bagi model ML untuk mengaproksimasi g0g_0 dan m0m_0 sama sekali. Daripada memercayai ambang angka bulat, buktikan kecukupan secara empiris dengan cara validasi multi-simbol melakukannya — periksa apakah estimasi bertahan melintasi instrumen dan sub-periode, dan perlakukan ketidakstabilan sebagai sinyal itu.

Pemilihan learner. Fakta spesifik DML sempit tetapi berguna: diberikan konvergensi n1/4n^{-1/4}, learner mempengaruhi efisiensi dari θ^0\hat\theta_0 (lebar interval), bukan konsistensinya. Learner mana yang layak dicapai pada data pasar tabular, dan mengapa gradient boosting adalah default, sudah dibahas dalam pemodelan spread dengan machine learning. Jika θ^0\hat\theta_0 bergerak secara material melintasi learner, itu bukan menu untuk dipilih — adalah bukti bahwa fungsi gangguan diperkirakan dengan buruk, dan per bagian di atas, memilih yang paling ramah mengubah latihan menjadi pencarian.

Kesimpulan

DML memberi blog sesuatu yang belum dimilikinya: cara menyatakan klaim mikrosruktur pasar sebagai parameter kausal dengan standar error yang dapat dipertahankan, alih-alih sebagai prediksi dengan skor validasi yang baik.

Tiga ide yang membawa beban adalah:

  • Ortogonalkan skor sehingga error tahap pertama membatalkan ke urutan kedua.
  • Cross-fit, dengan folds yang dipurges dan diembargo pada data time series, sehingga overfitting tahap pertama tidak dapat menggeser θ0\theta_0.
  • Tentukan sebelumnya, sehingga interval yang Anda laporkan adalah interval yang sebenarnya Anda peroleh.

Estimator adalah bagian mudah. Bagian sulit tetap tidak berubah: menentukan confounder mana yang penting, memberi argumen bahwa asumsi identifikasi bertahan, dan menahan dorongan untuk menjalankan spesifikasi sekali lagi.


Referensi

Keturunan DML pendek dan layak satu baris: adalah model partially linear Robinson (1988) dengan ML menggantikan estimator kernel, mencapai bound efisiensi semiparametrik, dengan kondisi ortogonalitas yang melacak kembali ke tes C(α\alpha) Neyman dan sepupu dekat dalam sastra pembelajaran yang ditargetkan (TMLE). Kontribusi Chernozhukov et al. adalah menunjukkan bahwa ini dapat dioperasionalkan dengan learner ML sembarang saat mempertahankan inferensi N\sqrt{N}-konsisten, asymptotically normal.

  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.
Penafian: Informasi yang disediakan dalam artikel ini hanya untuk tujuan edukasi dan informasi serta tidak merupakan nasihat keuangan, investasi, atau trading. Trading mata uang kripto mengandung risiko kerugian yang signifikan.

Penulis

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

Selangkah Lebih Maju dari Pasar

Berlangganan newsletter kami untuk wawasan AI trading eksklusif, analisis pasar, dan pembaruan platform.

Kami menghormati privasi Anda. Berhenti berlangganan kapan saja.