© Copyright JASSS

JASSS logo ------

Agent-Based and Individual-Based Modeling: A Practical Introduction

Railsback, Steven F. and Grimm, Volker
Princeton University Press: Princeton, NJ, 2011
ISBN 9780691136745 (pb)

Order this book

Reviewed by Simone Gabbriellini
GECS Research Group on Experimental and Computational Sociology, University of Brescia, Department of Economics and Management

Cover of book When you see students confronted with Agent-Based Modelling (ABM) for the first time, you see people challenged but also excited by the idea of ‘playing’ with a social phenomenon – or at least a simpler version of it – while they see it running in a computer. They immediately get the idea of ABMs as magnifying glasses that help them to see the macro-micro-macro link in action.

We train students to develop their theories from observation and imagination, by looking at statistics to receive some support. ABMs play a central role here, as they “aid intuition” (Axelrod 1997). Indeed, their ultimate goal is to help scholars developing better theories. However, ABMs require extensive effort in that it means to learn using a computer very differently than usual. For instance, a beginner must learn how to program, how to debug his/her code and how to validate his/her results. It is a much more advanced knowledge compared to what is required to run a statistical package. Unfortunately, social sciences training courses at different levels, e.g., under and post graduate, generally do not offer any chance to learn this.

Railsback and Grimm’s book aims to fil this gap. Indeed, the book offers a comprehensive course on agent- and individual-based modelling for students and practitioners. The result is brilliant and excellent. It is brilliant because the learning experience includes a good balance between theory and practical implementation using NetLogo. It is excellent because each topic is looked at very clearly and comprehensively. Furthermore, the book also offers valuable sources for readers interested to have more detail on a specific subject of interest.

The book includes four sections. Each helps the reader to find the right way to appreciate the vast complexities and difficulties of the field. Here is a brief review of these sections.

Section 1 is a ‘how to get started’ first step. It illustrates what is an ABM and what the modelling cycle is all about. The authors discuss the peculiarity of ABMs in that computational models do not require mathematically treatable, analytically solvable solution. This property allows us to produce a much more realistic account of social phenomena, by enriching the simplified assumptions that we need to make when using other types of modelling.

On the one hand, from a practical perspective, authors introduce NetLogo and its peculiar terminology and guide the reader step-by-step through a first model. On the other hand, they introduce the ODD protocol as a clean and complete way to formulate and describe an ABM. The ODD protocol is a checklist of the important decisions everyone needs to make about ABMs and that often are left unexplained.

In my opinion, any good ABM scientific paper already includes most of the elements of the ODD protocol, tough if the authors do not explicitly agree to use the ODD protocol specifically. However, I do welcome the idea of having a common standard as this can increase collaboration and mutual understanding. Furthermore, I also think ODD is a great achievement as it provides a benchmark against which to check how complete is the description of a model and understand what is still missed through a sound, generally approved checklist. Anyway, it must be said that the ODD relies on short narrative descriptions, where lexical or semantic confusion can annihilate the meaning of the protocol itself. In my opinion, it would be more interesting to develop sound ABMs descriptions by means of UML (Bersini 2012).

At the end of the first Section, there is a concise representation of how to implement an ABM out of an ODD description. The reader learns to deal with scheduling and other design concepts peculiar to the ABM world, as well as with their practical counterparts in NetLogo. The chapter in question, but also the whole book, is completed by varying brainteasers that stimulate the reader to think creatively on how NetLogo works, with programming notes exploring core-programming ideas. At the end of each chapter, the authors offer a brief list of exercises that are extremely useful for the readers to verify what they have learned point-to-point. Although in the rest of the book authors do not provide complete code examples anymore - except for some special cases -, so that the less experienced reader could feel abandoned too early, the authors offer a companion website for the book that is extremely useful to access more complex procedures.

The last chapter in this section is devoted to debugging, i.e., checking that the code is actually doing what you think it should. Debugging is a practice social scientists are not familiar with, but it is one of the golden rules in computer science: no program is finished until testing is done.

In the section 2, the conceptual framework of ABMs is summarised concisely, with a very exhaustive list of the most important aspects of ABMs and how to program them. Here is a quick glimpse at the concepts detailed in this section, as well as at how each of them relates to a specific NetLogo solution:

