Our aim is to model the spread of syphilis (and later on other infectious diseases) simulating the individual behaviour of the members of a society. The primary task is therefore to model the natural changes of population (birth, death) of a society with a special emphasis on the sexual contacts of individuals, so that the society/population develops over time and behaviour during the sexual act (i.e. protection, condom use) can be applied as an intervention in the model.
But how do we get there using ABM?
Definition of an ABM
To use an ABM we need to define its components, i.e. specify what simplifications of reality we make. Firstly, we will implement two types of agents: Of course, we will need natural persons who are supposed to form the society in which STIs spread. These agents will have the same memory variables (e.g. age, sex, etc.) but with different values. They will also be given the same behavior rules implying decisions based on their memory variables’ values. The second agent type is a statistical agent, which is kind of the modelers representative inside the model. It will not have many (if any) memory variables, but will report some indicators during the model run and govern some of the other agents actions.
There is also a need for the definition of some environmental variables. We set our smallest time-step to one day. Furthermore, at the current state of the SILAS-project, all agents are supposed to live in the same region.
The core part of an ABM is the definition of interactions allowed between agents and the behavior induced by interaction or generating interaction. As we use the FLAME-framework, interactions are modeled over messages between the agents. Therefore it is necessary to define the messages with regard to their sender, receiver and content. Connected to the messages is the agents’ behavior, which can either lead to sending a message or the change of memory variables after reading a message.
Behaviours of agents as functions
So, for the SILAS-model it is necessary to implement functions into each agent, determining its actions with regard to natural changes of populations (“demographic behaviour”), the building of social networks (“social behaviour”) and their “sexual behaviour”. From economic theory it would be preferable to implement utility functions to model agent behavior. However, as this will lead to more attackable assumptions in the model as well as more complex calculations, we chose the approach of stochastically modeling the agent bahavior. Hence, our goal is to define probability-functions for the different behaviors defined above in dependence to the characteristics of an agent. So, given certain values of the agents’ memory variables, a probability for a certain behavior is estimated. With the use of random numbers (“coin flip”) we can obtain a discrete behavior out of this probability. As the definition of behavior functions is crucial to the ABM and rather complex, it is given a site on its own.
Above you can see a stategraph depicting the general model flow, i.e. all functions and messages an agent passes through during one iteration.