-
⌥ 4 steps ⑂ 1 branch Index: 182 16 peers Uplift modelling with S-, T-, X- and R-learners (CausalML)
Estimate who responds, not just the average: fit a family of meta-learners for the CATE, pick the best by validation error, then rank and target with an uplift curve.
Data prep Outcome, treatment, features Estimation Fit a family of meta-learners Heterogeneity Compare learners; choose by validation Reporting Targeting: uplift / Qini gain -
⌥ 4 steps ⑂ 1 branch Index: 219 99 peers Heterogeneous effects with causal-forest double ML (EconML)
Double machine learning with a forest final stage: partial out nuisance with flexible learners, then read the conditional effect τ(x) — with valid confidence intervals.
Data prep Split features: effect-modifiers X vs con… Estimation Partial out nuisance (Neyman-orthogonal D… Heterogeneity Forest-weighted local effect τ(x) Inference Confidence intervals for τ(x) -
⌥ 3 steps ⑂ 1 branch Index: 108 101 peers Learn an interpretable treatment policy (DoubleML policy tree)
Turn debiased CATEs into a rule: fit a shallow, readable decision tree that maximises the doubly-robust policy value.
Estimation Orthogonal scores from an IRM Heterogeneity Fit a depth-limited policy tree Reporting Read the tree & its value -
⌥ 5 steps ⑂ 1 branch Index: 132 78 peers Group & conditional effects with DoubleML (GATE / CATE)
Slice the average effect: Group Average Treatment Effects and a CATE surface from a debiased IRM, with simultaneous confidence bands.
Data prep Build DoubleMLData (y, d, X) Estimation Fit an Interactive Regression Model (IRM) Heterogeneity Group Average Treatment Effects Heterogeneity CATE via a basis expansion Reporting Plot with simultaneous bands -
⌥ 5 steps ⑂ 1 branch Index: 231 101 peers Difference-in-differences with multiple periods (did)
Staggered-adoption DiD done right: group-time ATT(g,t) → event-study / group / calendar aggregations, with honest pre-trends.
Data prep Build the staggered panel▼▼Inference aggte(type = 'dynamic') Heterogeneity aggte(type = 'group')▼Reporting ggdid() event-study plot -
⌥ 5 steps ⑂ 1 branch Index: 96 84 peers Qini curves: automatic cost-benefit analysis
From CATEs to a budgeted treatment policy: causal forest → DR scores → cost matrix → maq Qini curve → pick the budget.
▼Data prep Doubly-robust score matrix Data prep Cost matrix▼▼Reporting Pick the budget; report the gain -
⌥ 5 steps Index: 120 98 peers Cross-fold validation of heterogeneity
K-fold cross-fitted CATEs → RATE on out-of-fold priorities → honest verdict on heterogeneity strength.
Data prep K-fold split (e.g. K = 5)▼▼▼▼Reporting TOC curve + bootstrap CI -
⌥ 6 steps ⑂ 1 branch Index: 132 42 peers Evaluating a causal forest fit
Did the forest actually capture treatment-effect heterogeneity? Calibration → variable importance → BLP → omnibus tests.
▼Diagnostic / pre-tests test_calibration() Diagnostic / pre-tests variable_importance() Heterogeneity best_linear_projection() Diagnostic / pre-tests OOB residual checks▼Reporting Fit-evaluation report -
⌥ 6 steps ⑂ 1 branch Index: 207 23 peers Assessing heterogeneity with RATE (AUTOC & Qini)
Causal forest → train/eval split → RATE with both AUTOC and Qini → TOC plot.
▼▼Data prep Train / evaluation split▼Heterogeneity [GRF] Rank-weighted ATE — RATE / AUTOC / … Heterogeneity [GRF] Rank-weighted ATE — RATE / AUTOC / …▼Reporting TOC plot + AUTOC/Qini table -
⌥ 8 steps ⑂ 1 branch Index: 292 48 peers Heterogeneous treatment effects with a causal forest (GRF recipe)
The full GRF HTE playbook: cross-fit nuisances → causal forest → calibration → AIPW ATE → BLP → RATE → policy.
▼▼Diagnostic / pre-tests test_calibration() Inference [GRF] AIPW average treatment effect Heterogeneity best_linear_projection() Heterogeneity [GRF] Rank-weighted ATE — RATE / AUTOC / …▼Robustness check Policy learning (policytree)▼Reporting CATE histogram + targeting report