The Sect 3 is the very heart of the book. It contains the most important message for the reader: ABMs are tools to develop theories. It is important as it addresses design and implementation issues. It teaches the reader how to accomplish a “structurally realistic” model using pattern-oriented modelling. Patterns here are seen as “anything beyond random variation” (p. 228) that can help the modeller to understand what the model outcome should be, how to assess if a model’s result attained a configuration close to such patterns and, ultimately, how to answer scientific questions with the model.

The authors underline a key-modelling concept: patterns should emerge from the model and must not be forced in its design. Overall, as much as you do not want your dependent variable to mix with independent variables in the input of a statistical model, you do not want your outcome pattern to be explicitly included in agent behaviour. While this concept is straightforward for more experienced modellers, beginners might be frustrated when trying to accomplish a good ABM design and understand, qualitatively, the outcome it produces, i.e. what we are looking at the end of a simulation run, a fundamental step to start a more structured model analysis.

The authors guide the reader into the theory development aspect of ABM, which is the peculiar trait of this kind of modelling. The authors confront the ABM approach to theory building with the scientific method applied in hard sciences to conclude that ABM as “virtual laboratories” can aid social scientists in gaining the cumulative knowledge typical of the scientific endeavour.

Although there are substantial differences (also in the terminology used) among behavioural sciences who use ABMs, the benefits of these tools to support theory-building process are increasingly appreciated (Hedstrom and Manzo 2015). It is a pity that the authors of this book report that only few papers to date follow explicitly the theory development cycle. I do think that this is just a formal issue: in my experience, every paper involving ABM is explicitly designed to test (the consequences and internal consistency of) a theory. When computational sociologists formulate generative hypotheses, implement them into ABMs, simulate the outcome, confront it with different (maybe simpler) hypotheses and/or with empirical data, they are pretty much accomplishing the same theory-building cycle described here.

The section 4 is devoted to model analysis. Albeit the vastness of the topic, the reader here is helped to focus on what really needs to be done at the end of the modelling phase. Once the model is done, it is time to understand its behaviour (and weaknesses). A simple exploration of the parameters’ space is a good start but it is not sufficient to understand the robustness of the model. Here, the readers is guided into the principles of sensitivity analysis, uncertainty analysis and robustness analysis. The authors’ goal is to help the reader learning the guideline principles that help understanding how reliable a model is.

Apart from re-implementing known models, which is a very insightful exercise for every modeller – not only for beginners – the authors provide important advices to young modellers who want to implement their first ABM, insisting on the use of the ODD protocol to help focus on a clear model design.

This section ends with a quick look at possible extensions beyond NetLogo capabilities, i.e., a field for those expert modeller who might want to deal with bigger data and bigger models.

While I agree with the authors that NetLogo has certain limitations, I do not agree that dealing with many agents implies per se switching to other platforms. Indeed, NetLogo can be used for models of thousands of agents without any serious problems. For some basic needs, an ad hoc extension that speeds up some computations can solve the problem. Besides, opening NetLogo with a double click is not the only way to use it: we can also incorporate NetLogo in Scala or Java applications through NetLogo APIs, maybe using NetLogo headless to diminish the computational overhead. Still, I agree that dealing with big data through NetLogo is not easy. Big architectures call for interdisciplinary efforts and, as the authors suggest, collaborating with computer scientists here is always the best solution.

Here, it is important to note that computational social scientists need computer scientists to setup and maintain big complex architectures that require a specific training to be understood and managed. However, the very act of modelling, i.e. being able to detail a model in a computable form, is a skill that every modern computational social scientist should acquire in his/her formation. I echo authors’ hope to see ABM courses, as well as OOP course, offered at every university to develop these essential skills for any modern scientist, no matter his/her specific discipline.

Finally, although it is natural that the ecological background of the two authors is reflected in the many examples that the book offers, it is good that they include some examples from management and economics, while it is a pity that a few are from sociology.

To conclude, this book is the perfect companion for an ABM course, either in a classroom or for individual learning. This is the book I wish I had while I was starting to learn ABM, years ago.

* References

AXELROD, R. (1997). “Advancing the Art of Simulation in the Social Sciences”. In Conte R., Hegselmann R. and Terna R. (eds.), Simulating Social Phenomena. Springer, pp. 21-40.

BERSINI, H. (2012). UML for ABM. Journal of Artificial Societies and Social Simulation, 15(1): 9: https://www.jasss.org/15/1/9.html.

HEDSTRÖM, P. and Manzo, G. (2015). Recent Trends in Agent-based Computational Research. Sociological Methods & Research, 44(2),179-185.


ButtonReturn to Contents of this issue