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
Tim Mensinger - Terminal Aesthetics: How Beautiful Prompts Can Boost Your Productivity
Tim explains how customizing the terminal can benefit programmers by increasing development speed and displaying relevant information. He shares his own setup and provides a few examples.
Hans-Martin von Gaudecker - Markdown slides / papers / course materials: How I learned to stop worrying about formatting and focused on the text
Hans-Martin talks about markdown based alternatives to Latex for slides and research papers. He focuses on slidev for presentations and executablebooks for documents.
Christian Zimpelmann - Gender Norms and Couples' Labor Supply
Christians presents a structural discrete choice dynamic programming model to understand the impact of gender norms on couples' labor supply decisions when they have their first child.
OSE meets industry
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.
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.
Corona Break
Yannik Schaelte - Likelihood-free Bayesian inference and pyABC
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.
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 introduction 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.
Gregor Boehl - An overview of my work and packages
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 pydsge
, econsieve
and macro_puzzles
.
Annica Gehlen - Method of Simulated Moments Estimation with respy
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.
Hans-Martin von Gaudecker - An Update on the CoVid-19 Impact Lab
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.
Max Blesch - Robust investments under risk and ambiguity: Harold Zurcher's robust replacement policy
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.
Max Blesch & Jakob Wegmann - Short Introduction to GETTSIM and a new Course about Financial Policy.
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.
Janos Gabler - Real World Debugging Strategies
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.
No presentations: Start of the year meeting at Cafe Blau
Max Blesch - Debugging with pdb
"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 Stenzel - Uncertainty Quantification in economics
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.
Sebastian Gsell - A Local Instrumental Variables (LIV) approach to estimating the generalized Roy model
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 Gilch - Applications of numerical integration
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 Holler & Paul Schäfer - Working with and Digitizing Geospatial Data
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.
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 Raabe & Janos Gabler - respy and estimagic
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 Ilieva - Implementing DC-EGM in a structural life-cycle model.
Boryana presented on the new developments of the soepy package with focus on the integration of DC-EGM.
Hans-Martin von Gaudecker - ssh tips & tricks
Hans-Martin shared tips about the remote work flow with ssh.
Jan Bergerhoff - An overview of current CASE projects
Jan talked about some projects his start-up is working on.
Jan Knuf - Introduction to Webscraping
Jan gave us a introduction to webscraping with Beautiful Soup.
Tobias Raabe & Janos Gabler - respy 2.0/Application of estimagic
Tobias and Janos reported on newest development process of the respy package with a focus on the application of the estimagic package.
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).
Klara presented on Bokeh, a python library for the construction of interactive plots, dashboards and data applications.
Janos Gabler - Insights from PASC/The estimagic Package Part II
Janos reported on his insights from PASC19 as well as on the new developments of the estimagic package.
Felix Mauersberger - What he has been working on.
Felix provided an overview on his current research projects.
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 Gabler - The estimagic Package Part I
Janos talked about the very first draft and some future plans for the estimagic package.
Holger Gerhardt - TeXTemplates
Holger provided an overview of TeXTemplates, a compilation of sophisticated LaTeX templates for academic purposes.
Philipp Eisenhauer - ose_utils.
Philipp presented his newly designed model class that will be used in the major OpenSourceEconomics packages.
Benedikt Kauf - Testing Frameworks
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.
Holger Gerhardt - BibLaTeX
Holger talked about the application of BibLaTeX as an adequate solution for implementing references in academic writing projects.
Boryana Ilieva - The soepy Package
Boryana reported on the current developments of the soepy package as well as her upcoming research. Please see here for the associated notebook.
Janos Gabler - When (not) to use classes
Janos outlined the advantages and disadvantages of using classes in your python based projects.
Felix Schran - The dask Package
Felix hold a presentation on dask a package that provides solutions for handling extremely large datasets in Python based projects.
Christian Zimpelmann - Introduction to the mystic Package
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.
Sebastian Seitz - A Structural Model of Disability Insurance
Sebastian presented a structural model of disability insurance and the Fortran code he used to solve and estimate the model.
Philipp Eisenhauer - f2py
Philipp provided an overview of f2py, a package that enables us to call Fortran routines from Python. The presentation is based on the following lecture.
Max Blesch - Experiences obtained by newest changes on ruspy
Max reported on his experiences of implementing numba for improving the performance of the ruspy package.
Max Blesch - The Rust Model and ruspy
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 Zimpelmann - Beliefs under Ambiguity
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.