skills/11-James-Traina-compound-science/skills/identification-proofs/SKILL.md
This skill covers formal identification arguments and proofs in structural and reduced-form econometrics. Use when the user needs to prove or formalize that a parameter is identified — including writing identification propositions, stating regularity conditions, deriving rank conditions, or showing observational equivalence fails. Triggers on "identification proof", "identification argument", "identify the parameter", "show identification", "identification condition", "exclusion restriction proof", "rank condition", "order condition", "identification strategy formal", "nonparametric identification", "parametric identification", "local identification", "global identification", "observational equivalence", "identification at infinity", "completeness condition", "regularity conditions", "Rothenberg", "proof of identification", "identification result", "identified parameter", "point identified", "set identified", "partial identification".
npx skillsauth add brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research identification-proofsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Reference for writing formal and informal identification arguments: from stating the target parameter precisely, through deriving the identification result, to connecting it to a feasible estimator.
Detail files (load on demand):
references/derivation-tools.md — IFT approach, completeness, worked proofs for LATE/RDD/DiD/BLPreferences/proof-template.md — LaTeX and plain-language templates for identification propositionsreferences/regularity-and-partial-id.md — Regularity conditions checklist and partial identification methodsUse when the user is:
Skip when:
causal-inference skill)structural-modeling skill)Core definition. A parameter $\theta_0$ is identified if the map from the true parameter value to the distribution of observables is injective: $P_{\theta_1} = P_{\theta_2} \implies \theta_1 = \theta_2$.
Key distinctions:
Why identification precedes estimation. A parameter can only be consistently estimated if it is identified. Code runs and produces output even when parameters are unidentified — checking identification before estimation prevents hard-to-diagnose failures.
Every formal identification argument follows this architecture. Work through all seven steps before claiming identification.
State precisely what $\theta$ you want to identify — not "the causal effect" but the exact functional or structural parameter (e.g., coefficient $\beta$ under endogeneity, the ASF $g(x) = E[Y(x)]$, taste parameters in BLP). Common mistake: conflating the target with the estimand (LATE is not ATE; ATT from DiD is not ATE).
State observables $(Y, X, Z)$, latent variables ($\varepsilon$, unobserved heterogeneity), structural equations, error restrictions (independence, mean independence), functional form (parametric vs nonparametric), and equilibrium concept if applicable.
State what observable variation provides identification leverage: instrument variation (IV), policy changes across groups (DiD), proximity to a cutoff (RDD), cost shifters entering supply but not demand (structural). The source must be distinct from functional form assumptions.
Enumerate identifying assumptions explicitly (label A1, A2, ...). Common categories: exclusion restrictions, rank/order conditions, support conditions, independence, monotonicity (LATE), continuity (RDD), parallel trends (DiD). Each must be statable in population terms and either testable or defended substantively.
Derive identification via one of three strategies:
references/derivation-tools.mdState conditions under which the result holds: support, rank, order, compactness, continuity, integrability, unique zero, monotonicity, no anticipation, overlap. Full checklist in references/regularity-and-partial-id.md.
Connect identification to a feasible estimator: explicit formula yields plug-in estimator $\hat\theta = h(P_n)$; moment conditions yield GMM; likelihood yields MLE. State the consistency result.
| Method | Key Assumption | Formal Statement | Common Failure | Test | |--------|---------------|-----------------|----------------|------| | IV/2SLS | Exclusion | $Z \perp \varepsilon$ | Direct effect of $Z$ on $Y$ | Overid test; substantive argument | | LATE | Exclusion + monotonicity | $D(1) \geq D(0)$ a.s.; $Z \perp (Y(0),Y(1),D(0),D(1))$ | Defiers; exclusion violated | Monotonicity untestable; falsification | | DiD | Parallel trends | $E[Y(0){t=1}-Y(0){t=0}|D=1] = E[Y_{t=1}-Y_{t=0}|D=0]$ | Differential anticipation/trends | Pre-trends event study; Rambachan-Roth | | Sharp RDD | Continuity at cutoff | $E[Y(0)|X=x]$ continuous at $c$ | Manipulation | McCrary/rddensity; covariate smoothness | | Fuzzy RDD | Continuity + first stage | Cutoff shifts $D$ discontinuously | Compound discontinuity | Placebo outcomes; covariate balance | | Structural (BLP) | Rank on instruments | $\mathrm{rank}(E[Z'X]) = K$ | Weak instruments | First-stage F; Cragg-Donald | | Structural (dynamic) | Exclusion in Bellman | State captures payoff-relevant history | Omitted state variable | Residual correlation test | | Nonparametric IV | Completeness | $E[\phi(X)|Z]=0 \implies \phi=0$ a.s. | Discrete instrument | Support conditions (not directly testable) |
Full derivations for each method: references/derivation-tools.md
Formal proof required when:
Informal argument sufficient when:
For formal proofs, use the LaTeX and prose templates in references/proof-template.md. Minimal skeleton:
\begin{assumption}[Model restrictions]\label{ass:model}
(i) Structural equation; (ii) Exogeneity; (iii) Relevance/rank;
(iv) Support; (v) Compactness; (vi) Continuity.
\end{assumption}
\begin{proposition}[Identification of $\theta_0$]\label{prop:id}
Under Assumption~\ref{ass:model}, $\theta_0$ is the unique element of
$\Theta$ satisfying $\mathbb{E}[m(X_i;\theta_0)] = 0$.
\end{proposition}
\begin{proof}
Step 1: Observational implications (model $\to$ moments).
Step 2: Rank condition $\implies$ local injectivity (IFT).
Step 3: Global uniqueness argument. \hfill$\square$
\end{proof}
If identification fails, characterize the identified set $\Theta^*$. Key approaches:
Full treatment: references/regularity-and-partial-id.md. For empirical sensitivity exercises, see sensitivity-analysis.md in the empirical-playbook skill.
identification-critic agent — Reviews a completed identification argument (assumption completeness, rank conditions, support)mathematical-prover agent — Verifies proof steps: fixed-point arguments, rank conditions, uniquenessidentification-critic agent — Interactive review of a completed identification argumentcausal-inference skill — Method-specific implementation after identification is establishedstructural-modeling skill — BLP and dynamic DC implementation detailsempirical-playbook skill → sensitivity-analysis.md — Oster bounds, specification curves, breakdown frontierstools
Show mcp-stata identity, connected tools, and status. Use when the user asks if mcp-stata is available, asks about access to the toolkit, or asks what Stata tools are connected.
tools
Activate when users mention Stata commands, .do files, regressions, econometrics, stored results, graphs, dataset inspection, replication, or Stata errors. Route the task through mcp-stata tools and the specialized research skills instead of treating it as plain text coding.
development
Build and review paper-ready regression, balance, and summary tables from Stata outputs. Use when the user needs a clean table for a draft, appendix, or coauthor share-out.
tools
Install, configure, update, or verify mcp-stata across Claude Code, Codex, Gemini CLI, Cursor, Windsurf, and VS Code. Activate when users ask to set up the Stata toolkit or troubleshoot the installation.