|
| 1 | +=========================================== |
| 2 | +Building and Understanding Individual Based Models to Inform Health Policy |
| 3 | +=========================================== |
| 4 | + |
| 5 | +Welcome to this tutorial to help you self-learn how to build individual-based models to inform health policy. This is intended to be an accessible introduction which requires no existing knowledge. |
| 6 | + |
| 7 | +What is an Individual-based Model? |
| 8 | +==================================== |
| 9 | + |
| 10 | +Each time the model program is run it generates values of variables that represent the characteristics of individuals and simulates how these change over time. By building a model that accurately reflects real changes in people over time, we can evaluate the potential effects of a policy of introducing a health intervention. |
| 11 | + |
| 12 | +`Here <https://mediacentral.ucl.ac.uk/Player/5G0ag7CC>`_ is a video describing individual-based models to inform health care policy: |
| 13 | + |
| 14 | +(You don’t need to have watched this video to get started on the tutorial!) |
| 15 | + |
| 16 | +Get started |
| 17 | +==================================== |
| 18 | +We will use a programming language called Python. We will use Google Colaboratory (“Colab”) which is a website which makes it easy to get started. |
| 19 | + |
| 20 | +The links to click for all the content are below. |
| 21 | + |
| 22 | +You may want to watch `this very brief video <https://youtu.be/VPl2emXVJ1M>`_ that shows you what to expect when you click on the first link. |
| 23 | + |
| 24 | + |
| 25 | +Building an individual-based model |
| 26 | +==================================== |
| 27 | + |
| 28 | +* Part 1: Introduction to Colab, time steps, variables, print function, range function, "for" loops. [`Start <https://colab.research.google.com/drive/1QF_aUgIkM-H1JXJRBb9DSONohC2WEvbH?usp=sharing>`_] |
| 29 | + |
| 30 | +* Part 2: Python dictionaries, accessing and updating dictionaries [`Start <https://colab.research.google.com/drive/1VVSDFXGtIgJEqEgp1rqltUfluhuhdYW9?usp=sharing>`_] |
| 31 | + |
| 32 | +* Part 3: Time step loop, population loop, combining loops and using dictionaries [`Start <https://colab.research.google.com/drive/1TSGba5w_nuRXd7QAYWWPT2tMVccaqc8I?usp=sharing>`_] |
| 33 | + |
| 34 | +* Part 4: Generating random numbers/ages, round function, "if" statements, updating variable values, the first time step, all other time steps [`Start <https://colab.research.google.com/drive/1wq0BeCgVVWPj_SIFzsTyjA_KKzAUtDZb?usp=sharing>`_] |
| 35 | + |
| 36 | +* Part 5: Random choice method, pandas and using tables, using probabilities, "else" statements [`Start <https://colab.research.google.com/drive/1G-GHM-A6Z1dk0YBGI8cqX6EekJ5i-hrR?usp=sharing>`_] |
| 37 | + |
| 38 | +* Part 6: Adding body mass index (BMI), "elif" statements, creating and calling a function, docstrings [`Start <https://colab.research.google.com/drive/1gBYGIQK42XN2ovG-EFA7LQW_2dO_GC7f?usp=sharing>`_] |
| 39 | + |
| 40 | +* Part 7: Refactoring updating rules into functions [`Start <https://colab.research.google.com/drive/1FVKyP-51IjwW4A6CAmufuZGXx7e0sG0_?usp=sharing>`_] |
| 41 | + |
| 42 | +* Part 8: Visualizing changes in variable distribution over time, matplotlib and pyplot, values method [`Start <https://colab.research.google.com/drive/1_ZmPJPcsy6soCnDJSU7SeTElAJb7-rna?usp=sharing>`_] |
| 43 | + |
| 44 | +* Part 9: Adding blood pressure, ordering and data selection, append method [`Start <https://colab.research.google.com/drive/1PjHptwX-SkJepsFeqEhrDr738V2euRiO?usp=sharing>`_] |
| 45 | + |
| 46 | +* Part 10: Adding mortality, age-specific death rate, booleans, integrating deaths into the model [`Start <https://colab.research.google.com/drive/1fb8XkWEsCi-BVkzUtQKwYrrUej-aqCCg?usp=sharing>`_] |
| 47 | + |
| 48 | +* Part 11: CVD death risk, the math.exp method, adding cause of death, "None" keyword [`Start <https://colab.research.google.com/drive/1T7QWmeDBux6Y2N-OR3Pt80qJoAlPBcfB?usp=sharing>`_] |
| 49 | + |
| 50 | +* Part 12: Life years (person-years at risk), CVD death rate, simulating health policy intervention [`Start <https://colab.research.google.com/drive/1lsSSGO07vefkhjp5mF2BodRB2OhgtyAv?usp=sharing>`_] |
| 51 | + |
| 52 | +* Part 13: Adding time of death, running model with intervention, comparing results between groups [`Start <https://colab.research.google.com/drive/1_T14-Dv3G_oTMpRRIdu1VpXrPG0mHaci?usp=sharing>`_] |
| 53 | + |
| 54 | + |
| 55 | +Building a transmission model |
| 56 | +==================================== |
| 57 | +* Part 14: Introduction and breakdown of new model structure [`Start <https://colab.research.google.com/drive/1Yhf-aL4Qe8A3FsftrcSsoErFWRNvjwLf?usp=sharing>`_] |
| 58 | + |
| 59 | +* Part 15: Exercise: Adding vaccination variable to the new model [`Start <https://colab.research.google.com/drive/1-wHtdpFJu_wiDQvFz2Q4aAbtS-UsZcU4?usp=sharing>`_] |
| 60 | + |
| 61 | +* Part 16: Adding interactions to the model, the random sample method [`Start <https://colab.research.google.com/drive/1HmukuID6MLxrEhc5xQRV74-cwdhrFnND?usp=sharing>`_] |
| 62 | + |
| 63 | +* Part 17: Adding infection variables to the model (Section 1) [`Start <https://colab.research.google.com/drive/16I36MtjT9oho7IzlNqaT9AwHtIoDD2vw?usp=sharing>`_] |
| 64 | + |
| 65 | +* Part 18: Adding infection variables to the model (Section 2) [`Start <https://colab.research.google.com/drive/1lo06dzQ-z6D13E64MfMLdAHcA_YCUDD_?usp=sharing>`_] |
| 66 | + |
| 67 | +* Part 19: Finalizing our basic transmission model [`Start <https://colab.research.google.com/drive/1K4ZpgSkG3TAPft3ek_OTwZgVrMFSXwTq?usp=sharing>`_] |
| 68 | + |
| 69 | + |
| 70 | + |
| 71 | +Acknowledgments |
| 72 | +==================================== |
| 73 | +This content was created by `Prof Andrew Phillips <https://profiles.ucl.ac.uk/5430>`_ and `Dr Loveleen Bansi-Mantharu <https://profiles.ucl.ac.uk/1985-loveleen-bansi-matharu>`_ (both at University College London). |
| 74 | + |
| 75 | + |
| 76 | + |
0 commit comments