Skip to content
StatsOtter A workspace for causal thinking
Method library WORKFLOW / 008
Research workflow/5 steps

Policy learning via optimal decision trees

Source grf — Athey, Tibshirani & Wager
01
The method workspace

Follow the analysis.

Select a node to explore the method

Method mapInput → 5 steps → output
START WITHInput data
ARRIVE ATResults
Read step 01
Inside the methodReasoning, equations & implementation
Step 1 of 5
01
Estimation

[GRF] Causal forest

The core estimate — where the causal quantity itself is computed.

What happens here

Estimate CATEs and the AIPW score for each unit.

Formula
\tau(x)=\mathbb{E}\!\left[\,Y(1)-Y(0)\mid X=x\,\right]
The estimator

Causal forest — Honest random forest for heterogeneous treatment effects — CATE for a binary treatment via GRF moment conditions.

Reads fromNot specified Feeds into#2
Key code
cf <- causal_forest(X, Y, W)          # Y.hat, W.hat cross-fit
tau.hat <- predict(cf)$predictions    # OOB CATEs
Discussion on this step (0)
StatsOtterDiscussion starter · Editorial note

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
  1. Which assumption matters most here, and what evidence could challenge it?
  2. What would you check before passing this output to the next step?

Peer discussion

  • Bring your experience, a question, or a different perspective.
02
Data contract

Inputs & data

Per-unit CATEs / doubly-robust scores from a causal forest, plus a cost.

Show data format & exampleHide example

Format — one row per unit. A covariate matrix X (numeric), a binary treatment W ∈ {0,1}, and an outcome Y.

  X1     X2    X3    W    Y
 0.42  -1.1   0     1   3.10
-0.07   0.6   1     0   1.85
 1.20   0.3   0     1   4.02
03
Read the evidence

Results & interpretation

1 figure Workflow discussion 2
01FigureThe learned treatment rule: a shallow decision boundary splitting treat vs do-not-treat in covariate space.

Figures reproduced from grf — Athey, Tibshirani & Wager — unofficial community showcase; all credit to the original authors.

Context & interpretation

The GRF + policytree tutorial: turn CATEs into an interpretable, near-optimal treatment rule and honestly evaluate its value. Unofficial summary; policytree is a separate grf-labs package.

Peer notes

Discuss the workflow (2)

  • 4

    Depth-2 trees hit the sweet spot: near-optimal but you can actually explain the rule to ops. The held-out value evaluation keeps you honest.

    5

    The 'evaluate vs treat-all/treat-none' baseline is what convinces stakeholders. Always include it.

  • 5

    Doubly-robust scores as the policytree reward is the key link. Garbage scores → garbage policy.

IN THE MARGINS

Peer discussion