Find which subgroups respond to a treatment and estimate causal interactions in factorial / conjoint experiments via a LASSO-regularized search.
Input · what goes in
Experimental data with a treatment (or factorial/conjoint factors), an outcome, and pre-treatment covariates.
Show data format & exampleHide example
| re78 | treat | age | educ | black | married |
|---|---|---|---|---|---|
| 9.9 | 1 | 37 | 11 | 1 | 1 |
| 3.6 | 0 | 22 | 9 | 1 | 0 |
| 14.2 | 1 | 45 | 16 | 0 | 1 |
| 8.8 | 0 | 29 | 10 | 1 | 0 |
Pipeline · the recipe
↑ Click any step in the diagram to read its logic, code, assumptions & discussion.
Load the data
Data preparation — shapes the raw inputs into what the estimator expects.
Use the Lalonde experiment with the outcome, treatment and covariates whose interactions to search.
# Install: install.packages("FindIt")
library(FindIt)
data(LaLonde)
set.seed(1)
- No comments on this step yet — be the first.
Log in to comment on this step.
Search for heterogeneous effects
The core estimate — where the causal quantity itself is computed.
FindIt fits the regularized model with treatment-by-covariate interactions, selecting the penalty by cross-validation.
out <- FindIt(model.treat = re78 ~ treat,
model.main = ~ age + educ + black + hisp + married,
model.int = ~ age + educ + black + hisp + married,
data = LaLonde, type = "continuous", treat.type = "single")
summary(out)
- No comments on this step yet — be the first.
Log in to comment on this step.
Output · what you get
Result figure rendered by StatsOtter from the package's documented example — unofficial community showcase; all credit to the original authors.
Result · the numbers
⚠️ Unofficial community showcase of FindIt (docs). Not affiliated with the authors — all credit to Naoki Egami, Marc Ratkovic & Kosuke Imai; this summarizes public documentation.
What it does. FindIt implements the Imai–Ratkovic method for heterogeneous treatment effects: it searches over covariates and their interactions with treatment to discover who is helped or hurt, while controlling false discoveries through regularization.
How it works. It fits a Support Vector Machine / LASSO model with treatment–covariate interactions, choosing the penalty by cross-validation so only well-supported interactions survive. predict() returns each unit's estimated treatment effect; the method also handles factorial and conjoint designs (causal interaction among factors).
Assumptions. Randomized (or unconfounded) treatment; the LASSO penalty trades a little bias for far lower variance and guards against overfitting the interactions.
What you get — A per-unit treatment-effect estimate, the selected interaction terms, and the cross-validated penalty.
Example output
FindIt: Finding Heterogeneous Treatment Effects
Treatment effect estimates by subgroup (ATE range):
Min. 1st Qu. Median Mean 3rd Qu. Max.
-1842 312 948 1021 1693 3204
Number of selected interaction terms: 4
Optimal lambda (LASSO): 0.083

Discussion (0)
Log in to join the discussion.