We have organized our frequently asked questions into categories to make it easier to find answers.If you have a question that is not answered here, you can register as a CoMSES Net Member and post it to our forums. With enough community interest, it may end up on this list.
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.
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.
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.
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.
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. Several noteworthy results from models published in high level journals have been difficult to replicate. At the very least, some assumptions made in the original model led to doubt about whether the results were robust. At CoMSES Net we recommend the ODD protocol (Grimm et al., 2006) as a starting point for model documentation.
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.
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.
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.
This is a major open question in the field of ABMs. 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.
There are many software frameworks for agent based modeling - Netlogo, Repast (Java), Mesa (Python), Mason (Java), Cormas (Smalltalk), etc. For a more comprehensive list, please visit our maintained list of modeling software frameworks. Benefits of adopting an agent based modeling software framework include scaffolding and support for building graphical user interfaces, an active open source scientific community that is responsive to user concerns, fixing bugs, adding new features, and has a suite of existing models or model components that can help you build your own models, and in general, supporting abstractions that simplify the design, development, and validation of agent based models. One can also develop an ABM from scratch using any general purpose programming language but you would likely be reinventing the wheel as you add more features. Netlogo is a nice introductory ABM software framework with support for rapid prototyping, graphical user interface builder, an active community of modelers and developers, and good documentation, tutorials and a large library of example models. For more experienced software developers, a platform implemented in Java like Repast, Mason, or using Python like Mesa might be more appropriate depending on your needs.
As a scientific community of practice, members of the CoMSES Network have access to a suite of community resources and also share a responsibility to contribute to the community. There are two categories of membership in the network: Basic and Full Members.
To view the benefits and responsibilities of CoMSES membership: please visit the CoMSES Membership Page.
Sort by date while browsing the CML.
Although our focus is on agent-based models on social and ecological systems, we are open to broader computational models including geosimulation, cellular automata, dynamic networks, etc. Contact us if you have any questions!
You must explicitly choose to Publish a computational model in the CML to make it publicly accessible and discoverable. You may choose to keep a model unpublished, if for example it is associated with a publication under review, and you do not wish to make the model public until the paper has been published.
Once a model is published in the CML, they become a matter of public record and in general cannot be removed from the CML except for extraordinary circumstances (e.g., confidentiality, privacy, or licensing issues).
With that understanding in mind, if you must retract a model from the library, you will need to contact us to explain your situation in detail.
If you’d like to keep your model private but share its details with journal reviewers, use a private Share URL to disseminate your computational model’s digital artifacts and metadata. You can also request independent CoMSES Net peer review for your unpublished models.
To contribute a model with its associated metadata and documentation to the Library, you must be a signed in CoMSES Net member.
The codebase upload workflow will guide you through several steps and collect important contextual metadata about your computational model, including references to associated publications, narrative documentation about your model, model source code, and additional metadata like the programming platform, programming language, and other software or data dependencies. We have also created a set of tutorials to guide you through the steps of archiving your computational model.
The Computational Model Library requires that narrative documentation be provided to help others understand the purpose and structure of your computational model and facilitate reuse and reproducibility of your model. The ODD protocol is recommended as a narrative documentation format for your computational models, but is not a formal requirement.
Model authors may request that their models be peer reviewed for structural completeness and fulfilling community standards. Models that meet these modeling standards will be certified as Peer Reviewed and be badged as well as be eligible for inclusion on our home page as Featured Content.
For more information, please see the CoMSES Net Peer Review Page.
A DOI is a unique string of characters used to identify a specific piece of academic output, such as a journal publication, dataset or software. If you developed or used software to generate publishable findings, you should cite it! If you developed the software, you’ll receive scholarly credit for your contribution so that others may benefit from your work, and it also improves the transparency and reusability of your own work. For more reasons to deposit your software in a digital repository, please see https://softwaresaved.github.io/software-deposit-guidance/WhyDepositSoftware.html
CoMSES is a DataCite member and can mint DOIs for computational models that have passed CoMSES Net Peer Review. For example, this replication of Artificial Anasazi has been certified and has a DOI https://doi.org/10.25937/krp4-g724 - this DOI can also be found in the model’s citation information.
You can also mint DOIs for your repository releases on GitHub with Zenodo or on other repositories - where possible, use DOIs to cite your software releases!
Digital preservation is still an evolving concept and as the saying goes, digital artifacts will last forever or 5 years, whichever comes first! That said, CoMSES Net is committed to the long-term preservation of the computational models and associated metadata entrusted to us. We have partnered with DataCite to provide DOIs for peer reviewed computational models and are actively engaged with the FAIR data and software citation communities to ensure that the models and metadata are maintained with digital preservation best practices in mind.
Our current cyberinfrastructure environment is generously hosted by the Compute Canada Research Platforms and Portals Program. CoMSES Net operations are not contingent on grant funding beyond the computational resources needed to support the website. We have reserved funds to transition our digital artifacts and materials to other digital repositories like the Open Science Framework, LOCKSS, FigShare, or Zenodo in the event that we are no longer able to support CoMSES Net.
Only peer reviewed computational models have been vetted by CoMSES Net members and so you may find that models that you have downloaded from our library do not run properly - this is common as software versions and libraries and platforms are constantly changing, and the submitted models might not get updated alongside them.
A properly peer reviewed model should include all dependencies or have detailed enough release notes and metadata to describe what is needed to run the model. However, if you find you are unable to run a particular model release, you can try the following:
Every codebase release in our library has an associated forum discussion topic that you can access via the “Start Discussion” link at the bottom of the codebase release page. Feel free to post your questions on this associated discussion topic as the model author or other community members interested in the model may be able to help. If you’re able to solve the problem, posting about it on the forums afterwards will also help others benefit from your experiences.
If you don’t get any response from the forums, you can also try contacting the model author(s) directly. Please note that we do not have the ability to vet every model that is submitted to our repositories and that any models you download and run on your local machine are done so at your own risk.