@misc{grf,
title = {grf},
author = {Athey and Tibshirani and Wager},
howpublished = {\url{https://grf-labs.github.io/grf/}},
note = {Software / documentation}
}Honest non-parametric regression for E[Y|X], with out-of-bag predictions and pointwise CIs.
v2.6.1tag

Figure: GRF package logo. Source — grf-labs docs.
⚠️ Unofficial community write-up of a method from grf-labs/grf (pinned at
v2.6.1). Not affiliated with the grf-labs authors — this summarizes the public documentation for demonstration. All credit & copyright belong to the original authors (Athey, Tibshirani, Wager, et al.).
What it does
The workhorse under everything else: an honest random forest for E[Y | X]. Beyond a point prediction it gives out-of-bag estimates and asymptotically-valid pointwise confidence intervals via the forest's adaptive weights.
rf <- regression_forest(X, Y)
predict(rf, estimate.variance = TRUE)
variable_importance(rf)
Why it matters here
Used to cross-fit the nuisance functions Y.hat / W.hat that orthogonalize the causal and instrumental forests.
Used in these workflows (5)
-
Smooth signals with a local linear forest
When the conditional mean is smooth: regression forest baseline → ll_regression_forest → tuning → diagnostics.
-
Cross-fold validation of heterogeneity
K-fold cross-fitted CATEs → RATE on out-of-fold priorities → honest verdict on heterogeneity strength.
-
An introduction to GRF (getting started)
A minimal first-contact recipe: regression forest, quantile forest, and a causal forest on the same data.
-
Assessing heterogeneity with RATE (AUTOC & Qini)
Causal forest → train/eval split → RATE with both AUTOC and Qini → TOC plot.
-
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.
The unsung hero of the whole package. Half my pipelines just use this for the nuisance models.
If your signal is smooth, try ll_regression_forest instead — the boundary bias here can bite.