Skip to contents

Uncertainty for the ATT of a sharp GSC fit, conditional on the covariates, factors and loadings, by resampling the residuals of the estimated IFE model (Xu 2017, S.3.2 and Algorithm 2). It is the procedure the paper proposes when few units are treated, where resampling the treated units themselves cannot reach their noise.

Usage

gsc_boot(fit, B = 499L, alpha = 0.05, seed = NULL)

Arguments

fit

A coresynth object from scm_fit() with method = "gsc".

B

Number of bootstrap replications, and of prediction errors drawn for the treated units (default 499L).

alpha

Significance level for the confidence interval (default 0.05).

seed

RNG seed for reproducibility (default NULL).

Value

A list with:

  • p_value: Two-sided p-value: mean(|ATT*| >= |ATT_obs|)

  • ci_lower: Lower bound of the (1-alpha)*100% CI for the ATT, ATT_obs - q(1 - alpha/2) where q are quantiles of boot_dist

  • ci_upper: Upper bound, ATT_obs - q(alpha/2)

  • se: Bootstrap standard error

  • boot_dist: Numeric vector of length B (bootstrap ATT* values)

  • att_obs: Observed ATT from the original fit

Details

Each replicate rebuilds the panel without a treatment effect from the fitted values and re-estimates it. Residuals are resampled as whole time series, which keeps their serial correlation. The control units take the in-sample residuals of the IFE fit. The treated units take prediction errors instead, which are larger: before the bootstrap, a control unit is set aside as if it were treated, the model is refitted on a resample of the remaining controls, and the left-out unit's observed series minus its predicted counterfactual is one prediction error. Covariates enter through the fitted values and are re-estimated in each replicate.