OpenSourceEconomics is a platform for discussion between students and academic researchers on issues regarding scientific programming. To this end, we arrange bi-monthly events, referred to as OSE Meetups. These meetings provide participants an opportunity to present on and inform themselves about different software solutions, as well as to receive feedback on their current research projects.
For any questions, please do not hesitate to contact us via Zulip by clicking the join chat button:
Slides that are not found in the folder
material are available upon request
February 23rd, 2022
Christian Zimpelmann - GETTSIM: Writing code for policy advice and high-performance research applications
Christian presents the GETTSIM package which provides a depiction of the German Taxes and Transfers System. He focuses on problems that arose during the development and how they were fixed using state-of-the-art methods from software engineering.
Tim Mensinger - Creating Python packages during your first year, and all the things that can go wrong
Tim talks about the development process of a small Python package used to randomly assign people into groups. The talk focuses on everything that went wrong and his interaction with the user base.
November 18th, 2021
Janos Gabler - Whats new in estimagic
Janos is going to talk about new and vastly improved features of estimagic. Particular topics are benchmarking optimizers, running multistart optimizations, and calculating standard errors and sensitivity measures for statistical models.
Manuel Huth - SIRD models for an efficient vaccine allocation across countries
Manuel addresses the question of how countries can efficiently allocate vaccines in times of a pandemic. He does this by developing SIRD models and applying them in an optimal control framework. The talk focuses on the computational implementation and also gives a brief introduction to the Python libraries amici and libsbml, which are used to solve ODEs and for handling the SBML model.
December 2020 - October 2021
November 10th, 2020
Approximate Bayesian Computation can be used for statistical inference when it is no longer feasible to evaluate a likelihood -- frequently the case for complex, stochastic models. While widely applicable, it is computationally quite expensive. The python-based tool pyABC provides an efficient, scalable implementation, which is in use in a variety of research areas.
Janos Gabler - Derivative-free optimization in Python
Janos gives a short general introduction into the problem of local and global optimization of functions of which the derivative is not trivial to evaluate. He then presents different methods of how to tackle this problem.
July 20th, 2020
Pablo Winant - Solving infinite horizon models with dolo and dolang
Pablo presents two python/julia based packages:
dolo is a tool to describe and solve economic models. It provides a simple classification scheme to describe models as simple text files and compiles these files into efficient Python objects representing them. It also provides many reference solution algorithms to find the solution of these models under rational expectations: local perturbations up to third order, perfect foresight solution, policy iteration, value iteration. dolang is the modeling language used by
dolo, providing a simple interface similar to
dynare to express models.
Tim Mensinger - An intruduction to the i3 linux desktop environment
i3 is a tiling window manager which targets users of GNU/Linux and BSD operating systems. i3 is primarily targeted at advanced users and developers which allows an efficient, mouse-free work flow. Tim presents the advantages and disadvantages of the desktop environment.
Mai 18th, 2020
Gregor's work focusses on the computational challenges related to the structural-empirical analisis using nonlinear DSGE models featuring occasionally binding constraints. He gives a very brief overview on the solution technique, nonlinear Bayesian filtering, and Bayesian estimation. He also scratches on complicated or chaotic nonlinear dynamics. He then gives a short introduction into his packages
Annica gives a brief overview of
respy and its method of simulated moments interface which has recently been added to extend
respy's estimation capabilities. As the estimation of structural econometric models is usually a challenging endeavor that requires several calibration choices, the talk also included the presentation of a brief estimation exercise that can be used to assess one's estimation setup.
The talk gives a summary on the activities related to the CoVid-19 Impact Lab in the last two months. First results are presented. Hans-Martin discusses the difficulties related to managing large project were groups of people are involved that have a different computational background. He concludes that dis-respecting programming standards for short-term speed gains never pays off in the longer run.
February 17th, 2020
We incorporate techniques from distributionally robust optimization into a dynamic investment model. This allows us to explicitly account for ambiguity in the decision making process. We revisit the seminal bus replacement problem (Rust, 1987) under potential model misspecification. We specify ambiguity sets for the transition dynamics of the model and analyze alternative policies in a series of computational experiments. We find that, given the structure of the model and the available data on past transitions, a policy simply ignoring model misspecification often outperforms its alternatives that are designed to explicitly account for it.
GETTSIM provides a depiction of the German Taxes and Transfers System that will be usable in a wide array of research applications, ranging from highly complex dynamic programming models to extremely detailed microsimulation studies. GETTSIM is implemented in Python, thereby achieving both user friendliness and flexibility.
The second part of the talk was on the new course in Financial and Social Policy. It is offered to Bachelor's students at Bonn University. The course supports students in deepening their understanding of various German policy issues. Students will learn to analyze policy implications in a quantitative manner through various case studies and work with GETTSIM for their analyses.
Most introductions to debugging teach unrealistic workflows with the aim of avoiding debugging altogether and then present some debugging tricks under the assumption that you followed the workflow religiously. Janos stared by outlining a pragmatic workflow aimed at reducing bugs without unrealistic assumptions on developer's discipline. He then introduced pdb++ and a set of debugging strategies that work even if developers did not follow the proposed workflow.
January 20th, 2020
No presentations: Start of the year meeting at Cafe Blau
November 18th, 2019
"The python debugger (pdb)" is the debugger provided by the basic standard python distribution. The presentation contains a short introduction as well as the intructions how to use it together with pytest.
The presentation is about the theory and implementation of Causal Trees. Causal Trees were first presented in Recursive partitioning for heterogeneous causal effects (Athey and Imbens (2016)) and can be considered as an extension of Decision Trees to the conditional treatment-effect estimation setting. During the presentation Tim gives a detailed overlook of the algorithm and mathematical properties of the estimator. At the end Tim presents his naive implementation and performance issues. Further we briefly talk about potential extensions of Causal Trees to Causal Forests; see Athey and Wager (2017).
Tobias gives a brief introduction to the general framework and methods of Uncertainty Quantification. It proceeds by conduncting an uncertainty propagation and the computation of first and total order Sobol' Indices for the Ishigami Equation. The Ishigami Equation is used instead of a actual model, because it provides analytic solutation and a short run time. The presentation ends with a short note on polynomial chaos expansions and their python implementation in the chaospy package.
October 14th, 2019
Sebastian guides us through the world of Local Instrumental Variables (LIV) to estimate Marginal Treatment Effects (MTE) in the context of the generalized Roy model. In particular, he presents grmpy_semipar, his extension of the grmpy package. The LIV approach is often referred to as semiparametric, as it combines parametric modeling with nonparametric estimation techniques. Therefore, he first introduces us to his Python package KernReg and the function locpoly, which he uses to estimate the nonparametric component of the semiparametric MTE. Then, he outlines the individual steps in estimating MTE with LIV, highlighting the difference assumptions made by the parametric vs. the semiparametric approach. In contrast to the parametric model, the semiparametric specification does not rely on the restrictive assumption of normally distributed error terms. Finally, he uses a toy model of the decision to enroll in college and the associated wage differentials to estimate the MTE under both methods. When the error terms of the unobservables are normally distributed, both specifications come very close to the original curve. In fact, the parametric model gets a perfect fit. However, when the error terms are non-normally distributed, the parametric model underestimates the returns to college, whereas the semiparametric MTE still fits the original curve pretty well.
Alexandros is investigating the application of advanced numerical quadrature methods to high-dimensional integrals which arise in econometrics. The main focus lies in determining classes of econometric models which require the numerical computation of an integral and linking the corresponding integrands to a function space in the mathematical sense. Knowing in which function space the integrands lie allows us to apply specific quadrature rules that easily outrun the common Monte Carlo- and Quasi Monte Carlo techniques and can achieve an exponential convergence rate. Hence, the computational effort to evaluate this integrals and the complete model could be reduced dramatically allowing for an easier estimation of econometric models.
Radost and Paul gave an introduction to geospatial data and ArcGis and discussed how to address ArcGis from Python, how to georeference maps and how to use machine-learning tools in ArcGis. Further they demonstrated how to use these techniques to transform a historical map into data.
September 12th, 2019
Fedor Iskhakov - JOSEcon
Fedor introduced us to the emerging Journal of Open Source Economics which will publish short papers on reusable code and allow computational economists to collect citations for their coding work.
Tobias and Janos presented on the new developments of the estimagic package and its integration in respy. In the first half of the talk, Janos used the well-known multinomial probit model to show how estimagic can be used to implement user friendly estimation commands. In the second half, Tobias introduced the general structure of discrete choice dynamic programming models and showed how estimagic can also be used for more complex models.
Boryana presented on the new developments of the soepy package with focus on the integration of DC-EGM.
August 20th, 2019
Hans-Martin shared tips about the remote work flow with ssh.
Jan talked about some projects his start-up is working on.
July 24th, 2019
Jan gave us a introduction to webscraping with Beautiful Soup.
Christopher D. Carroll - econ-ARK
Chris presented on econ-ARK, an open-source toolkits for researchers trying to understand how economic and social outcomes result from the actions of heterogeneous individuals (via Skype).
June 19th, 2019
Klara presented on Bokeh, a python library for the construction of interactive plots, dashboards and data applications.
Felix provided an overview on his current research projects.
May 14th, 2019
Tobias Raabe - Advanced Features of numba
Tobias presented on advanced features of numba, namely the vectorize and the guvectorize decorator that can help to write very fast and flexible code.
Janos talked about the very first draft and some future plans for the estimagic package.
April 16th, 2019
Holger provided an overview of TeXTemplates, a compilation of sophisticated LaTeX templates for academic purposes.
Philipp presented his newly designed model class that will be used in the major OpenSourceEconomics packages.
Benedikt talked about different options for implementing an appropriate testing framework in python based projects. Particularly his presentation focused on the pytest, the engard as well as the hypothesis package.
March 20th, 2019
Holger Gerhardt - BibLaTeX
Holger talked about the application of BibLaTeX as an adequate solution for implementing references in academic writing projects.
Janos outlined the advantages and disadvantages of using classes in your python based projects.
February 20th, 2019
Felix hold a presentation on dask a package that provides solutions for handling extremely large datasets in Python based projects.
Christian talked about his experiences with the mystic package for difficult optimization problems.
Tobias Raabe - Open Source Economics Git Workflow
Tobias briefly showed the new Git workflow that we adopted in the OpenSourceEconomics projects. A detailed overview of the workflow will be part of the upcoming OSE code quaility guide.
January 30th, 2019
Sebastian presented a structural model of disability insurance and the Fortran code he used to solve and estimate the model.
Philipp Eisenhauer - f2py
December 19th, 2018
Max gave an overview on the Rust Model as well as ruspy, an open source python package he used to replicate results from Rust, J. (1987). Optimal Replacement of GMC Bus Engines: An empirical model of Harold Zurcher. Econometrica, Vol. 55, No.5, 999-1033.
Christian held a presentation on the current state of his research project on beliefs under ambiguity.
Benedikt Kauf - Review Code Quality Tools
Benedikt presented on several code quality tools which are currently used in several OSE projects. A detailed overview will be part of the upcoming OSE code quality guide.