Repository navigation
[gallant_tauchen] Add a lecture on Gallant and Tauchen's efficient method of moments - #1087
Conversation
…thod of moments The lecture explains how to choose moments when a structural model can be simulated but its likelihood cannot be written down. It distinguishes the structural parameter vector from the auxiliary parameter vector, derives the score moment conditions as the negative gradient of a Kullback-Leibler divergence, and states Gallant and Tauchen's efficiency results. Two examples estimate an AR(1) inside an AR(2), where the estimator matches maximum likelihood, and a stochastic volatility model with a GARCH score generator. The examples compute standard errors, J tests, and quasi-t-ratios. Four exercises cover the KL reading, a Monte Carlo check of Theorem 2, identification failure, and the weighting matrix when scores are serially correlated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🔵 Needs a closer look
It adds a large, mathematically dense new lecture whose printed numeric results and figures can only be fully validated by executing the notebooks in a full build, which is outside automated review.
1 open finding
What changed in this PR
This PR adds a new QuantEcon lecture, gallant_tauchen.md ("Which Moments to Match?"), explaining Gallant and Tauchen's efficient method of moments (EMM) for estimating structural models that can be simulated but whose likelihood cannot be written down. It develops the score-based moment conditions, their Kullback-Leibler interpretation, and the efficiency results, then illustrates them with an AR(1)-in-AR(2) example (checked against maximum likelihood) and a stochastic volatility example with a GARCH score generator, plus four exercises. The lecture fits into the probability/likelihood group of the book (alongside divergence_measures, likelihood_ratio_process, mle, and hansen_singleton_1982), which it cross-references.
Changes:
- New lecture
gallant_tauchen.mdwith theory, two worked examples, and four exercises with solutions. - Registered the lecture in
_toc.ymlunder the likelihood/probability part. - Added 17 new BibTeX entries to
quant-econ.bibto support the lecture's citations.
| File | Description |
|---|---|
| lectures/gallant_tauchen.md | New lecture; the substantive content of the PR, including derivations, simulation code, and exercises. |
| lectures/_toc.yml | Adds gallant_tauchen to the table of contents so the lecture is included in the build. |
| lectures/_static/quant-econ.bib | Adds the references cited by the new lecture; all keys are unique and Hansen1982 already existed. |
Notes from verification: all {cite} keys resolve to bib entries, all {doc} targets exist, all internal {ref}/{eq}/footnote labels are defined with no cross-file collisions, and the numeric claims I could check analytically (kurtosis formulas ≈4.7 and ≈15.5, simulation factors 1.05/1.04, Parzen weights 0.72/0.25/0.03, AR(2) and GARCH score formulas) are consistent. The one issue found is a minor, negligible-impact inconsistency in the stochastic-volatility simulator's initialization.
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
📖 Netlify Preview Ready!Preview URL: https://pr-1087--sunny-cactus-210e3e.netlify.app Commit: 📚 Changed LecturesBuild Info
|
… style conventions
Seed the stochastic volatility simulator's first observation from the
stationary draw and start the loop at t = 1, matching simulate_ar1. The
old loop consumed η[0] twice, which gave the first observation a
log-volatility variance 1.6 times the stationary value at a = 0.95.
Exercise 4 averages GARCH scores over 300 short simulated samples, so its
simulated estimate of the score variance was inflated. The revised prose
reports the corrected ratios: two to four times the outer product, Theorem 1
standard errors understated by about a third, and Parzen closing less than
half of the gap. The main examples move only in the third decimal place.
Use {cite:t} where authors are the subject of the sentence and ^\top for
transposes, following the QuantEcon style rules and sibling lectures.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Review notes on the first commit, now addressed in 7cf294b. Content and numbers. The math checks out (AR(2) score, KL-gradient identity, kurtosis values 4.7 and 15.5, Parzen weights, the identity behind Theorem 2, the quasi-t variance). Every printed number in the preview matched its prose claim, all 17 new bib entries have correct details with no key collisions, and all cross-references resolve. The lecture runs in about 15 seconds. Changes in 7cf294b.
Left as is, for Tom's judgment. The four figures set |
Bibliography: rewrite the 17 new entries to the manual's bibliography rules.
Titles in title case with {Markov} braced, a doi on every entry (the
published version, not the SSRN or NBER working paper), accented characters
typed directly, and no fields a reader never sees.
Figures: caption and name the two main-text figures through mystnb metadata,
drop the explicit figsize settings, and use lw=2 on the criterion curves. The
return series keeps lw=0.6 because at lw=2 two thousand points render as a
solid band. The Exercise 2 scatter stays uncaptioned for the PDF build.
Notation: N(0, 1) for the normal distribution, \mathbb{E} and \mathbb{V} for
expectation and variance, and IID in place of i.i.d.
No printed number changes.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
thanks @thomassargent30 merging this now. |
✅ Translation sync completed (zh-cn)Target repo: QuantEcon/lecture-python.zh-cn
|

Author: @thomassargent30 wrote this lecture and is its primary author. @mmcky opened the PR and is handling the review process.
The lecture explains how to choose moments when a structural model can be simulated but its likelihood cannot be written down. It distinguishes the structural parameter vector from the auxiliary parameter vector, derives the score moment conditions as the negative gradient of a Kullback-Leibler divergence, and states Gallant and Tauchen's efficiency results.
Two examples estimate an AR(1) inside an AR(2), where the estimator matches maximum likelihood, and a stochastic volatility model with a GARCH score generator. The examples compute standard errors, J tests, and quasi-t-ratios. Four exercises cover the KL reading, a Monte Carlo check of Theorem 2, identification failure, and the weighting matrix when scores are serially correlated.