Data Analysis (crim-data-analysis)
Criminology reviewers are methodologically sophisticated and increasingly expect that your results
can be reproduced from deposited materials (see crim-data-and-transparency). Analyze as if both are
true. This skill covers execution and reporting norms; design decisions live in crim-research-design.
When to trigger
- Running main and supporting analyses; building the results section
- A reviewer asked for robustness, heterogeneity, or alternative specifications
- Fitting a trajectory model, fixed-effects panel, count model, or survival model
- Making the analysis reproducible before deposit
Analysis norms Criminology expects
- Report uncertainty honestly. Confidence/credible intervals, not just stars; the magnitude and
substantive meaning (e.g., incident-rate ratios, predicted counts, change in offending), not just
significance.
- Right model for crime data. Counts are over-dispersed and zero-heavy — prefer negative binomial /
zero-inflated / hurdle over OLS on raw counts; rates need exposure offsets; rare-event cautions apply.
- Within- vs. between-person. When the theory is developmental, isolate within-individual change
(fixed effects / hybrid models); do not interpret a between-person association as a life-course effect.
- Trajectory models with discipline. Report BIC across solutions, group shares, average posterior
probabilities (AvePP ≥ 0.7), and odds of correct classification; do not over-interpret the group count.
- Survival / recidivism. Handle right-censoring and competing risks; report the relevant hazard, not
just a binary "recidivated."
- Robustness that probes, not decorates. Show specs that could break the result (alternative crime
measures, samples, estimators, fixed effects) and say what you learn.
- Right inference. Cluster at the assignment/sampling level (often place or agency); randomization
inference for experiments; few-cluster corrections when clusters are sparse.
Crime-measurement specifics
- State whether the outcome is reported crime, victimization, or self-report, and how the dark figure,
reporting, and recording changes (e.g., UCR→NIBRS transition) could bias trends.
- Validate scales (self-report delinquency, legitimacy, collective efficacy); report reliability.
Reproducibility while you work (not at the end)
- One master script regenerates every table and figure from the (raw or constructed) data.
- Set and report seeds for bootstrap, randomization inference, EM-based trajectory fitting, simulation.
- Pin software/package versions (
renv.lock, requirements.txt, recorded ssc/net/traj installs).
- Keep table/figure numbers matched to script outputs; document restricted-data steps that others can't rerun.
Execution bridge (StatsPAI / Stata MCP)
Run the battery, don't just enumerate it. Full map:
execution-with-mcp. Criminology is observational — place/person panels where selection is pervasive; foreground DiD/IV/RDD and the selection objection.
- 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
- OLS on raw, over-dispersed crime counts; ignoring exposure/offsets
- Stars-only tables with no rate ratios, effect sizes, or intervals
- Treating trajectory groups as literal offender types; cherry-picking the group count
- Reading a between-person coefficient as within-individual desistance
- "Robustness" that only reruns near-identical specs; p-hacking a significant interaction
Estimator choice keyed to the crime outcome (Criminology decision table)
Criminology reviewers are quantitatively literate and will name a mismatch between model and the
data-generating process for offending. Use the outcome to pick the estimator, then defend the
assumption the reviewer will probe.
| Outcome shape |
Default estimator |
Reviewer will probe |
| Over-dispersed offense counts |
negative binomial w/ exposure offset |
dispersion test, offset justification |
| Excess-zero counts (most offend zero times) |
zero-inflated / hurdle |
what the inflation stage means theoretically |
| Repeated within-person offending |
fixed-effects / hybrid panel |
within vs. between separation |
| Time-to-recidivism, censored |
Cox / competing-risks |
proportional hazards, censoring mechanism |
| Developmental offending paths |
GBTM / growth mixture |
BIC, AvePP ≥ 0.7, group shares not reified |
Worked micro-example: reading a within-person estimate (illustrative)
Suppose a hybrid model returns an incident-rate ratio of 0.62 on the within-person "employed" indicator
(illustrative): entering employment maps to roughly a 38% lower offending rate for the same person,
95% CI [0.49, 0.78], net of stable traits. The between-person column, IRR 0.80, is weaker and reading
it as desistance would conflate selection (people prone to desist also find work) with the within-person
change the life-course claim requires. Report both; tell the reader which identifies the mechanism.
Analysis-stage referee pushback (with the Criminology fix)
- "Official-records bias is unaddressed." Fix: state whether the outcome is arrest, victimization, or self-report, and how the dark figure and UCR→NIBRS recording shifts could bias it.
- "Between-person read as within-person." Fix: report and interpret only the fixed-effects/hybrid within column for developmental claims.
- "Robustness only decorates." Fix: show a spec that could break the result; say what held.
Output format
【Main estimate】magnitude (IRR / predicted count / hazard) + interval + substantive meaning
【Crime measure】reported / victimization / self-report + dark-figure caveat
【Within vs between】isolated correctly? [Y/N/NA]
【Model fit】counts: dispersion handled? trajectory: BIC/AvePP reported? [Y/N/NA]
【Robustness】specs that could break it → what held
【Reproducible】master script + seeds + pinned versions? [Y/N]
【Next】crim-tables-figures
Supplementary resources
Source: brycewang-stanford/Awesome-Journal-Skills → Criminology-Skills/skills/crim-data-analysis/SKILL.md
1---2name: crim-data-analysis3description: Use when executing and reporting the analysis for a Criminology (ASC / Wiley) manuscript so it survives expert review — honest uncertainty, robustness, and methods appropriate to crime counts, longitudinal panels, trajectory models, and recidivism survival. Guides analysis norms; it does not fabricate results.4---567# Data Analysis (crim-data-analysis)89*Criminology* reviewers are methodologically sophisticated and increasingly expect that your results10can be reproduced from deposited materials (see `crim-data-and-transparency`). Analyze as if both are11true. This skill covers execution and reporting norms; design decisions live in `crim-research-design`.1213## When to trigger1415- Running main and supporting analyses; building the results section16- A reviewer asked for robustness, heterogeneity, or alternative specifications17- Fitting a trajectory model, fixed-effects panel, count model, or survival model18- Making the analysis reproducible before deposit1920## Analysis norms Criminology expects21221. **Report uncertainty honestly.** Confidence/credible intervals, not just stars; the **magnitude and23 substantive meaning** (e.g., incident-rate ratios, predicted counts, change in offending), not just24 significance.252. **Right model for crime data.** Counts are over-dispersed and zero-heavy — prefer negative binomial /26 zero-inflated / hurdle over OLS on raw counts; rates need exposure offsets; rare-event cautions apply.273. **Within- vs. between-person.** When the theory is developmental, isolate within-individual change28 (fixed effects / hybrid models); do not interpret a between-person association as a life-course effect.294. **Trajectory models with discipline.** Report BIC across solutions, group shares, average posterior30 probabilities (AvePP ≥ 0.7), and odds of correct classification; do not over-interpret the group count.315. **Survival / recidivism.** Handle right-censoring and competing risks; report the relevant hazard, not32 just a binary "recidivated."336. **Robustness that probes, not decorates.** Show specs that could *break* the result (alternative crime34 measures, samples, estimators, fixed effects) and say what you learn.357. **Right inference.** Cluster at the assignment/sampling level (often place or agency); randomization36 inference for experiments; few-cluster corrections when clusters are sparse.3738## Crime-measurement specifics39- State whether the outcome is reported crime, victimization, or self-report, and how the **dark figure**,40 reporting, and recording changes (e.g., UCR→NIBRS transition) could bias trends.41- Validate scales (self-report delinquency, legitimacy, collective efficacy); report reliability.4243## Reproducibility while you work (not at the end)44- One **master script** regenerates every table and figure from the (raw or constructed) data.45- **Set and report seeds** for bootstrap, randomization inference, EM-based trajectory fitting, simulation.46- Pin software/package versions (`renv.lock`, `requirements.txt`, recorded `ssc`/`net`/`traj` installs).47- Keep table/figure numbers matched to script outputs; document restricted-data steps that others can't rerun.4849## Execution bridge (StatsPAI / Stata MCP)5051Run the battery, don't just enumerate it. Full map:52[`execution-with-mcp`](../../../shared-resources/empirical-methods/execution-with-mcp.md). Criminology is observational — place/person panels where selection is pervasive; foreground DiD/IV/RDD and the selection objection.5354- **Many outcomes / specifications:** `romano_wolf` (step-down FWER) or55 `benjamini_hochberg` — report the adjusted threshold.56- **OVB sensitivity:** `oster_delta` / `sensemakr`.57- **Inference:** `wild_cluster_bootstrap` (few clusters), `twoway_cluster` / `conley`;58 multilevel data → cluster at the right level.59- **Re-fit off one handle:** `audit_result(result_id)` lists the missing checks and the60 exact `suggest_function` for each.61- **Exhibits:** `etable` / `did_summary_to_latex` from the handle — no retyped numbers.6263Keep the decisive checks in the body and the exhaustive battery in the supplement. See64the executed chain in the [JF execution walkthrough](../../../Journal-of-Finance-Skills/resources/worked-examples/02-execution-walkthrough.md).65## Anti-patterns6667- OLS on raw, over-dispersed crime counts; ignoring exposure/offsets68- Stars-only tables with no rate ratios, effect sizes, or intervals69- Treating trajectory groups as literal offender types; cherry-picking the group count70- Reading a between-person coefficient as within-individual desistance71- "Robustness" that only reruns near-identical specs; p-hacking a significant interaction7273## Estimator choice keyed to the crime outcome (Criminology decision table)7475*Criminology* reviewers are quantitatively literate and will name a mismatch between model and the76data-generating process for offending. Use the outcome to pick the estimator, then defend the77assumption the reviewer will probe.7879| Outcome shape | Default estimator | Reviewer will probe |80|---------------|-------------------|---------------------|81| Over-dispersed offense counts | negative binomial w/ exposure offset | dispersion test, offset justification |82| Excess-zero counts (most offend zero times) | zero-inflated / hurdle | what the inflation stage means theoretically |83| Repeated within-person offending | fixed-effects / hybrid panel | within vs. between separation |84| Time-to-recidivism, censored | Cox / competing-risks | proportional hazards, censoring mechanism |85| Developmental offending paths | GBTM / growth mixture | BIC, AvePP ≥ 0.7, group shares not reified |8687## Worked micro-example: reading a within-person estimate (illustrative)8889Suppose a hybrid model returns an incident-rate ratio of 0.62 on the within-person "employed" indicator90(illustrative): entering employment maps to roughly a 38% lower offending rate *for the same person*,9195% CI [0.49, 0.78], net of stable traits. The between-person column, IRR 0.80, is weaker and reading92it as desistance would conflate selection (people prone to desist also find work) with the within-person93change the life-course claim requires. Report both; tell the reader which identifies the mechanism.9495## Analysis-stage referee pushback (with the Criminology fix)9697- *"Official-records bias is unaddressed."* Fix: state whether the outcome is arrest, victimization, or self-report, and how the dark figure and UCR→NIBRS recording shifts could bias it.98- *"Between-person read as within-person."* Fix: report and interpret only the fixed-effects/hybrid within column for developmental claims.99- *"Robustness only decorates."* Fix: show a spec that could break the result; say what held.100101## Output format102103```104【Main estimate】magnitude (IRR / predicted count / hazard) + interval + substantive meaning105【Crime measure】reported / victimization / self-report + dark-figure caveat106【Within vs between】isolated correctly? [Y/N/NA]107【Model fit】counts: dispersion handled? trajectory: BIC/AvePP reported? [Y/N/NA]108【Robustness】specs that could break it → what held109【Reproducible】master script + seeds + pinned versions? [Y/N]110【Next】crim-tables-figures111```112113## Supplementary resources114115- [`../../resources/external_tools.md`](../../resources/external_tools.md) — count, trajectory, survival, and spatial packages116- [`../../resources/official-source-map.md`](../../resources/official-source-map.md) — transparency expectations and crime-data sources117118---119120**Source:** [`brycewang-stanford/Awesome-Journal-Skills`](https://github.com/brycewang-stanford/Awesome-Journal-Skills) → `Criminology-Skills/skills/crim-data-analysis/SKILL.md`