Page 47 -
P. 47
4 Different Modelling Purposes 41
Our use of language helps cement this confusion: we talk about a ‘predictive
model’ as if it something in the code that makes it predictive (forgetting all the work
in directing and justifying this power)—rather I am suggesting a shift from the code
as a thing in itself, to code as a tool for a particular purpose. This marks a shift from
programming, where the focus is on the nature and quality of the code, to modelling,
where the focus is on the relationship of the behaviour of some code to what is being
modelled. Using terms such as ‘explanatory model’ is OK, as long as we understand
that this is shorthand for ‘a model which establishes an explanation’ etc.
Producing, checking and documenting code are labour intensive. As a result,
we often wish to reuse some code produced for one purpose for another purpose.
However, this often causes as much new work as it saves due to the effort required
to justify code for a new purpose and—if this is not done—the risk that time and
energy of many researchers are wasted due to the confusions and false sense of
reliability that can result. In practice, I have seen very little code that does not need
to be rewritten when one has a new purpose in mind. Ideas can be transferred and
well-honed libraries for very well-defined purposes, but not the core code that makes
up a model of complex social phenomena. 3
In this chapter, I will look at five common modelling purposes: prediction,
4
explanation, theoretical exposition, description and illustration. Each purpose is
motivated, defined and illustrated. For each purpose, a ‘risk analysis’ is presented—
some of the ways one might fail to achieve the stated purpose—along with some
ways of mitigating these risks. In the penultimate section, some common confusions
of purpose are illustrated and discussed, before the chapter concludes with a brief
summary and plea to make one’s purpose clear.
4.2 Prediction
4.2.1 Motivation
If one can reliably predict anything that is not already known, this is undeniably
useful regardless of the nature of the model (e.g. whether its processes are a
5
reflection of what happens in the observed system or not ). For instance, the gas laws
(stating, e.g. that at a fixed pressure, the increase in volume of gas is proportional
to the increase of temperature) were discovered long before the reason why they
worked.
3 I am not ruling out the possibility of reusable model components in the future using some clever
protocol; it is just that I have not seen any good cases of code reuse and many bad ones.
4
A later chapter (Chap. 28 (Edmonds et al. 2017)) takes a more fine-grained approach in the context
of understanding human societies.
5
It would not really matter even if the code had a bug in it, if the code reliably predicts (though it
might impact upon the knowledge of when we can rely upon it or not).