by Fedor Iskhakov, ANU
Description: What is computational economics. Course structure and house keeping. Choice of programming language.
# Install the RISE extension for Jupyter notebook to display slides
# Reload the page and press Alt-r to switch to presentation mode
!pip install RISE
!jupyter-nbextension install rise --py --sys-prefix
!jupyter nbextension enable rise --py --sys-prefix
This course will teach the basics of programming and computational skills for economic analysis and enable the students to take numerical approach to familiar mathematical problems.
Students will learn to graphically represent familiar ideas such as supply and demand curves, equilibrium prices and consumer choice. They will explore how these choices and equilibria change with shifts in policy instruments, preferences and technologies.
In the process they will learn to use common computational solution methods, such as root finding and optimization, function approximation, numerical integration, and working with random variables.
Students will also learn how to obtain, manipulate and represent data, using tools such as scatter plots and histograms.
Use of computer to analyze (solve + simulate) complicated economic models that do not allow for analytical solutions
Useful because the models are becoming more realistic and thus complicated
Фёдор Валентинович Исхаков
Professor of Economics, Research School of Economics, Australian National University
Research interests: applied econometrics, i.e. structural estimation of dynamic models
Email: fediskhakov@gmail.com (office hours: by appointment in Zoom)
More info: fedor.iskh.me
Course delivery: remotely, asynchronously, with bi-weekly synchronous Q&A sessions
Teaching materials will be published on Tuesday or Wednesdays
Every other week starting from week 3 on Thursdays we’ll have live Q&A sessions with no compulsory attendance
I’ll collect more information about your scheduling preferences, and we’ll work out the clashes.
$ \downarrow\quad $ Computer science
$ \uparrow\quad $ Economics
There will be additional materials referenced for each topic.
Small exercises to give you an opportunity to try implementation of the material from the lectures. Intended to be solved individually or in groups during the week. Should be discussed in Q&A sessions, and serve as building blocks in the larger assignments and applications.
25% of final grade
Midterm assignments are coding tasks of implementing simple economic models to be performed in groups of 2-3 people. The assignments will be graded for correct implementation of the economic model, but also for code style and proper use of version control tools. Several models will be offered for implementation, each accompanied with a set of tasks to perform.
Grade will be in part based on the video presentation of the model and the implementation to be prepared by each group (via zoom/other video conferencing).
27.5% of the final grade
Midterm project will require a (video) presentation of the completed assignment (details will follow)
20% of the final grade
Open book exam with time constraint (3 hours)
The final exam will contain several short answer questions (knowing the facts), several middle size questions (find a bug in the code) and several small individual coding tasks (write your code).
Why is it hard: there is no time to search for an answer.
27.5% of the final grade
We will use version control software Git and online community GitHub
exam/assignments
course, although will make the workflow a lot smoother
This week’s lab is about Git and GitHub
Source: StackOverflow.
What to choose?
Source: blog.revolutionanalytics.com.
Aruoba, S. Borağan & Fernández-Villaverde, Jesús, 2015. “A comparison of programming languages in macroeconomics,” Journal of Economic Dynamics and Control, Vol. 58(C), pages 265-273.
Jules Kouatchou, NASA. “Basic Comparison of Python, Julia, Matlab, IDL and Java (2018 Edition)”
Development and maintenance time $ + $ (run time $ \times $ number of runs) $ \longrightarrow $ MIN
Minimizing one component only is suboptimal! (premature optimization)