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.