Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
Assignment
Instructions
This assignment is worth 7.5% of the final grade. It is marked out of 75 points.
Provide a solution as a Python notebook and html with output. Your solution should include well documented code with the calls to reproduce your results.
Include markdown cells with explanation of the results for each question.
Submit the ipynb and html to Canvas:
. the .ipynb file with outputs from the executed code
. a .html version of the notebook with all outputs of executed code showing. (To get this format, export from the notebook viewer or use nbconvert.)
Within the notebook, set the random seed to some integer of your choosing (using random.seed) so that the marker can recreate the same output that you get. You can reset the seed before each question if you like.
Question 1: Simulating random variables and exploring relationships be- tween distributions (20 Points)
(a) Using the inversion sampling technique described in Section 9.2 of the work- book, write a method rand exp that takes a rate parameter λ as input and produces as output an exponentially distributed random variable with rate pa- rameter λ . Use random. random() to generate uniform random numbers. (4 marks)
(b) Demonstrate your rand exp is correct by comparing the mean and variance of the output to theoretical values, and also by comparing the output of your method to a library method. (4 marks)
(c) Use rand exp to write a method rand poiss that takes a parameter λ as input and produces as output a Poisson distributed random variable with parameter λ . (4 marks)
(d) Use rand exp to write a method rand gamma that takes an integer parameter k and rate parameter θ as input and produces as output a gamma distributed random variable with parameters k and θ . (4 marks)
(e) Explain why your rand gamma method lacks the generality you would typically want for simulating gamma distributed random variables. (4 marks)
Question 2: Simulating outbreaks (55 Points)
A standard model in epidemiology is the SIR model of infectious disease spread. It has a population of N hosts being divided into 3 compartments, so is known as a compartmental model:
. the S compartment of those who are susceptible to the disease
. the I compartment of those who are infectious with the disease
. the R compartment of those who are recovered from the disease and now im- mune (or, more generally, those who are removed from the epidemic through recovery with immunity, or isolation, or death, etc).
We assume that S + I + R = N.
The model can be deterministic or stochastic. We consider the stochastic version here. Times between all events are exponentially distributed with the following rates which depend on the current state of the outbreak, assumed to be (S,I, R):
. the rate of transmissions is βSI/N and the new state is (S − 1, I + 1, R), and . the rate of recoveries is γI and the new state is (S, I − 1, R + 1).
You can use any functions from the random module that you like for this question. Probably the only one you need is random. expovariate.
(a) At what point will the epidemic finish? (2 marks)
(b) Write method sim SIR that takes as inputs N, I0 ,β,γ and produces as output a list of the event times and the number susceptible, infected and recovered at each time point. All outbreaks start at time t = 0 with S0 = N −I0 . (8 marks)
(c) Run a simulation with N = 1000, I0 = 10,β = 3,γ = 2 and plot the number infected through time. (4 marks)
(d) Run an experiment and report the results to approximate the probability that a large outbreak occurs using the same parameters as above but with only one initial infected. What has usually happened if there is no large outbreak? (6 marks)
(e) The reproduction number R0 = β/γ of the epidemic is the mean number of transmissions by a single infected in an otherwise susceptible population (Note there is a bit of a notation clash: we are not referring to the number of recovered individuals at time 0 in this case.) Using the same parameters as in part (c) but allowing β to vary, select five values of R0 above and below 1 to explore whether or not you get an outbreak. Report and explain your results. (6 marks)
(f) Suppose now that the infectious period is fixed, so that hosts are infectious for exactly 1 time unit. Is the process still Markov? How would you go about writing code to simulate such an epidemic? (You do not have to actually write the code here.) (4 marks)
(g) Another common model breaks the infectious period up into m sub-periods, I1 , I2 ,..., Im so is an SI1 I2 ...ImR model. Assuming the amount of time each individual spends in compartment Ij is exponential with rate γ, what is the distribution of the total time spent in I1 to Im? (4 marks)
(h) Drawing on what you know about infections, explain why neither a fixed length nor an exponential distributed infectious period is a great model and why the m sub-period model may be preferable. What computational advantage does this formalism have that makes it easier to work with than some arbitrary distribution for the infection period? (6 marks)
(i) Consider another compartmental model where there is no immunity to an in- fection so individuals recover straight back into a susceptible state and can get infected again. This is know as birth death or SIS process. If we look at only the type of events and ignore the waiting times between them, this process can be described as a simple Markov chain. If the population size were fixed at N = 5, and using transition rates (S, I) → (S − 1, I + 1) at rate βSI/N and (S, I) → (S + 1, I − 1) at rate γI, write down the transition matrix for the chain. (5 marks)
(j) Implement an SIS process which takes inputs N, I0 ,β,γ,t, where tis the number of iterations (i.e., infection or recovery events) the simulation runs for. (6 marks)
(k) Run a simulation study using the SIS simulator with N = 1000, I0 = 10,β = 3,γ = 2 to determine the long term behaviour of this process. Discuss your results.