Today we're going to explore the relationship of agent based modelling
to other methods that you might use to explore complex systems.
I'm going to start by talking about ABM versus equation-based modelling (EBM),
which is a phrase that's been around for a while
to describe a set of techniques such as analytical or game-theoretic modelling
in which you write first principle equations
and then you see where those might take you.
These are often compared because agent based modelling in many ways
starts a lot with some of the same first principles
but then goes in a different direction,
rather than looking for a closed form solution
it tries to come up with computational solutions to the problem at hand.
So why might you use agent based modelling instead of equation based modelling?
Many equation based models make the assumption of homogeneity -
in fact they have to in order to generate the closed form solutions
that they're famous for.
So in many cases you have a system that's dramatically affected by heterogeneity
and so using something like agent based modelling
when it's not possible to generate a closed form solution
for a heterogeneous system, might be a good way to approach the problem.
Also, a lot of equation based models are continuous and not discrete.
This leads to something called the nano- wolf problem.
The idea is that if you are modelling something
that is essentially a discrete entity, like a wolf for instance,
then if I have an equation based model that allows the wolf population
to drop to one-tenth of a wolf, or one millionth of a wolf,
theoretically, under a lot of equation based models, it could still rebound
and come back from that low level.
In reality, once the last wolf,
or more importantly, the last mating pair of wolves die
there's no way for the population to rebound at that point.
Which means that using a discrete solution often provides you with a better answer.
Now it's not the case that all equation based models are continuous
but it's just one of the reasons why ABM provides you with a more natural ontology
to that space.
Many equation based models are written at the aggregate level
rather than the individual level
which requires you have knowledge of the overall patterns of behaviour of the system
rather than the individual entities within the system.
It's often easier to get individual level descriptions
rather than aggregate descriptions
and so as a result ABM often works better in those contexts.
Related is the fact that the ontology of an EBM is often at that same global level
whereas the ontology of an ABM is at the individual level
making it easier to communicate the ABM to someone else
since you're describing individual behaviours.
Also, most EBMs will not provide you with detail
about what a particular individual does within the model.
ABMs allow you that drill-down detail,
which means in many cases you can go back and figure out
exactly how important an individual is to the complex system.
You can relate all those notions to the fact that EBMs are kind of 'top down' -
starting with these big entities and then modelling down lower and lower systems
whereas ABMs start with the premise of understanding the local system
and then model upwards.
That being said, EBM does have several advantages over ABM.
One of them is that they're usually more generalisable
for the set of assumptions that are assumed about the model.
On the other hand, those assumptions are usually restrictive
for all the reasons we've previously mentioned
and so therefore it's difficult to use them in a lot of real-world situations.
In fact, we would argue that ABM should be viewed as a complement to EBM,
in fact you can build ABMs that are essentially instantiations of game-theoretic models
and then explore the ramifications beyond the closed-form solutions
that are very often obtained using EBMs.
Of course, EBM is not the only approach,
you can also do statistical modelling which in many ways also uses equations
but it's done in a different way.
Here, the idea is that we take aggregate patterns of behaviour about the world
and then infer a model relating the entities of those aggregate patterns together
so you do a regression or something like that.
And many times when you have a statistical model
it's very hard to link it to first principles or behavioural theory
that describe the way the agents take action in that system.
And you need to have the right data to do statistical modelling.
ABM can complement statistical modelling
by building from first principles to generate statistical data
which you can then compare with statistical data obtained from the real world.
Another approach you might want to use is to conduct a series of lab experiments
such as behavioural economics experiments.
Lab experiments are often very useful because they can actually generate theory,
you can set up a condition and then really see whether a particular theory
seems to hold up within that space.
However lab experiments are often not as powerful as they could be
because they're rarely scaled up to large conditions like we see in the real world.
Instead, you're looking at maybe six or seven individuals and how they interact,
or how they make decisions.
Agent based models can be created from lab experiments
you essentially can use the rules that you've inferred from the lab experiments
to construct your agent based model.
As a result you can explore what would happen if everyone acted
the way my lab experiment says people interact.
And then you can use that to generate new hypotheses
about things you might see in the world that you don't actually see in the lab,
construct a new lab experiment,
and see if you can uncover any evidence for those new hypotheses.
You can also try to manipulate parameters of the model
beyond what the lab experiments will allow.
A lot of times you can't impose, say, a hundred different conditions
on a lab individual, because of the fact that they won't stand for that many tasks.
Agent based models don't care how many conditions you impose on them.
So if you can create the behavioural pattern of a lab experiment
you can then run it through as many different instantiations as you need to.
Agent based modelling can compare generative principles drawn from lab experiments,
so say we have two lab experiments that provide you with different evidence
about the way the world works.
You can generate an agent based model from each of them
and see which one matches up better with the real world.
Finally, there are a lot of aggregate computer modelling and simulation approaches
that you might use instead of agent based modelling.
For instance, system dynamics modelling is an approach which embraces
a system level approach to the entire world
using stocks and flows to talk about the way different parts of the world affect each other.
The problem is that most of these approaches lack the individual level representation
and in fact one of the best things you can possibly do
would be maybe combine some of these system level approaches
with the individual level approach of agent based modelling.