Skip to contents

Compare estimators

Run DID/TWFE, synthetic control, SDID, matrix completion, DIFP and TROP (plus optional gsynth, augsynth and Callaway–Sant’Anna) on one panel, and put the results on a single tidy ATT schema.

panel_compare()
Compare DID, SDID, MC and TROP on the same panel
as_att()
Coerce estimator output to the cfcompare ATT schema
bind_att()
Stack ATT results into one comparison table
autoplot(<cf_comparison>) autoplot(<cf_att_tbl>)
Forest plot of ATT estimates across methods
counterfactual_matrix() predict_counterfactual()
Estimated counterfactual (untreated potential outcome) matrix
plot_counterfactual()
Plot observed vs predicted counterfactual trajectories

TROP estimator

The Triply RObust Panel estimator of Athey, Imbens, Qu and Viviano (2026): data-frame and matrix entry points, and solver / cross-validation / inference settings.

trop()
Triply RObust Panel (TROP) estimator
trop_control()
Control settings for trop()
trop_matrix()
TROP estimate on matrix input
panel_matrices()
Reshape a long panel into TROP matrices

TROP diagnostics

Inspect a TROP fit: trajectories, event-study effects, placebo tests, standard-error comparisons, penalty ablations and penalty-sensitivity surfaces.

autoplot(<trop>)
Synthetic-control-style trajectory plot for a single TROP fit
trop_event_study()
Per-period (event-study) effects from a TROP fit
autoplot(<trop_event_study>)
Event-study plot for a TROP fit
trop_placebo_test() print(<trop_placebo_test>)
Placebo (randomisation) test for a TROP ATT
autoplot(<trop_placebo_test>)
Plot a TROP placebo test
compare_se_modes()
Compare TROP standard-error methods on one fit
autoplot(<cf_se_comparison>)
Plot a TROP standard-error comparison
trop_ablation() print(<trop_ablation>) plot(<trop_ablation>)
Penalty ablation for the TROP estimator
format(<trop_ablation>)
Render a TROP ablation table as paste-ready LaTeX or Markdown
trop_sensitivity()
TROP penalty-sensitivity grid (heatmap data)
autoplot(<cf_trop_grid>)
Heatmap of the TROP penalty-sensitivity grid
surface_matrix()
Surface matrix from a TROP penalty-sensitivity grid
selected_lambda()
CV-selected penalties from a TROP penalty-sensitivity grid
plot_trop_surfaces()
Base-R surface views of a TROP penalty-sensitivity grid

Held-out RMSE and simulation

Score estimators on held-out control data, trace estimation RMSE over a design dimension, and simulate panels with a known effect.

panel_rmse()
Out-of-sample RMSE across panel estimators
autoplot(<cf_rmse_tbl>)
Bar chart of out-of-sample RMSE across methods
rmse_curve()
Estimation-RMSE curve over one design dimension
rmse_curves()
Estimation-RMSE curves over both design dimensions
autoplot(<cf_rmse_curve>)
Line plot of estimation RMSE versus a design dimension
autoplot(<cf_rmse_curves>)
Autoplot for paired RMSE curves
plot(<cf_rmse_curve>) plot(<cf_rmse_curves>)
Plot one or both estimation-RMSE curves
sim_panel()
Simulate a panel from a low-rank factor model
sim_semisynthetic()
Build a semi-synthetic panel from real data
true_att()
True ATT of a (semi-)synthetic panel

Package overview

cfcompare cfcompare-package
cfcompare: Compare DID, SDID, MC and the Triply Robust Panel estimator
reexports autoplot
Objects exported from other packages