What are Simulations?
Contents
What are Simulations?#
Before we explain what makes ABM special and how it may be used in historical research, we want to clarify what simulation methods are in general, since they are not a wide-spread method in DH. First of all, it needs to be stressed that definitions of what is and what isn’t a simulation often depend on the field of research a particular definition is coming from. The following is our informed perspective on this from the position of humanities and historical research, but should be taken with a grain of salt - as any other definition of simulations you might encounter in your research.
Simulations are an array of different methods#
Simulations are not a single method, but rather an array of methods for modeling and experimentally reproducing real-world or hypothetical processes or systems. These processes and systems are usually complex and dynamic, meaning that they consist of many interacting parts which change over time. In one of the models in the ModelSEN project for example, we want to model how scientists work and interact, thereby influencing and forming their scientific field. The interacting parts in our case are the scientists, but simulations don’t have to look at individuals. They could also model, e.g., flows of goods, the movement of objects, or the interaction of physical phenomena like climate and precipitation.
Simulations rely on formalized models#
The basis of each simulation is an executable simulation model, a class of models which can be expressed conceptually, logically or mathematically - or a combination thereof. To take our scientists model as an example, we could model the scientists’ behavior in different ways: conceptually (“a scientist seeks out ideas they are experts in”), logically (“if idea A is in expertise A – then scientist with expertise A will seek out idea A*”), or mathematically (“…insert some simple behavioral equation?”).
However, to execute a simulation model, it must always be formalized, i.e., put into computer-readable form (if its not an analogue simulation we are talking about, but that’s a whole other matter). That means we have to choose a programming language or digital tool with which to express the model (there are many well-documented and established tools and languages for simulations, some of which we will present in the section on ABM).
Programming languages and tools
There is a host of specialized tools, programming languages, and libraries that are useful for building simulation models. Some of the ones useful for social and historical sciences (and Agent-based modeling in particular) are the following:
Tools & Suites: NetLogo (based on a simple, dedicated programming language of the same name), Repast (with Java, C++, and Python variants)
Libraries: MASON (/D-MASON; mostly Java-based), Mesa (Python-based), AgentPy (Python-based)
Languages: R, NetLogo (used with the NetLogo Suite mentioned above)
Modeling is a scientific process itself#
Coming up with a simulation model is usually an iterative and interactive process. Experimenting with the parameters and properties of the model is a very important part of most simulation methods. The model, after all, only makes sense when it is moving, so we can only ascertain if it is behaving the way we want it to and evaluate its results when we try it out. Part of that process might also be a visualization or user interface that makes the execution of the simulation readable or even manipulable by the user while the simulation is running, or one that at least presents results of the simulation.
Simulations generate unique data#
Results of a simulation - the data that is generated by executing the model - is sometimes also called “simulated data”. This data is not real-world data, and it is important especially in bigger simulation models to be able to discern which parameters of the model are based in empirical or source data and which are entirely simulated. For a more in-depth discussion of the caveats of simulated data in the context of historical research, take a look at this section.