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).
   42   43   44   45   46   47   48   49   50   51   52