Robustness Checks
Overview
This skill applies canonical robustness checks appropriate to the research design. It is open-ended — the skill suggests checks that fit the specific identification strategy, not a blanket checklist. YAGNI applies aggressively: a paper with 5 well-chosen robustness checks is stronger than one with 30 redundant ones.
When to Use
- After
statistical-modeling has produced a main result
- A reviewer has requested robustness tests
- Preparing the paper's robustness section or appendix
- Before submitting to a journal
- The user asks "is this result robust?"
The YAGNI Principle
Include only checks that meet at least one criterion:
- Canonical for the design — the standard literature expects them (e.g., pre-trends for DiD, McCrary density for RD)
- Plausibly challenging — the check probes an assumption that could realistically fail
- Specifically requested — a reviewer asked for it
Do not pile on tests to signal rigor. Thirty robustness checks produce noise, not evidence. Referees read a crowded appendix as defensive, not thorough.
Mandatory Steps
Identify the identification strategy of the main result. The design determines which assumptions are load-bearing and therefore which checks are informative.
List the canonical challenges to that strategy. For DiD, parallel trends is key, so checks should probe it (pre-trends, placebo periods, event studies). For RD, continuity and non-manipulation. For IV, exclusion and weakness. For SC, donor pool and pre-treatment fit.
Pick 4-8 checks that address those challenges. More is rarely better. If you cannot justify each check in one sentence, drop it.
Run each check as a separate script under code/, following replication-driven-research. Each check should be reproducible independently.
Report all checks in a dedicated section or appendix table, including checks where the result does NOT survive. Transparency about failures is credibility, not weakness.
Discuss failures openly. If a check fails, explain what the failure means and whether it changes the interpretation of the main result.
Starting-Point Recipe by Design
Not exhaustive. Pick what fits your specific design and question.
Any Design
- Alternative standard errors: Robust vs clustered vs bootstrap; clustering at different levels
- Sample splits: By period, by subgroup, excluding outliers or influential observations
- Alternative specifications: Adding or removing controls, alternative functional forms, alternative outcome definitions
- Sensitivity to outliers: Winsorization, trimming, removing high-leverage points
Difference-in-Differences
- Pre-trends test: Event-study plot with pre-period coefficients
- Placebo periods: Fake treatment dates before the actual one
- Alternative comparison groups: Different control-group definitions
- Triple-diff: A third dimension to rule out confounding trends
- For staggered adoption: Callaway-Sant'Anna, de Chaisemartin-D'Haultfoeuille, or BJS imputation as alternatives to two-way FE
Regression Discontinuity
- Bandwidth sensitivity: Vary the bandwidth above and below the optimal choice
- Polynomial order: Local linear, local quadratic, higher order with caution
- McCrary density test: Check for manipulation at the cutoff
- Covariate balance at the cutoff: Pre-determined covariates should be smooth
- Donut RD: Drop observations very close to the cutoff
Instrumental Variables
- Weak-IV diagnostics: Montiel-Pflueger F, Stock-Yogo critical values
- Reduced-form plot: Inspect the direct relationship between instrument and outcome
- Alternative instruments: If multiple available, check consistency
- Overidentification tests: Sargan or Hansen (with caveats on size)
- LATE interpretation: Explicit discussion of which compliers the estimate applies to
Synthetic Control
- Placebo tests in space: Apply method to each donor
- Placebo tests in time: Move the treatment date back
- Leave-one-out donors: Drop each donor, re-estimate
- Pre-treatment RMSPE comparison: Treated unit vs placebo distribution
Time-Series
- Alternative lag length: AIC vs BIC vs HQ
- Structural breaks: Test for and accommodate breaks
- Alternative stationarity assumptions: Robustness to trend specification
Panel / Fixed Effects
- Alternative FE structures: Unit-only, time-only, two-way
- Alternative clustering levels
- Nickell bias in dynamic panels: Check with GMM alternatives if relevant
Reporting Format
Example narrative structure for a robustness section:
## Robustness
Table A1 reports alternative specifications. Column (1) reproduces the main
result from Table 3. Column (2) excludes the 2020 shock. Column (3) uses an
alternative outcome measure. Column (4) clusters at the municipality level
instead of state. The coefficient remains statistically significant and
economically meaningful across all variations, except for Column (2), where
the point estimate falls by 40% and is no longer significant at conventional
levels. This sensitivity to the 2020 period is discussed in Section 6 and
reflects the extraordinary conditions of the COVID-19 recession.
Figure A1 presents the event-study plot testing the parallel trends
assumption. Pre-period coefficients are close to zero and jointly
insignificant (p = 0.42), supporting the parallel trends interpretation.
Anti-Patterns
- Running 30 robustness checks without any criterion for selection
- Reporting only the checks where the result survived
- A robustness check that tests a different estimand than the main result
- Running the wrong check for the design (e.g., McCrary for a DiD)
- Not discussing checks that fail
- Adding a check because "another paper did it", not because it probes a real assumption
- Framing robustness as "passed all tests" without nuance
Verification Before Completion
1---2name: robustness-checks3description: Use when a main specification has produced a result, when preparing a paper appendix, when a reviewer requests robustness, or before declaring any empirical finding final. Guides selection of design-appropriate checks without mandating a fixed checklist.4---56# Robustness Checks78## Overview910This skill applies canonical robustness checks appropriate to the research design. It is open-ended — the skill suggests checks that fit the specific identification strategy, not a blanket checklist. YAGNI applies aggressively: a paper with 5 well-chosen robustness checks is stronger than one with 30 redundant ones.1112## When to Use1314- After `statistical-modeling` has produced a main result15- A reviewer has requested robustness tests16- Preparing the paper's robustness section or appendix17- Before submitting to a journal18- The user asks "is this result robust?"1920## The YAGNI Principle2122Include only checks that meet at least one criterion:23241. **Canonical for the design** — the standard literature expects them (e.g., pre-trends for DiD, McCrary density for RD)252. **Plausibly challenging** — the check probes an assumption that could realistically fail263. **Specifically requested** — a reviewer asked for it2728Do not pile on tests to signal rigor. Thirty robustness checks produce noise, not evidence. Referees read a crowded appendix as defensive, not thorough.2930## Mandatory Steps31321. **Identify the identification strategy of the main result.** The design determines which assumptions are load-bearing and therefore which checks are informative.33342. **List the canonical challenges to that strategy.** For DiD, parallel trends is key, so checks should probe it (pre-trends, placebo periods, event studies). For RD, continuity and non-manipulation. For IV, exclusion and weakness. For SC, donor pool and pre-treatment fit.35363. **Pick 4-8 checks that address those challenges.** More is rarely better. If you cannot justify each check in one sentence, drop it.37384. **Run each check as a separate script** under `code/`, following `replication-driven-research`. Each check should be reproducible independently.39405. **Report all checks in a dedicated section or appendix table**, including checks where the result does NOT survive. Transparency about failures is credibility, not weakness.41426. **Discuss failures openly.** If a check fails, explain what the failure means and whether it changes the interpretation of the main result.4344## Starting-Point Recipe by Design4546**Not exhaustive.** Pick what fits your specific design and question.4748### Any Design4950- **Alternative standard errors:** Robust vs clustered vs bootstrap; clustering at different levels51- **Sample splits:** By period, by subgroup, excluding outliers or influential observations52- **Alternative specifications:** Adding or removing controls, alternative functional forms, alternative outcome definitions53- **Sensitivity to outliers:** Winsorization, trimming, removing high-leverage points5455### Difference-in-Differences5657- **Pre-trends test:** Event-study plot with pre-period coefficients58- **Placebo periods:** Fake treatment dates before the actual one59- **Alternative comparison groups:** Different control-group definitions60- **Triple-diff:** A third dimension to rule out confounding trends61- **For staggered adoption:** Callaway-Sant'Anna, de Chaisemartin-D'Haultfoeuille, or BJS imputation as alternatives to two-way FE6263### Regression Discontinuity6465- **Bandwidth sensitivity:** Vary the bandwidth above and below the optimal choice66- **Polynomial order:** Local linear, local quadratic, higher order with caution67- **McCrary density test:** Check for manipulation at the cutoff68- **Covariate balance at the cutoff:** Pre-determined covariates should be smooth69- **Donut RD:** Drop observations very close to the cutoff7071### Instrumental Variables7273- **Weak-IV diagnostics:** Montiel-Pflueger F, Stock-Yogo critical values74- **Reduced-form plot:** Inspect the direct relationship between instrument and outcome75- **Alternative instruments:** If multiple available, check consistency76- **Overidentification tests:** Sargan or Hansen (with caveats on size)77- **LATE interpretation:** Explicit discussion of which compliers the estimate applies to7879### Synthetic Control8081- **Placebo tests in space:** Apply method to each donor82- **Placebo tests in time:** Move the treatment date back83- **Leave-one-out donors:** Drop each donor, re-estimate84- **Pre-treatment RMSPE comparison:** Treated unit vs placebo distribution8586### Time-Series8788- **Alternative lag length:** AIC vs BIC vs HQ89- **Structural breaks:** Test for and accommodate breaks90- **Alternative stationarity assumptions:** Robustness to trend specification9192### Panel / Fixed Effects9394- **Alternative FE structures:** Unit-only, time-only, two-way95- **Alternative clustering levels**96- **Nickell bias in dynamic panels:** Check with GMM alternatives if relevant9798## Reporting Format99100Example narrative structure for a robustness section:101102```markdown103## Robustness104105Table A1 reports alternative specifications. Column (1) reproduces the main106result from Table 3. Column (2) excludes the 2020 shock. Column (3) uses an107alternative outcome measure. Column (4) clusters at the municipality level108instead of state. The coefficient remains statistically significant and109economically meaningful across all variations, except for Column (2), where110the point estimate falls by 40% and is no longer significant at conventional111levels. This sensitivity to the 2020 period is discussed in Section 6 and112reflects the extraordinary conditions of the COVID-19 recession.113114Figure A1 presents the event-study plot testing the parallel trends115assumption. Pre-period coefficients are close to zero and jointly116insignificant (p = 0.42), supporting the parallel trends interpretation.117```118119## Anti-Patterns120121- Running 30 robustness checks without any criterion for selection122- Reporting only the checks where the result survived123- A robustness check that tests a different estimand than the main result124- Running the wrong check for the design (e.g., McCrary for a DiD)125- Not discussing checks that fail126- Adding a check because "another paper did it", not because it probes a real assumption127- Framing robustness as "passed all tests" without nuance128129## Verification Before Completion130131- [ ] Each check is justified by the identification strategy of the main result132- [ ] 4-8 checks total (not 30)133- [ ] Every check run by a script in `code/` that reproduces independently134- [ ] Results tabulated, including failures135- [ ] Narrative in the paper discusses both survivors and failures136- [ ] YAGNI respected — no check included "just to be safe"137- [ ] Paper text in the user's paper language; scripts and file names in English