Agent Based Modeling FAQ

Please also refer to Computer Simulation: The Art and Science of Digital World Construction
by Paul A. Fishwick for a good introduction to Computer Simulation.


What are agent-based models (ABMs)?

Agent-based models are (computational) models of a heterogeneous population of agents and their interactions. The result of the micro-level interactions can be interesting macro-level behavior like cooperation, segregation, fashion, culture, etc. ABMs are also known as multi-agent systems, agent-based systems etc., and is an important field in computer science where agent-based models are developed to do tasks, like searching for information on the internet. Within social science we are interested in agent-behavior that is based on our understanding of human decision making. Agents can represent individuals, households, firms, nations, depending on the application. The heterogeneity of agents is an important aspect of ABM. Heterogeneity can originate from differences is location, knowledge, wealth, social connections, cognitive processes, experience, motivations, preferences, etc. Agents can interact in various ways such as changing the shared environment by harvesting or pollution, exchange of information and resources, and by imitation.

What are the decision rules of agents?

This is one of the main open questions. It is well known that rational choice theory which assumes selfish rational decision makers is a reasonable model of decision making only in specific conditions, such as high competitive markets. In most other situations we lack a standard model, but there are a lot of insights of regularities and anomalies in decision making. Instead of assuming selfish individuals with perfect information, we often assume agents who have simple heuristics of satisfying behavior. Cognitive scientists test many types of models on experimental data, and this provides us some useful models like reinforcement learning models, or other regarding preferences. Another way to elicit heuristics for decision making of the agents is to interview stakeholders on their decision making. Although people can not clearly express how they make decisions, they may provide useful information.

What are complex systems?

ABMs are especially used to study complex systems. With complex systems we refer to systems that use simple micro-level rules that generate macro-level phenomena. These emergent phenomena can not be explained by the micro-level units alone. The interactions of the units lead to a nonlinear transformation to macro-level phenomena. For example, we can not understand the emergence of ant-colonies by studying one ant. Complex systems are different from complicated systems. Complex systems are in fact simplified versions of very complicated systems. Scholars studying complex systems and complexity are interested in discovering the basic underlying rules that describe most of the phenomena, not the details for specific empirical applications.

When to use agent-based models?

It is important to have a clear research question what kind of emergent process one likes to study. Often scholars use ABM to describe a lot of details of a complicated system. The resulting model is often not useful since it is too complicated to perform a rigorous analysis required for understanding the behavior of the model. Often an agent-based model is not necessary. When there is a small set of agents, or a very large of agents who interact randomly, sets of differential equations, such as system dynamics models, may be a suitable tool too.
ABMs are especially useful when the agents interact in non-random ways, like social networks, of spatial explicit ecological systems. Furthermore, they are useful to test different cognitive processes and heterogeneity of decision-making processes in a population.

How to implement agent-based models?

There are a number of ABM platforms like Swarm, Starlogo, Netlogo, Mason, Cormas, Repast, etc (List of ABM Platforms can be found here). The main benefits of these platforms are the provision of a graphical interface, an open source community who may develop similar models you are interested in, and libraries. A drawback is that these platforms are not always userfriendly and that libraries only include the more straightforward algorithms. One can also develop ABMs in more standard packages like MATLAB when one is already familiar with such a platform. A good platform to get started is Netlogo, which has good tutorials and a elaborative library of demo models. For more experienced modelers, a platform like Repast might be more applicable since the run time is faster and more tailored procedures can be implemented.

How to use agent-based models?

Models are tools for communication, education, exploration and experimentation. Models are not holy tools for prediction, especially not for non-linear systems. Unfortunately, there is a lot of misunderstanding about models. People who are not very familiar with them have sometimes high expectations of the details that are included. A common critique of non-modelers is that more details need to be included. But more details might only make the model less useful for exploration of the parameter space. The goal is to make “the models as simple as possible, but no simpler than that”. One confuses often the use of a model with a description of the real systems

How to validate and calibrate agent-based models?

The terms validation and calibration originate in engineering and are sensitive to many social scientists. What we want to test is how well our model explains the data compared with alternative models. Therefore it is important to use different models of decision making. Human decision making is so complicated that we do not have the illusion to argue that we have the true model. Model comparison is, however, not a straightforward activity. There are different dimensions in which a model may be evaluated. One way social scientists test models is use maximum likelihood estimation. Since more complicated models with more degrees of freedom result in better fits, some scholars use a penalty for the complexity of the model. Especially the use of minimum description length might be a promising tool.
Increasingly experimental researchers and agent-based modeling start to be combined. Traditionally experiments where used to challenge the standard model of rational choice, nowadays alternative models are tested in more complicated dynamic and spatial settings, in the lab and in the field. This may lead to better tested alternative models that one can use in ABMS.
Other ways to evaluate models is the participatory model development with stakeholders, or the use of Turing-tests.

What is the difference between ABM and Markov processes?

A Markov process is a random process whose future probabilities are determined by its most recent values. Sometimes ABM fits this description very well, but in many cases the decisions are dependent on the state of the systems of more than one step ago. This is especially the case when agents learn or have a memory.

What is the difference between ABM and system dynamics?

System dynamics is characterized by causal feedback loops and is formalized by sets of differential equations which are numerically solved in user-friendly packages like Stella and Vensim. One can write simple agent-based models in packages like Stella and Vensim, using arrays of differential equations and a fixed topology of interactions. But this use of system dynamics packages restrict the possibilities of more dynamic interactions of agents, heterogeneity of agents, more complex recursive reasoning processes.

How to document agent-based models?

A standard rule is that one should be able to replicate the basic results of your research. Simple models should be documented in such a way, that a colleague is able to reimplement the model and derive similar results. It is striking that some results of models published in high level journals were difficult to be replicated. At least the assumptions others had to made led to doubt whether the results were robust. Within openabm.org we use the ODD protocol of Grimm et al. (2006) as a starting point for model documentation. For more information about the ODD protocol please see here