This is the home page of ECON-GA 3002, a PhD level course on computational economics to be held at NYU in the spring semester of 2016.
(Note: This document is preliminary and still under development)
Semi-Random quote
All this technology carries risk. There is no faster way for a trading firm to destroy itself than to deploy a piece of trading software that makes a bad decision over and over in a tight loop. Part of Jane Street's reaction to these technological risks was to put a very strong focus on building software that was easily understood--software that was readable.
-- Yaron Minsky, Jane Street
Table of Contents:
Please note that the lecture room has changed to room 5-75 in the Stern Building.
The time is unchanged: Friday 9am--11am
Please be sure to bring your laptop
- http://quant-econ.net/
- Secondary / Useful / Related / Recommended texts
- Kendall Atkinson and Weimin Han (2009). Theoretical Numerical Analysis (3rd ed)
- Ward Cheney (2001). Analysis for Applied Mathematics
- Nancy Stokey and Robert Lucas Jr. (1989) Recursive Methods in Economic Dynamics
- John Stachurski (2009). Economic Dynamics: Theory and Computation
I assume that you have
- At least a bit of programming experience
- E.g., some experience writing Matlab code or similar
- Econ PhD level quantitative skills, including some familiarity with
- Linear algebra
- Basic analysis (sequences, limits, continuity, etc.)
- Dynamics (diff equations, finite Markov chains, AR(1) processes, etc.)
If you would like to prepare for the course before hand please consider
- Installing Linux on a VM or in a bootable partition on your laptop
- Backup your data first!
- Help available in the first class
- Build up your Linux skills (and profit)
- Do some exercises in real analysis if you are rusty
- These notes look like about the right level
- Read the first 3 chapters of RMT if you don't know any Markov chain theory or dynamic programming
Below is a sketch of the syllabus for the course. The details are still subject to some change.
- Scientific programming environments --- what do we want?
- Speed?
- Productivity?
- Fun?
- Why Python? And what is it anyway?
- Background
- Philosophy
- The second best language for everything
- What's Julia?
- Open Source
- Examples of how contributions improve on the standard library
- Open science
- How can open source produce better software than firms acting alone?
- UNIX and the UNIX shell
- Editing = Vim
- Tmux
- Version control
- General software engineering skills
- Speed and Efficiency
- Hardware
- Interpreted / JIT compiled / AOT compiled
- Vectorized code
- C and Fortran
- Test driven development:
- Getting started
- The REPLs: Python and IPython shells
- Jupyter
- The beauty of introspection on the fly
- Basic syntax
- OOP. It's like structs with lazy evaluation
- Python style
- Other general Python resources
- Debugging
- General Resources
- NumPy and SciPy
- Jupyter
- Matplotlib
- Pandas
- Numba and other JIT compilers
- AOT compilers
- Cython
- Others (Nuitka?)
- Visualization
- Plotly, Bokeh
- Statistics and machine learning
- Parallel processing
- Blaze
- Wrappers
- https://github.com/wjakob/pybind11
- f2py and related solutions (https://www.euroscipy.org/2015/schedule/presentation/58/)
- NetworkX
- Sympy
- Webscraping
- General
- Libraries
- Asymptotics
- The Dobrushin coefficient
- A simple coupling argument
- Code from QuantEcon
- Applications
- A dash of measure and integration
- Metric / Banach / Hilbert space
- Space of bounded functions (cbS is a closed subset)
- The Lp spaces
- Banach contraction mapping theorem
- Blackwell's sufficient condition
- Orthogonal projections
- Neumann series lemma
- Applications
- The Lucas 78 asset pricing paper
- General state spaces
- Feller chains, Boundedness in prob
- Monotone methods
- LLN and CLT
- Look ahead method
- examples in lae_extension?
- examples in poverty traps survey?
- Applications
- ARCH, AZ, STAR, MCMC, etc.
- L2 methods
- Asset Pricing
- Fundamental theory
- The principle of optimality
- VFI
- Howard's policy iteration algorithm
- Approximation
- Preserving the contraction property
- MC for integrals
- Weighted sup norm approach
- The Coleman operator
- The income fluctuation problem
- Benhabib wealth distribution paper, heavy tails
- Recursive and risk sensitive preferences
- Other (see TE paper, monotone LLN)
- Reservation rule operator
- Theory
- Applications
- Theory
- Implementation
See lecture 1 slides.
A completed class project is a GitHub repository containing
- Code
- A Jupyter notebook that pulls all the code together and runs it
- A PDF document that provides analysis and reports results
- like a short research paper
Good projects demonstrate proficiency with
- good programming style
- techical material discussed in the coure
-
Jupyter
-
Data, machine learning and prediction
-
Language comparisons
-
Python, general
- https://www.reddit.com/r/Python/comments/3s4j6n/zen_of_python_verse_2/
- https://github.com/s16h/py-must-watch
- https://www.reddit.com/r/Python/comments/3m3ll9/where_python_is_used_in_industry_other_than_webdev/
- http://bruceeckel.github.io/2015/08/29/what-i-do/
- http://blog.apcelent.com/python-decorator-tutorial-with-example.html
- http://noeticforce.com/best-free-tutorials-to-learn-python-pdfs-ebooks-online-interactive
Vectorization: * http://blog.datascience.com/straightening-loops-how-to-vectorize-data-aggregation-with-pandas-and-numpy/
Good reads * http://undsci.berkeley.edu/article/cold_fusion_01 * https://msdn.microsoft.com/en-us/library/dn568100.aspx