Data Analysis (io-data-analysis)
Two facts shape how you analyze for IO. First, IO publishes international-relations work, so the
estimation problems are IR-specific — dyads are not independent, states select into treaties and wars,
trade follows a gravity structure, and many "variables" are estimated constructs. Second, IO's editorial
staff later re-run your quantitative analyses and verify your formal proofs before final acceptance
(see io-transparency-and-data-policy). This skill covers execution and reporting; identification choices
live in io-research-design.
When to trigger
- Estimating the main international effect and supporting analyses; writing the results section
- A referee asked for robustness, heterogeneity by issue area, or an alternative estimator
- Deriving and presenting the results/comparative statics of a formal model
- Separating preregistered from exploratory analyses on a foreign-policy experiment
IR-specific estimation concerns
- Dyadic and network dependence. Directed/undirected dyads share members, so observations are not
independent. Use two-way or multiway clustering, dyadic-robust SEs, or latent-space/AME network models
rather than naive OLS standard errors.
- Selection at the international level. States choose into alliances, treaties, IO membership, and
conflict. Model or bound that selection; do not read a compliance correlation as an institutional effect.
- Gravity and trade. For bilateral flows, prefer PPML with high-dimensional fixed effects over
log-linear OLS; handle zeros honestly.
- Estimated regressors. Ideal points, institutional-design indices, latent regime scores, and
text-derived measures carry estimation uncertainty — propagate it rather than treating point estimates
as observed data.
- Few effective units. With a small number of countries/IGOs as clusters, use wild-cluster bootstrap
or randomization inference, not asymptotic clustered SEs.
Reporting standards IO referees expect
- Substantive magnitude, not stars. Give the size of the international effect with an interval and
interpret it in IR terms (probability of conflict, change in trade, shift in compliance).
- Probing robustness. Vary the operationalization of the international construct, the dyad/year
sample, the estimator, and the fixed effects; report what breaks the result, not only what survives.
- Disciplined heterogeneity. Pre-register or pre-state cuts by issue area, regime type, or region;
adjust for multiple comparisons; never harvest one significant interaction and theorize it afterward.
- Construct validity. Show the finding is not an artifact of one conflict coding, one alliance
dataset, or one scaling decision; cross-walk to an alternative source where one exists.
Formal-model results
- Present equilibrium results and comparative statics so a reader can map them to the empirics.
- Keep a complete proof appendix — IO staff verify proofs before final acceptance, so derivations
must be checkable, not sketched.
Verification-readiness (engineer it during analysis)
- A single driver script reproduces every reported number from the raw/constructed data in one run.
- Record seeds for every bootstrap, simulation, and randomization-inference step.
- Pin the toolchain (
renv.lock, requirements.txt, logged ssc/net install lines) and the dataset
versions (COW vX, V-Dem vY, UCDP release Z).
- The numbers printed in the manuscript must equal the script's output exactly — the IO re-run will compare them.
Execution bridge (StatsPAI / Stata MCP)
Run the battery, don't just enumerate it. Full map:
execution-with-mcp. International Organization is IR — country/dyad panels with difficult identification; foreground the source of variation and robustness to alternative explanations.
- Many outcomes / specifications:
romano_wolf (step-down FWER) or
benjamini_hochberg — report the adjusted threshold.
- OVB sensitivity:
oster_delta / sensemakr.
- Inference:
wild_cluster_bootstrap (few clusters), twoway_cluster / conley;
multilevel data → cluster at the right level.
- Re-fit off one handle:
audit_result(result_id) lists the missing checks and the
exact suggest_function for each.
- Exhibits:
etable / did_summary_to_latex from the handle — no retyped numbers.
Keep the decisive checks in the body and the exhaustive battery in the supplement. See
the executed chain in the JF execution walkthrough.
Anti-patterns
- Treating dyads as independent; ignoring selection into treaties/alliances/conflict
- Log-OLS on trade flows where zeros and heteroskedasticity bias the gravity estimates
- Plugging in estimated ideal points/indices as if measured without error
- Asymptotic clustered SEs with a handful of country clusters
- A formal section with results stated but proofs left incomplete (verification will stall)
Output format
【Estimand】the international effect + how identified (per io-research-design)
【IR estimation】dyadic dependence / selection / gravity / few-cluster handled? [Y/N]
【Magnitude】effect size + interval + IR interpretation
【Robustness】which specs could break it → what held
【Heterogeneity】pre-stated by issue area/regime? MHT-adjusted?
【Formal proofs】complete + checkable appendix? [Y/N/NA]
【Verification-ready】one-run driver script, seeds, pinned data/toolchain? [Y/N]
【Next】io-tables-figures
Supplementary resources
1---2name: io-data-analysis3description: Use when executing and reporting the empirical analysis (or the formal-model results) for an International Organization (IO) manuscript so it survives expert double-blind IR review and IO's pre-publication verification. The IO editorial staff re-run quantitative analyses and check formal proofs before final acceptance, and IR data raise distinctive estimation problems (dyadic dependence, selection into treaties/alliances/conflict, gravity structure). Guides analysis and reporting; it does not fabricate results.4---56# Data Analysis (io-data-analysis)78Two facts shape how you analyze for IO. First, IO publishes **international-relations** work, so the9estimation problems are IR-specific — dyads are not independent, states select into treaties and wars,10trade follows a gravity structure, and many "variables" are estimated constructs. Second, IO's editorial11staff later **re-run your quantitative analyses and verify your formal proofs before final acceptance**12(see `io-transparency-and-data-policy`). This skill covers execution and reporting; identification choices13live in `io-research-design`.1415## When to trigger1617- Estimating the main international effect and supporting analyses; writing the results section18- A referee asked for robustness, heterogeneity by issue area, or an alternative estimator19- Deriving and presenting the results/comparative statics of a formal model20- Separating preregistered from exploratory analyses on a foreign-policy experiment2122## IR-specific estimation concerns2324- **Dyadic and network dependence.** Directed/undirected dyads share members, so observations are not25 independent. Use two-way or multiway clustering, dyadic-robust SEs, or latent-space/AME network models26 rather than naive OLS standard errors.27- **Selection at the international level.** States choose into alliances, treaties, IO membership, and28 conflict. Model or bound that selection; do not read a compliance correlation as an institutional effect.29- **Gravity and trade.** For bilateral flows, prefer PPML with high-dimensional fixed effects over30 log-linear OLS; handle zeros honestly.31- **Estimated regressors.** Ideal points, institutional-design indices, latent regime scores, and32 text-derived measures carry estimation uncertainty — propagate it rather than treating point estimates33 as observed data.34- **Few effective units.** With a small number of countries/IGOs as clusters, use wild-cluster bootstrap35 or randomization inference, not asymptotic clustered SEs.3637## Reporting standards IO referees expect38391. **Substantive magnitude, not stars.** Give the size of the international effect with an interval and40 interpret it in IR terms (probability of conflict, change in trade, shift in compliance).412. **Probing robustness.** Vary the operationalization of the international construct, the dyad/year42 sample, the estimator, and the fixed effects; report what *breaks* the result, not only what survives.433. **Disciplined heterogeneity.** Pre-register or pre-state cuts by issue area, regime type, or region;44 adjust for multiple comparisons; never harvest one significant interaction and theorize it afterward.454. **Construct validity.** Show the finding is not an artifact of one conflict coding, one alliance46 dataset, or one scaling decision; cross-walk to an alternative source where one exists.4748## Formal-model results49- Present equilibrium results and comparative statics so a reader can map them to the empirics.50- Keep a **complete proof appendix** — IO staff verify proofs before final acceptance, so derivations51 must be checkable, not sketched.5253## Verification-readiness (engineer it during analysis)54- A single driver script reproduces every reported number from the raw/constructed data in one run.55- Record seeds for every bootstrap, simulation, and randomization-inference step.56- Pin the toolchain (`renv.lock`, `requirements.txt`, logged `ssc`/`net install` lines) and the dataset57 versions (COW vX, V-Dem vY, UCDP release Z).58- The numbers printed in the manuscript must equal the script's output exactly — the IO re-run will compare them.5960## Execution bridge (StatsPAI / Stata MCP)6162Run the battery, don't just enumerate it. Full map:63[`execution-with-mcp`](../../../shared-resources/empirical-methods/execution-with-mcp.md). International Organization is IR — country/dyad panels with difficult identification; foreground the source of variation and robustness to alternative explanations.6465- **Many outcomes / specifications:** `romano_wolf` (step-down FWER) or66 `benjamini_hochberg` — report the adjusted threshold.67- **OVB sensitivity:** `oster_delta` / `sensemakr`.68- **Inference:** `wild_cluster_bootstrap` (few clusters), `twoway_cluster` / `conley`;69 multilevel data → cluster at the right level.70- **Re-fit off one handle:** `audit_result(result_id)` lists the missing checks and the71 exact `suggest_function` for each.72- **Exhibits:** `etable` / `did_summary_to_latex` from the handle — no retyped numbers.7374Keep the decisive checks in the body and the exhaustive battery in the supplement. See75the executed chain in the [JF execution walkthrough](../../../Journal-of-Finance-Skills/resources/worked-examples/02-execution-walkthrough.md).76## Anti-patterns7778- Treating dyads as independent; ignoring selection into treaties/alliances/conflict79- Log-OLS on trade flows where zeros and heteroskedasticity bias the gravity estimates80- Plugging in estimated ideal points/indices as if measured without error81- Asymptotic clustered SEs with a handful of country clusters82- A formal section with results stated but proofs left incomplete (verification will stall)8384## Output format8586```87【Estimand】the international effect + how identified (per io-research-design)88【IR estimation】dyadic dependence / selection / gravity / few-cluster handled? [Y/N]89【Magnitude】effect size + interval + IR interpretation90【Robustness】which specs could break it → what held91【Heterogeneity】pre-stated by issue area/regime? MHT-adjusted?92【Formal proofs】complete + checkable appendix? [Y/N/NA]93【Verification-ready】one-run driver script, seeds, pinned data/toolchain? [Y/N]94【Next】io-tables-figures95```9697## Supplementary resources9899- [`../../resources/external_tools.md`](../../resources/external_tools.md) — dyadic/network/gravity estimation, few-cluster inference, and text-as-data packages100- [`../../resources/official-source-map.md`](../../resources/official-source-map.md) — verification of results and formal proofs before final acceptance