{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Discrete stochastic Erlang SEIR model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Author: Lam Ha @lamhm\n", "\n", "Date: 2018-10-03" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Calculate Discrete Erlang Probabilities\n", "\n", "The following function is to calculate the discrete truncated Erlang probability, given $k$ and $\\gamma$:\n", "\n", "\\begin{equation*}\n", "p_i =\n", "\\frac{1}{C(n^{E})}\n", "\\Bigl(\\sum_{j=0}^{k-1}\n", " \\frac{e^{-(i-1)\\gamma} \\times ((i-1)\\gamma)^{j}} {j!}\n", "-\\sum_{j=0}^{k-1}\n", " \\frac{e^{-i\\gamma} \\times (i\\gamma)^{j}} {j!}\\Bigr),\\quad\\text{for $i=1,...,n^{E}$}.\n", "\\end{equation*}\n", "\n", "where\n", "\n", "\\begin{equation*}\n", "n^{E} = argmin_n\\Bigl(C(n) = 1 - \\sum_{j=0}^{k-1}\n", " \\frac{e^{-n\\gamma} \\times (n\\gamma)^{j}} {j!} > 0.99 \\Bigr)\n", "\\end{equation*}\n", "\n", "**N.B. The formula of $p_i$ here is slightly different from what is shown in the original paper because the latter (which is likely to be wrong) would lead to negative probabilities.**" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "#' @param k The shape parameter of the Erlang distribution.\n", "#' @param gamma The rate parameter of the Erlang distribution.\n", "#' @return A vector containing all p_i values, for i = 1 : n.\n", "compute_erlang_discrete_prob <- function(k, gamma) {\n", " n_bin <- 0\n", " factorials <- 1 ## 0! = 1\n", " for (i in 1 : k) {\n", " factorials[i + 1] <- factorials[i] * i ## factorial[i + 1] = i!\n", " }\n", "\n", " one_sub_cummulative_probs <- NULL\n", " cummulative_prob <- 0\n", " while (cummulative_prob <= 0.99) {\n", " n_bin <- n_bin + 1\n", "\n", " one_sub_cummulative_probs[n_bin] <- 0\n", " for ( j in 0 : (k - 1) ) {\n", " one_sub_cummulative_probs[n_bin] <-\n", " one_sub_cummulative_probs[n_bin] +\n", " (\n", " exp( -n_bin * gamma )\n", " * ( (n_bin * gamma) ^ j )\n", " / factorials[j + 1] ## factorials[j + 1] = j!\n", " )\n", " }\n", " cummulative_prob <- 1 - one_sub_cummulative_probs[n_bin]\n", " }\n", " one_sub_cummulative_probs <- c(1, one_sub_cummulative_probs)\n", "\n", " density_prob <-\n", " head(one_sub_cummulative_probs, -1) - tail(one_sub_cummulative_probs, -1)\n", " density_prob <- density_prob / cummulative_prob\n", "\n", " return(density_prob)\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The implementation above calculates discrete probabilities $p_i$'s base on the cummulative density function of the Erlang distribution:\n", "\n", "\\begin{equation*}\n", "p_i = CDF_{Erlang}(x = i) - CDF_{Erlang}(x = i-1)\n", "\\end{equation*}\n", "\n", "Meanwhile, the estimates of $p_i$'s in the original paper seems to be based on the probability density function:\n", "\n", "\\begin{equation*}\n", "p_i = PDF_{Erlang}(x = i)\n", "\\end{equation*}\n", "\n", "While the two methods give slightly different estimates, they do not lead to any visible differences in the results of the subsequent simulations. This implementation uses the CDF function since it leads to faster runs." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simulate the SEIR Dynamics\n", "\n", "The next function is to simulate the SEIR (susceptible, exposed, infectious, recovered) dynamics of an epidemic, assuming that transmission is frequency-dependent, i.e.\n", "\n", "\\begin{equation*}\n", "\\beta = \\beta_0 \\frac{I(t)}{N}\n", "\\end{equation*}\n", "\n", "where $N$ is the population size, $I(t)$ is the number of infectious people at time $t$, and $\\beta_0$ is the base transmission rate.\n", "\n", "This model does not consider births and deads (i.e. $N$ is constant).\n", "\n", "The rates at which individuals move through the E and the I classes are assumed to follow Erlang distributions of given shapes ($k^E$, $k^I$) and rates ($\\gamma^E$, $\\gamma^I$)." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "#' @param initial_state A vector that contains 4 numbers corresponding to the\n", "#' initial values of the 4 classes: S, E, I, and R.\n", "#' @param parameters A vector that contains 5 numbers corresponding to the\n", "#' following parameters: the shape and the rate parameters\n", "#' of the Erlang distribution that will be used to\n", "#' calculate the transition rates between the E components\n", "#' (i.e. k[E] and gamma[E]), the shape and the rate parameters\n", "#' of the Erlang distribution that will be used to\n", "#' calculate the transition rates between the I components\n", "#' (i.e. k[I] and gamma[I]), and the base transmission rate\n", "#' (i.e. beta).\n", "#' @param max_time The length of the simulation.\n", "#' @return A data frame containing the values of S, E, I, and R over time\n", "#' (from 1 to max_time).\n", "seir_simulation <- function(initial_state, parameters, max_time) {\n", " names(initial_state) <- c(\"S\", \"E\", \"I\", \"R\")\n", " names(parameters) <- c( \"erlang_shape_for_E\", \"erlang_rate_for_E\",\n", " \"erlang_shape_for_I\", \"erlang_rate_for_I\",\n", " \"base_transmission_rate\" )\n", "\n", " population_size <- sum(initial_state)\n", " sim_data <- data.frame( time = c(1 : max_time),\n", " S = NA, E = NA, I = NA, R = NA )\n", " sim_data[1, 2:5] <- initial_state\n", "\n", " ## Initialise a matrix to store the states of the exposed sub-blocks over time.\n", " exposed_block_adm_rates <- compute_erlang_discrete_prob(\n", " k = parameters[\"erlang_shape_for_E\"],\n", " gamma = parameters[\"erlang_rate_for_E\"]\n", " )\n", " n_exposed_blocks <- length(exposed_block_adm_rates)\n", " exposed_blocks <- matrix( data = 0, nrow = max_time,\n", " ncol = n_exposed_blocks )\n", " exposed_blocks[1, n_exposed_blocks] <- sim_data$E[1]\n", "\n", " ## Initialise a matrix to store the states of the infectious sub-blocks over time.\n", " infectious_block_adm_rates <- compute_erlang_discrete_prob(\n", " k = parameters[\"erlang_shape_for_I\"],\n", " gamma = parameters[\"erlang_rate_for_I\"]\n", " )\n", " n_infectious_blocks <- length(infectious_block_adm_rates)\n", " infectious_blocks <- matrix( data = 0, nrow = max_time,\n", " ncol = n_infectious_blocks )\n", " infectious_blocks[1, n_infectious_blocks] <- sim_data$I[1]\n", "\n", " ## Run the simulation from time t = 2 to t = max_time\n", " for (time in 2 : max_time) {\n", " transmission_rate <-\n", " parameters[\"base_transmission_rate\"] * sim_data$I[time - 1] /\n", " population_size\n", " exposure_prob <- 1 - exp(-transmission_rate)\n", "\n", " new_exposed <- rbinom(1, sim_data$S[time - 1], exposure_prob)\n", " new_infectious <- exposed_blocks[time - 1, 1]\n", " new_recovered <- infectious_blocks[time - 1, 1]\n", " \n", " if (new_exposed > 0) {\n", " exposed_blocks[time, ] <- t(\n", " rmultinom(1, size = new_exposed,\n", " prob = exposed_block_adm_rates)\n", " )\n", " }\n", " exposed_blocks[time, ] <-\n", " exposed_blocks[time, ] +\n", " c( exposed_blocks[time - 1, 2 : n_exposed_blocks], 0 )\n", "\n", " if (new_infectious > 0) {\n", " infectious_blocks[time, ] <- t(\n", " rmultinom(1, size = new_infectious,\n", " prob = infectious_block_adm_rates)\n", " )\n", " }\n", " infectious_blocks[time, ] <-\n", " infectious_blocks[time, ] +\n", " c( infectious_blocks[time - 1, 2 : n_infectious_blocks], 0 )\n", "\n", " sim_data$S[time] <- sim_data$S[time - 1] - new_exposed\n", " sim_data$E[time] <- sum(exposed_blocks[time, ])\n", " sim_data$I[time] <- sum(infectious_blocks[time, ])\n", " sim_data$R[time] <- sim_data$R[time - 1] + new_recovered\n", " }\n", "\n", " return(sim_data)\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To run a simulation, simply call the $seir\\_simulation(\\dots)$ method above.\n", "\n", "Below is an example simulation where $k^E = 5$, $\\gamma^E = 1$, $k^I = 10$, $\\gamma^I = 1$, and $\\beta_0 = 0.25$ ($R_0 = \\beta_0\\frac{k^I}{\\gamma^I} = 2.5$). The population size is $N = 10,000$. The simmulation starts with 1 exposed case and everyone else belongs to the susceptible class. These settings are the same the the simulation 11 of the original paper.\n", "\n", "**N.B. Since this is a stochastic model, there is chance for the outbreak not to occur even with a high $R_0$.**" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "sim <- seir_simulation( initial_state = c(S = 9999, E = 1, I = 0, R = 0),\n", " parameters = c(5, 1, 10, 1, 0.25),\n", " max_time = 300 )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Visualisation" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nsfNEIUho/KW7u3v27NmpbgqANLO4NfM4FesnOjS9Q4tmx2HWVNVABgCYErqVf/rTn96+fXuq\nmwIgzY7qsUvB+gmzu07QYwcAaZHQrXzFihU/+MEPNm7cmOrWAEin+GCXil3F9scVsSPYAUAa\nJDTH7vrrrz948ODs2bNdLldk54l4dXV1yW8XgNSTrYZsN/SgJIQIp6DHbv9RPXasuwKAlEvo\nVivL8imnnHLKKaekujUA0sxarAeDqSplt5+hWABIr4SC3euvv57qdgDICKVIE02p2nxifzi6\nOMMtyx6FjWoAIOW41QIFzZxmp/plkewydmaPHUXsAGTKW2+9NW7cOIfDceTIkZO7gqqqkiS9\n8soryW1YivTVY/fQQw8lcomFCxcmqTEA0s1q1ijWJC0gK87eW8sMxL64bSeSeFkAiLjiiiua\nmprWrVvXx2N+/etfDxs27O233y4pKenXxTds2ODxeGbMmKEoyquvvjp16tSBNTZN+rrbfve7\n303kEicd7BYvXhy/8MLhcDz99NNCCL/fv2rVqq1bt4bD4fHjxy9cuHDw4MEncR7ACfWqeJLE\nYGcIcTC2KraaHjsAGdLW1jZx4sTS0tL+/sN77rnnggsumDFjhiRJX/jCF1LQtJToK9g999xz\nKf3Zfr//mmuuOf300yNfynJ0XPjee+/1+/3Lli2z2+1PPvnkHXfccd9998my3N/zKW08kB+U\nuBrF4Q7Znry/iY6oaii2vxArJwCklK7riqI8+eSTjz/+eENDQ2dn5x133LFgwYI5c+a8+eab\nkiStWbOmtrZW1/Ubbrjh9ddfb29vnzFjxooVK6ZPny6E2Ldv3/e///3169e73e758+fffffd\nF1xwwWuvvfbKK688/PDDmzZtslqt69ev/9KXvnTo0KEbbrjh73//e1tb27Rp0+66664zzjjD\n7/cXFxe/+uqrkfy3a9eumpqanTt3jhs37vHHH1++fHldXV1JScn8+fPvueceh8OR0qeir2B3\n0UUXpfRnd3R0VFZWVlRUxJ9samp6++23V6xYMXr0aCHEwoULv/nNb27bti3Sj5r4+VzpMgUy\ny+pOVSm7faGeInZVFradAArC9gO/f7vh/gFepLxozIVTftuvfyLLsqIo//u///vSSy8NHjz4\nN7/5zaJFi772ta+9/vrrF1xwQXV1dWR22emnnz5q1Kht27a5XK4777zzvPPOq6urczqd8+fP\n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\n5ptL/T766KPY2NjFixefOXMm3O0Km6Ae308//fSLL7747rvvegMWlAeAYYa3asGu70OxpV70\n2AHA4DGZTBl+559//muvvUZE2jBjVVXVmjVr0tLSTCbTggULDhw4oJ4vKytbuXKl2WxOSUm5\n4447HA4HEVVXV19//fVpaWkxMTHz5s376quviGj27Nl33nmndrtdu3ZxHFdeXt5lzZIkMQzz\n4osv5ubm3nLLLT004NChQ7NmzTKZTFOmTNmzZ08IP5CgHruPP/44z/MrV67U6XSJiYlCx7/C\ni4qKQtggAAgX3iK5q3nq33ax5QE9dhnosQOIMo+UVz1XU9/PSpJ57uDkcX37XpZlOY7z+JdJ\nX7FiRU5OzpEjR2JiYv70pz9dccUVRUVFRqPxmmuuycnJOXnyZGtr68qVK++///6nnnpq+fLl\nNpvt0KFDZrP5d7/73ZVXXnn69Okbbrjhf/7nf/7617+yLEtEb7755sUXX5yenj579uwua+Y4\n7m9/+9vbb789evTo7hqg1+tXrlx50UUX7dy5s76+/qabburnJxYoqGAny3JSUtIll1wSwhsD\nQKQR/PMnJCerSAzDKX2opMzfY2fjOAuH6VkA0eXfrfZWWer9uh61efpYg91uf+SRR5xO54oV\nK4jowIEDe/fufeeddxISEojokUceefrpp99///2xY8fu379/8+bNqampRPTKK69UVFQcPHhw\n7969x44dGzFiBBH98Y9//Nvf/rZt27bVq1fffffdX3311fz58yVJevvttx999NHual69ejUR\nrVixYvr06T00IDMzs6ioaMeOHSaTyWQy/fKXv9y1a1c/PzRNUMHuyy+/DNX9ACBitU+MVUhs\nZYXYvjxbtckTGRiHBYCB9/zzz//9739Xy21tbVOmTNm6dWtubi4RFRQUEFGnHbMKCws5jmMY\nRr2GiKZNmzZt2rS33nqLZdlx43w9hUajMTs7u6ioKDk5edGiRW+99db8+fN37dplt9tXrVr1\n4YcfdlmzWhg1apRa6K4BRMQwTHZ2tnpG7dsLlXP4e9rlcu3fv/+dd96pq6sjIlEUe/0WABhC\nApey6/NorNZjh11iAWAQrF69+tChQ4cOHdq9e3dcXNy6deuWLFmifsloNBKR0+lUAjz44IMM\nwxCRovQyKCHLsjqke8MNN2zZskVRlDfeeGP58uUWi6W7mtVv1Ov1PTfA7XYTEePfmCe0gSrY\n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\nGjZu3JiWltbn2wDA0ML7509ILlYRGYbv6W/wjovYYSgWIHoJVsVZ1d9KmHNcMSk+Pn7lypUr\nV6587LHHfv3rX99+++3XX399p2tk2fdMYxjmueeee+CBBz766KMPPvjgT3/606uvvsrzPJ21\nLq86GOp0Og0GQ+B5dZjVG/DcE0Wx53m4gTWwLKvX63u9S58F9QieMGFCbW0tgh1A9Ghfyk4h\nbwuri++85UwgbRE7gWFGYBE7gCiWucI5aPcqKSm59957H3/88aysLO3kvHnzNm7c6Ha79Xo9\nwzDqxAgi0gYYRVFsbGzMycm544477rjjjv/8z/985plnNm7cqChKfn7+pEmTiGjfvn379u1b\ntGgRER06dGj27Nnq9xYWFubl5anlkydPqgWXy1VeXh7YhrOdOHFi2bJlROTxeCoqKjIzM7Uv\njR49uoe79EFQQ7EbNmy4++67v//++z7fBgCGFt7SnuTE3uZPaEOxaQLPMcwANgsAwC89Pf3E\niRNXXXXV1q1bi4qKSkpK3n///QceeGDJkiUmk0kQhJEjR+7YsYOIHA7HU089pX7Xyy+/PH36\n9O+++06W5aqqqqNHj44ePXrq1KmzZs265557zpw5U1BQsG7dumPHjk2YMGHRokX33HNPSUmJ\n1+t99tlnJ0+eXFFRodbzyiuvHDlyxOVyPfroo5IkqbktJibm1KlTTU1NnZq6adOmI0eOeDye\n9evXi6J49dVXa1/q+S59EFSw++1vf1tQUDB16lSLxZJzlj7fGwAiVuBSdt7mXh4U5f75X9hM\nDAAGjboI8OLFi++5556JEyeOHj36vvvuu/baa9988031gmeeeea9994bNWrUkiVL7rjjDiIS\nRfHmm2/+2c9+tnLlSqPROH369Nzc3Mcff5yItm7dajQaJ02adOGFF15wwQWPPfYYEb322msZ\nGRlTpkxJSEh49dVXt23bpo1e3nnnnbfffntcXNxLL720ZcuWxMREIlq3bt0zzzwzefJkrZHq\niO1vfvObdevW2Wy2V155ZcuWLZ0WGOnhLn3ABLPT60UXXaTTdfuK0b/MAAAgAElEQVRCtLZM\ny5BQV1cXknqMRqPJZGppafF4gp69M9yZzWaPx4MPRGM2mw0GQ1NT0+AvUNl/socpfNb36Imb\n6UyY18U+0ZrsYycdskxE19usGzNSe7jSarU6HI6h+IEMEKvVqtPpGhoatBeAwGazNTc3Yxdy\n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\nRU5ErkJggg==", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "library(ggplot2)\n", "\n", "ggplot(sim, aes(time)) + \n", " geom_line(aes(y = S, colour = \"Susceptible\"), lwd = 1) + \n", " geom_line(aes(y = E, colour = \"Exposed\"), lwd = 1) +\n", " geom_line(aes(y = I, colour = \"Infectious\"), lwd = 1) +\n", " geom_line(aes(y = R, colour = \"Recovered\"), lwd = 1) +\n", " xlab(\"Time\") + ylab(\"Number of Individuals\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Test Case" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "-------------------\n", " Test PASSED\n", "-------------------\n", "\n" ] } ], "source": [ "set.seed(12345)\n", "test_sim <- seir_simulation( initial_state = c(S = 9999, E = 1, I = 0, R = 0),\n", " parameters = c(5, 1, 10, 1, 0.25),\n", " max_time = 100 )\n", "test_result <- as.matrix( tail(test_sim, 3) )\n", "\n", "correct_result <- matrix( c( 98, 7384, 794, 1015, 807,\n", " 99, 7184, 864, 1068, 884,\n", " 100, 6986, 920, 1144, 950), nrow = 3, byrow = T )\n", "\n", "n_correct_cells <- sum(correct_result == test_result)\n", "cat(\"\\n--------------------\\n\")\n", "if (n_correct_cells == 15) {\n", " cat(\" Test PASSED\\n\")\n", "} else {\n", " cat(\" Test FAILED\\n\")\n", "}\n", "cat(\"--------------------\\n\\n\")" ] } ], "metadata": { "kernelspec": { "display_name": "R", "language": "R", "name": "ir" }, "language_info": { "codemirror_mode": "r", "file_extension": ".r", "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", "version": "3.4.4" } }, "nbformat": 4, "nbformat_minor": 2 }