R-Learner and Orthogonal CATE Estimation

Summary

The R-learner (Nie & Wager 2021, Biometrika) estimates the CATE function by minimizing a loss built from Robinson’s (1988) transformation . Step 1: cross-fit the conditional mean outcome and propensity with any predictive learner. Step 2: minimize the R-loss over with any loss-minimizing learner (lasso, boosting, kernel ridge, neural nets). Because the R-loss is Neyman orthogonal in , the method is quasi-oracle: if the nuisances are estimated at rates, attains the same regret bound as an oracle who knows and — the rate depends only on the complexity of , not of the nuisances. It is DML’s partially linear score turned into an objective for a function.

Overview

“Any good heterogeneous treatment effect estimator needs to achieve two goals: First, it needs to eliminate spurious effects by controlling for correlations between and , and then it needs to accurately express .” Most ML approaches (causal forests, causal boosting, TARNet-style networks) modify an algorithm to do both at once. The R-learner modifies the loss function instead and “cleanly separates these two tasks”: confounding is removed by the structure of the loss; the representation of is whatever the step-2 optimizer provides. Consequently black-box learners can be used “without auditing their internal state to check that they properly control for confounding,” and -models can be tuned and compared by cross-validating on the R-loss — solving the otherwise awkward problem that CATE has no observable ground truth.

The note also explains a limitation of the vault’s existing Metalearners for CATE cluster: the T-learner difference suffers regularization bias (“the fact that both and are regularized towards 0 separately may inadvertently regularize the treatment effect estimate away from 0, even when everywhere”), and the X-Learner is not robust to nuisance perturbations.

Main Content

Robinson's transformation (eq. 1) ^def-robinson

Under unconfoundedness , write , and the conditional mean outcome . Then with ,

Equivalently (Robins 2004),

This is the PLR model of Regularization Bias and the Partially Linear Model with the scalar promoted to a function of ; note that here is Chernozhukov et al.’s , and is their .

The R-learner (eqs. 3–4) ^alg-r-learner

Step 1. Split the data into folds (typically 5 or 10); let be the fold of observation . Fit and by cross-fitting, “via methods tuned for optimal predictive accuracy.” Step 2. With , the predictions made without fold , solve

where is an explicit or implicit regularizer. is the R-loss.

Implementation trick. The R-loss is a weighted least-squares problem: with residuals and ,

so any regressor accepting sample weights can fit by regressing the pseudo-outcome on with weights . The U-learner regresses the same pseudo-outcome without weights and “suffers from high variance and instability due to dividing by the propensity estimates”; the weights are precisely what down-weight observations with .

Quasi-oracle error bound (Lemma 2, Theorem 3) ^thm-quasi-oracle

Study -penalized kernel regression over an RKHS with kernel eigenvalues satisfying for some , uniformly bounded eigenfunctions, bounded outcomes (Assumption 2), and for some (Assumption 3: need only lie in after smoothing). Suppose overlap ; is uniformly consistent; and

If and the penalty is chosen as in the proof, the feasible R-learner satisfies the same regret bound as the oracle that uses the true :

As this recovers “the well-known result from the semiparametric inference literature that, in order to get -consistent inference for a single target parameter, we need 4-th root consistent nuisance parameter estimates.”

The mechanism is the same second-order remainder as in DML: errors in and enter the excess R-loss only through products/squares, so an nuisance rate contributes — below the oracle’s own error scale. The paper stresses that this “depends on a local robustness property of the R-loss function, and does not hold for general meta-learners.” Counterexample for the X-learner: shift and ; the nuisances remain -consistent, yet the X-learner’s shifts by exactly , which dominates the oracle rate. Künzel et al.’s own quasi-oracle result covers only the regime where controls vastly outnumber treated units — where , and the two learners roughly coincide.

Model averaging by R-stacking (eq. 8). Given out-of-fold CATE estimates from methods, choose

In the paper’s experiment (, randomized), stacking BART and a causal forest beats either alone for a smooth and automatically matches the better base learner (the forest) for a discontinuous .

Relation to causal forests. Nie & Wager note that Athey, Tibshirani & Wager (2019) “rely on [Robinson’s decomposition] to grow a causal forest that is robust to confounding”: a locally centered GRF solves the R-loss with forest-kernel localization, — “local parametric modeling” — whereas the R-learner proper fits a global function class. See local centering.

Examples

Get-out-the-vote study (§4.1). Data from Arceneaux, Gerber & Green (2006): 1,895,468 voters, 59,264 treated; analysis subsample of 148,160 (2/5 treated), split 100,000 / 25,000 / remainder into train / test / holdout; covariates; binary and . Randomization probabilities varied by state and competitiveness — ignoring them gives a naive 4% call effect, whereas a correct analysis bounds the effect below 1% in absolute value. Treating the true effect as zero, the authors spike in by flipping labels, hide the propensities, and compare learners. Nuisances: boosting won cross-validation for both and . CATE step: the lasso attained lower cross-validated R-loss than boosting (0.1816 vs 0.1818 on training; 0.1781 vs 0.1783 on holdout) and was selected — tiny but stable differences, because irreducible outcome noise dominates the loss level and cancels in comparisons.

Simulations (§6). Four designs with : A hard nuisances / easy ; B randomized trial; C easy propensity / hard baseline / constant ; D unrelated arms. Across lasso, kernel-ridge and boosting implementations, the R-learner “stands out” in A and C (strong confounding, simple effect) and essentially matches the oracle; all methods do reasonably in B; the T-learner wins in D, where there is nothing to gain from modeling the arms jointly; the U-learner is unstable throughout.

Code sketch.

from sklearn.model_selection import cross_val_predict
from sklearn.ensemble import GradientBoostingRegressor as GBR, GradientBoostingClassifier as GBC
 
m_hat = cross_val_predict(GBR(), X, Y, cv=10)                                  # E[Y|X], cross-fit
e_hat = cross_val_predict(GBC(), X, W, cv=10, method="predict_proba")[:, 1]    # P(W=1|X), cross-fit
Yt, Wt = Y - m_hat, W - e_hat
tau_model = GBR().fit(X, Yt / Wt, sample_weight=Wt ** 2)                       # minimizes the R-loss
r_loss = lambda tau: np.mean((Yt - Wt * tau) ** 2)                             # evaluate on held-out data

Connections

See Also