Given a design, runs the estimation and the route-appropriate battery of diagnostics in one call, dispatching on `design$exogenous`. Because the two identification routes justify *different* statistics (Borusyak-Hull-Jaravel JEP practical guide), each route reports only its own battery:
**share** (Goldsmith-Pinkham, Sorkin & Swift 2020): conventional (EHW / cluster) inference; Rotemberg-weight decomposition and summary; the Sargan-Hansen overidentification test across the share instruments; leave-one-out sensitivity; and — if `covariates` are supplied — balance of the top-|Rotemberg-weight| shares.
**shift** (Borusyak, Hull & Jaravel 2022): exposure-robust (AKM / AKM0) inference; the location-level / shock-level equivalence check; the effective-shock / exposure-concentration summary; leave-one-out sensitivity; and — if `shock_covariates` are supplied — the shock-balance check.
Pre-trend ([ssb_pretrend()]) and placebo ([ssb_placebo()]) checks run on both routes when `pre_y` / `placebo_y` are supplied, with route-appropriate headline inference. Arguments belonging to the other route (`shock_covariates` on the share route, `covariates` on the shift route) are skipped with a message rather than silently mixed in.
Usage
ssb_pipeline(
design,
covariates = NULL,
pre_y = NULL,
placebo_y = NULL,
shock_covariates = NULL,
top = 5,
level = 0.95
)Arguments
- design
An [ssb_design()] object.
- covariates
Optional observables for the share-balance check (share route).
- pre_y
Optional pre-period outcome for [ssb_pretrend()].
- placebo_y
Optional placebo outcome for [ssb_placebo()].
- shock_covariates
Optional shock-level characteristics (a data.frame keyed by sector) for [ssb_shock_balance()] on the shift route.
- top
Number of top-weight sectors for the sensitivity diagnostics.
- level
Confidence level.