Learn an interpretable treatment policy (DoubleML policy tree)
@misc{doubleml,
title = {DoubleML},
author = {Bach and Chernozhukov and Kurz and Spindler},
howpublished = {\url{https://docs.doubleml.org/}},
note = {Software / documentation}
}Follow the analysis.
Select a node to explore the method
Orthogonal scores from an IRM
The core estimate — where the causal quantity itself is computed.
Cross-fitted doubly-robust scores Γ — the reward signal for each unit.
dml_irm = dml.DoubleMLIRM(dml_data, ml_g, ml_m).fit()
Before using this step, make its assumptions and its output explicit. A useful peer note explains what you would check, what could go wrong, or what would change your interpretation.
Questions to explore- Which assumption matters most here, and what evidence could challenge it?
- What would you check before passing this output to the next step?
Choose a question to start your comment.
Peer discussion
- Bring your experience, a question, or a different perspective.
Log in to comment on this step.
Fit a depth-limited policy tree
Heterogeneity — who is affected, and by how much, not just on average.
Choose the rule that maximises the average doubly-robust value over a shallow tree class.
tree = dml_irm.policy_tree(features=X, depth=2)
tree.plot_tree()
Before using this step, make its assumptions and its output explicit. A useful peer note explains what you would check, what could go wrong, or what would change your interpretation.
Questions to explore- Which assumption matters most here, and what evidence could challenge it?
- What would you check before passing this output to the next step?
Choose a question to start your comment.
Peer discussion
- Bring your experience, a question, or a different perspective.
Log in to comment on this step.
Read the tree & its value
Reporting — turn the numbers into a figure or table a reader can act on.
Plot the rule and report its value vs treat-all / treat-none.
# value(pi) = mean of DR scores under the learned assignment
Before using this step, make its assumptions and its output explicit. A useful peer note explains what you would check, what could go wrong, or what would change your interpretation.
Questions to explore- Which assumption matters most here, and what evidence could challenge it?
- What would you check before passing this output to the next step?
Choose a question to start your comment.
Peer discussion
- Bring your experience, a question, or a different perspective.
Log in to comment on this step.
Inputs & data
Outcome Y, binary treatment D, covariates X you'd target on (and a cost, implicitly).
Show data format & exampleHide example
Format — one row per unit: y, d, targeting covariates X.
y d x1 x2
1.2 1 0.4 -1.1
-0.3 0 -0.1 0.6
Figures reproduced from DoubleML — Bach, Chernozhukov, Kurz & Spindler — unofficial community showcase; all credit to the original authors.
⚠️ Unofficial community showcase of a DoubleML example. Not affiliated with the authors; figures are from the public documentation. All credit to Bach, Chernozhukov, Kurz & Spindler.
Turn debiased CATEs into a rule: fit a shallow, readable decision tree that maximises the doubly-robust policy value.
Discuss the workflow (0)
Log in to join the discussion.