Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Graduate course at Stony Brook University, Fall 2026

How to solve dynamic structural models numerically, and how to estimate them from data. Single-agent discrete and continuous choice, micro-founded equilibrium models, and dynamic games β€” each with the estimation toolkit that goes with it: NFXP, MPEC, CCP, NPL and EPL.

Course entry in the SBU catalog

πŸ§‘β€πŸ« InstructorΒΆ

  • Fedor Iskhakov

  • Professor of Economics, Department of Economics

  • Email: fediskhakov@gmail.com

  • Web: Personal page

  • PhD from University of Oslo, 2009

I’m an applied microeconometrician and a computational economist working in the field of structural estimation of dynamic models of individual and strategic choice, with applications to labor economics, public economics, durable goods markets, household finance, industrial organization and dynamic games.

How many days have I spent on Long Island before coming to this lecture?

πŸ‘₯ Class introductionsΒΆ

  • What is your background?

  • What are your research interests?

  • What is your coding experience? Which languages?

  • What is your prior experience with dynamic programming and Bellman equations?

  • What is your experience in empirical applications and data analysis?

πŸ“† Course outlineΒΆ

Five parts over 15 weeks, including two of project presentations. Each class may combine theory with live code. From September 29 on, Tuesdays are practical sessions and Thursdays are theory. Homework is given on Thursday, and one of you presents a solution at the start of the following Tuesday, on a rotating basis.

The plan below is provisional and will be adjusted as we go.

DateTopic
Part I β€” Foundations and computational toolkit
Tue Aug 25Introduction to structural estimation β€” what a structural project consists of
Thu Aug 27Work environment and submission workflow Practical tasks on version control
Tue Sep 1Algorithms and complexity
Thu Sep 3Programming practice: Towers of Hanoi
Tue Sep 8Root finding and optimization β€” bisection and Newton–Raphson
Thu Sep 10Programming practice: static discrete choice
Part II β€” Single-agent dynamic programming
Tue Sep 15Bellman equations and backwards induction in finite horizon
Thu Sep 17Contraction mappings, infinite horizon, value function iterations
Tue Sep 22The Rust bus engine replacement model and Newton-Kantorovich
Thu Sep 24Nested fixed point estimation (NFXP)
Tue Sep 29Practical session on NFXP estimation
Thu Oct 1Conditional choice probabilities, identification and two-step estimator
Tue Oct 6Estimation of Zurcher model with two step CCP estimator @ 11:00 instead of 9:30
Thu Oct 8Nested pseudo-likelihood (NPL)
Tue Oct 13Fall break β€” no class
Part III β€” Continuous choice and simulation-based estimation
Thu Oct 15Cake eating on a grid, function approximation and the consumption-savings model
Tue Oct 20Practice: one model, three solvers β€” accuracy and speed compared
Thu Oct 22The endogenous gridpoint method
Tue Oct 27DC-EGM for discrete-continuous choice
Thu Oct 29Method of simulated moments
Tue Nov 3Simulation-based estimation of a consumption-savings-retirement model
Part IV β€” Equilibrium models
Thu Nov 5Micro-founded equilibrium models β€” equilibrium trade in used cars Β Β·Β  project proposal due
Tue Nov 10Implementation of the doubly NFXP estimation Β Β·Β  project clinic
Part V β€” Games
Thu Nov 12Static games of incomplete information and multiplicity of equilibria
Tue Nov 17Mathematical programming with equilibrium constraints (MPEC)
Thu Nov 19Directional dynamic games β€” finding all equilibria
Tue Nov 24Estimation of directional dynamic games
Thu Nov 26Thanksgiving β€” no class
Tue Dec 1Project presentations I
Thu Dec 3Project presentations II; course wrap-up

We have a quite unique opportunity for course co-creation.

  • Which topics would you add to the list?

  • Which topics would you remove from the list?

🏑 When and where¢

Time

Tuesday and Thursday, 09:30 – 10:50

Room

SOCBEHAV SCI N601

Office hours

Tuesdays after the lecture, any time by appointment

In other courses, what happens when you miss a lecture?

πŸŽ“ AssessmentΒΆ

WeightComponent
70%Individual project, presentation and oral exam
30%Homework and in-class participation

ProjectΒΆ

An individual structural estimation project, carried out in the second half of the semester, with a written report and code submitted, and presented in class in the last week. Ideally it includes all the steps of a structural estimation project:

The model may be one of your own interest, or an extension/modification of one of the models covered in class β€” the bus engine replacement model, the inventory management model, the consumption-savings model, or one of the entry games.

Project proposal is due Thursday, November 5, and should give a brief (max 2 pages) description of the project you intend to carry out together with a roadmap of the steps you intend to take. All proposals are discussed in the project clinic on Tuesday, November 10.

Presentations take place on December 1 and 3, approximately 30 minutes each, with room for a live demo of the solver and estimator code, not just slides.

Oral exam β€” paper and documented code should be submitted before the exam week β€” and will be a conversation starter in the oral exam during the exam period.

HomeworkΒΆ

Homework is typically given on Tuesday and is due the following Thursday.

Homework is submitted as a pull request in your own private course repository, which I create for you and have access to; the workflow is set up in the first week, see Homework submission workflow.

πŸ’» SoftwareΒΆ

The course is intended in Python, yet you can discover equivalent code online in Matlab, Julia and other languages. Particular language is less important these days because we will be working with small examples.

By next time sets up the work environment, see πŸ’» Work environment and submission workflow.

Computers are expected in the lectures, you are encouraged to run the code examples in the lecture, and interact with the code and the slides in class.

The lecture notes are published at dse.iskh.me and can be downloaded as a single PDF: eco629-dynamic-structural-models.pdf. Each chapter also carries a download menu with its MyST Markdown source.

Tasks and exercise code are posted in the private repository fediskhakov/sb-dse-class, and you work in a private repository of your own, fediskhakov/sb-dse-<your-username>. Send me your GitHub username (register now if not yet) and I will set both up for you β€” see Homework submission workflow.

πŸ€– AI policyΒΆ

The course is designed to be AI-friendly and to encourage the use of AI tools in the learning process.

You are welcome to use AI tools, but you bear all responsibility for the produced work.

In particular, it implies that you have to understand deeply every line of code or prose that you let AI produce on your behalf.

You have to verify the correctness of the code, and your understanding of the AI content and ability to modify it on the fly will be tested in the exam.

In addition, you have to disclose the use of AI assistants beyond text editing: see the disclosure policy.

See AI adoption stages by Boris Cherny, the man behind Anthropic’s Claude Code.

Where level are you in using AI today?