Summary of Workshop #8: Complexity Economics
The workshop ‘Complexity Economics’ was part of the ‘Exploring Economics’ summer academy organized by the Network for Pluralist Economics taking place August 4th-11th 2017 in Neudietendorf. The 12 participants of the workshop came from different academic backgrounds - some had prior knowledge of complexity economics and programming, some were new to the topic. Under the guidance of Dr. Claudius Graebner and Dr. Torsten Heinrich, we were immersed in the world of complexity economics. Rather than being a unified school of thought, complexity economics is characterized by an emphasis on the dynamic nature of economic systems composed of different potentially heterogeneous and potentially adapting entities. In the strive to describe these systems, advanced modelling techniques, such as agent-based-modelling, are applied. Hence, the workshop was organized in a twofold manner. The first component consisted of lectures that equipped us with theoretical insights into complexity economics. Second, the programming language Python was introduced in practical lab sessions in order to enable the development of simplified complex models throughout the week.
Content of the Workshop
How do you start to learn a new branch of economics? A useful way is to elaborate on the scientific foundation of the field, e.g. ontological and epistemological questions. We learned that the essence of complexity economics is to see the economy as a complex system: it consists of components that are arranged in a particular way. These components interact with each other and the corresponding mechanisms can lead to phenomena such as self-organization and emergence, i.e. it would be difficult to conclude what is happening on the macro-level by just observing the micro-level. On the epistemological level, we want to know how knowledge can be created: we can build a representation of reality and realize a verification of the model, i.e. testing whether the model does what it should do. Besides that, we can do a validation to test if the model resembles the system under investigation via the comparison of inputs, processes or outputs of the model to the reality.
Three Approaches towards Modelling
One can take different approaches to model reality. In the context of this workshop, we focused on three main components: network theory, dynamics and, based on this, agent-based modelling (ABM).
Network theory, the first ingredient to ABM but also a modelling approach on its own right, is a branch of mathematics primarily concerned with the description of systems. And complexity economics starts with considering reality as a particular system: “[A system is] a complex object, every part or component of which is connected with other parts of the same object in such a manner that the whole possesses some features that its components lack –that is, emergent properties” (Bunge, 1996, 20). Therefore, network theory facilitates the analysis of important elements of the economy and their interrelations, for example, trade-flows or ownership of firms. During the first two days of the workshop, we familiarized ourselves with the formal language of this theory to be able to develop our own networks in Python.
The second essential ingredient for ABM (and again, a useful method in its own right) are dynamical systems, which may be combined with game theory modelling when it comes to evolutionary game theory and replicator dynamics. Put simply, dynamical systems are mathematical systems in which sets of variables change over time, for example, GDP or the population of a country. As economists who are interested in understanding how reality changes, it is pivotal to understand these mathematical foundations. Departing from this, game theoretical models most economists should be familiar with, e.g. the Prisoners’ Dilemma, can be extended. This enables the modelling and analysis of interactions in complex systems, which do not necessarily tend towards one stable equilibrium. The mathematical details exceed the scope of this brief summary, but the resulting possibilities are surely interesting for anyone interested in the economy - for example, if one wants to understand how the interactions between different components within the same system influence its changes over time.
Agent-based modelling is a way to represent a system with different components (or agents) interacting with each other. This is usually done computer-aided. An easy way to understand this method is to think of it as a simple game with different players (or agents), for example, the board game Monopoly. In every period, all agents follow rules, heuristics or other types of behaviour and face certain obstacles and events. If you assume all agents to be fully informed and rational, it is rather easy to forecast behaviour with analytical methods. It’s different if there are endogenous factors such as expectations of others’ behaviour evolving during the game. This can lead to emergent behaviour that could not easily be derived analytically in closed form solution. Then, an agent-based model is probably the method of choice.
Implementing Theoretical Insights: Introduction to Python
This was definitely the fun part of our workshop. If you study economics, you usually solve models to identify optimal solutions. When it comes to complex systems this is not always possible. There can be different optimal solutions (stable or unstable) or attractors toward which a system tends to evolve. There is a need to simulate your model in order to see what is happening step by step. As this kind of complexity clearly exceeds both the drawing capabilities of our hands, not least due to the often found multidimensionality, and the thinking capacities of our brains, the help of computers is needed. We learnt the essentials of the programming language Python and managed to build simple programs that for example automatically plotted what happened in our models throughout different time periods.
Throughout the week, we took first steps into the world of Complexity Economics. We learned about its theoretical foundations and history, different methods for modelling, and the corresponding mathematical tools. Finally, we had the possibility to utilize our newly gained insights by way of developing our first models in Python. We studied the dynamics of a simple Solow model, populations of cats and rabbits, an epidemic and the use of technology. Admittedly, a Python-based re-interpretation of the Solow-Model, spiced up with some zombies to reduce the population from time to time, may not exactly be a complex economic system, yet. But we understood what it could look like and which tools we need to be able to model it.
Bunge, M.A. (1996). Finding philosophy in social science. New Haven, CT: Yale University Press.