spatial modeling of an epidemic using differential...
TRANSCRIPT
Spatial modeling of an epidemic using
differential equations with parameters
Zixin He
Professor Ivan T. Ivanov
Vanier College
Abstract
In this paper, the classical SIR model has been expanded to accommodate the modeling
of additional characteristics of an outbreak. A new population subgroup has been added
to account for the effects of a latent period on the infectious cycle. New parameters have
also been introduced to model for an imperfect post-recovery immunity acquisition,
temporary immunity period and global immunization efforts. This new model was then
expanded for computation on a population grid. Cells are linked through a proximity effect
algorithm and the effect of air travel through major transportation hubs is predicted.
Incorporating these long distance connections allows for an accurate depiction of the
spread of most infectious diseases if left uncontrolled. When compared the current Zika
epidemic, the model proves to be reliable with the correct set of parameters.
HE 2
Table of Contents Abstract ........................................................................................................................... 1
Introduction ..................................................................................................................... 3
Origin and current state of epidemic studies ................................................................ 3
Mechanisms in an Outbreak ........................................................................................ 4
Reporting of Population Counts ................................................................................... 5
Resolution of the model ............................................................................................... 5
Constructing the SEIR Model .......................................................................................... 6
Defining Groups ........................................................................................................... 6
Summary of the System .............................................................................................. 7
Total Population ........................................................................................................... 8
Susceptible Population ................................................................................................ 9
Exposed Population ................................................................................................... 11
Infectious Population ................................................................................................. 12
Recovered Population ............................................................................................... 13
Deceased Population ................................................................................................. 14
Density of Infected Population ................................................................................... 14
Solving the System Using Euler’s Method ................................................................. 16
Translation to MATLAB ................................................................................................. 18
Downsizing the Initial Population Data ....................................................................... 18
Setup of the Algorithm ............................................................................................... 18
Initialization Script ...................................................................................................... 20
Main Program ............................................................................................................ 22
Saving the Results ..................................................................................................... 24
Case Study – Zika Virus ................................................................................................ 27
Background ............................................................................................................... 27
Observed Trends of the Epidemic ............................................................................. 27
Predicted Trends by the SEIR Model ......................................................................... 30
Comparison ............................................................................................................... 31
Conclusion .................................................................................................................... 31
References ....................................................................................................................... I
HE 3
Introduction
The apocalyptic scenario of a disease outbreak decimating human populations has been
visited many times in all media genre. In most media, the fear is the zombie apocalypse,
a scenario where an out of control fungal infection turns individuals into mindless bodies,
leaving behind few survivors who have to fend themselves of the infected. It is at the
center of the TV series the Walking Dead and the game franchise Left4Dead. The United
States Strategic Command even hosts a contingency plan for such an outbreak (United
States Strategic Command, 2011). More recently, the global surge of terrorism has
increased fears of a biological attack involving anthrax or a mutated strain of smallpox. A
newly released game, Tom Clancy’s The Division, lets players experience virtually the
consequences of one such possibility. However, what is the actual likelihood for an
outbreak to spiral out of control and how will it play out?
This paper will attempt to answer this question by applying a generalised epidemic model
derived from the SIR model onto a two dimensional population count array representing
the global population. The epidemic model will take into account the infection and spread
mechanism of most common pathogen-caused diseases and the planned response of
relevant authorities. A MATLAB script will compute the expected outcomes of any given
outbreak from appropriately formatted population data.
Origin and current state of epidemic studies
The study of the spread of viral diseases has been central in improving living conditions
in the last few centuries. Renewed understanding of the causes of diseases such as the
plague, syphilis and smallpox has allowed doctors to prevent outbreaks. Lately, the field
of epidemic modeling emerged to quantitatively model and predict the trends of an
epidemic and to prepare appropriate response measures to limit the impact of such
outbreaks. The first attempt is by Daniel Bernoulli and is published in 1766 in Mémoires
de Mathématique et de Physique, présentés à l'Académie Royale des Sciences.
(Bernoulli, 2004). This predates the discovery of definite evidence for the germ theory for
diseases by Louis Pasteur circa 1856 (Lanska, 2014). W. O. Kermack and A. G.
McKendrick published the mathematical model that laid the foundation work for modern
epidemic modeling in 1927. In three separate papers, they proposed a deterministic
HE 4
model based on the rate of infection and recovery within a population (Kermack &
McKendrick, Contributions to the Mathematical Theory of Epidemics - I., 1991) (Kermack
& McKendrick, Contributions to the Mathematical Theory of Epidemics - II. The Problem
of Endemicity, 1991) (Kermack & McKendrick, Contributions to the Mathematical Theory
of Epidemics - III. Further Studies of the Problem of Endemicity, 1991). Their work formed
the basis for later more complex models.
Stochastic and deterministic models can be used to describe and predict an epidemic
analytically. The stochastic method evaluates individuals from a population for contact
rates and odds of infection; the deterministic method separates the population into groups
at different stages of infection and evaluates the flow rate from one group to another. The
former is more accurate within small populations as the odds can be computed rather
quickly. However, as the number of individuals grows, it becomes unfeasible to calculate
the status of each individual during the course of a simulated outbreak. The latter is more
adapted for large populations and for lengthier predictions. Since most outbreaks are
expansive and lengthy in nature, they are usually modeled using the deterministic method.
Mechanisms in an Outbreak
A disease outbreak is always caused by an infectious disease. An infectious disease
could be of the viral, bacterial, fungal or parasitic in nature. In an outbreak, isolated cases
spawn additional cases that cause the number of patients to increase. If left uncontrolled,
the outbreak could affect entire regions, which would lead the outbreak to be upgraded
to the status of an epidemic. If the outbreak spreads to outside the country or continent,
it will be considered a pandemic. Some diseases are endemic. These diseases
recurrently infect people in a particular region. They are mostly transmitted by insects or
animals. Due to the host being hard to target, the infection rate remains at an equilibrium
with the quality of care and prevention provided. Outbreaks caused by diseases of this
nature adhere to a different spread mechanism that is not covered by the system currently
under consideration.
For a given infectious disease, the evolution of an outbreak within a population follows a
small set of rules. Within a population, some people are susceptible to the given disease
while others are not. Among those who are susceptible, some become infected by the
HE 5
disease while others are not. Most diseases present a latent period during which the
patient is not capable of transmitting the disease. After this short period however, the
infected person will become infectious and may transmit the disease through different
medium. Then, those who recover or die due to the disease would do so at a predictable
rate. Usually, those who recover also gain immunity and reintegrates the population
without returning to a susceptible state. Those who perish would obviously not count in
the equation anymore.
Reporting of Population Counts
Population census is a laborious and continuous work of collecting data. While it is
possible to record any populations in a case by case basis, most governmental statistical
agencies proceed by estimates based on census data. The population data used for this
paper is the fourth version of the collection Gridded Population of the World hosted on
NASA's Socioeconomic Data and Applications Center (Center for International Earth
Science Information Network - CIESIN - Columbia University, 2015).
The particular dataset used provides population number on a grid subdivided in 30 arc-
second cells. The fourth version is based on 2010 census data and uses extrapolation for
the years 2015, 2020. Given the possibility of error and misreporting for some regions of
the world, the entirety of the data is adjusted to the numbers provided by the United
Nations for consistency in between regions.
Given the small size of the divisions, loading the raw data set requires an enormous array
of 43200 by 17400. Since each cell also has its population evolution calculated using
Euler’s Method, each cell requires a few large arrays to hold the values for each steps
calculated. This causes memory requirements to balloon beyond what most computers
can meet. Enlarging the subdivisions by a factor of 200 will preserve fidelity while
drastically reducing memory requirements and computation time.
Resolution of the model
The downscaled model is presented in a grid of 87 by 216 cells. They span from -60° to
85° in latitude and covers the whole 360° in longitude. This means that each grid is 100
square arc-minutes, which is approximatively a square with sides of 186 kilometers at the
HE 6
equator. To put this in perspective, the city of Toronto and its suburbs has a radius of
about 35 kilometers.
Constructing the SEIR Model
The previous description of the population dynamics during an outbreak can be
mathematically modeled for any population at any given location. Since individuals cannot
be in any two states simultaneously, individuals can only move from one state to another.
The rate of change of the groups represents the flow of individuals between states. This
thus allows establishing a first order differential equation system. The current system is
inspired by most papers on the reference list (Benito M. Chen-Charpentier, 2010) (Bonnie
Kegan, 2005) (Huang, 2016) (Cunlai Pu, 2016) (Qingchu Wu, 2016) (Zhidong Teng, 2016)
(E. Ahmed, 2007).
It is possible to establish the differential equations based on proportions or actual
numbers. Since the raw population density data provides actual numbers, it is preferable
to establish a system designed in terms of actual number of individuals. The constants of
the system would dictate the portion of any group that would transition to another state in
any period.
Defining Groups
The system used in the paper will describe the evolution of five distinct subgroup of a
given population. It will also have a subgroup for the number of deceased individuals. To
accommodate for the usually small time scales of epidemics, time is measured in days
and is calculated forwards from a given starting point. It is represented by the variable 𝑡𝑡.
The location is given as a 𝑥𝑥, 𝑦𝑦 coordinate and constants that dictates the behaviour of the
system are represented using lowercase Greek alphabet. Functions are given using
capital Roman alphabet.
The total population over time at a location 𝑥𝑥,𝑦𝑦 is defined as
𝑃𝑃𝑥𝑥,𝑦𝑦(𝑡𝑡).
The susceptible population over time at a location 𝑥𝑥,𝑦𝑦 is defined as
𝑆𝑆𝑥𝑥,𝑦𝑦(𝑡𝑡).
HE 7
The exposed population over time at a location 𝑥𝑥,𝑦𝑦 is defined as
𝐸𝐸𝑥𝑥,𝑦𝑦(𝑡𝑡).
The infected population over time at a location 𝑥𝑥,𝑦𝑦 is defined as
𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡).
The recovered population over time at a location 𝑥𝑥,𝑦𝑦 is defined as
𝑅𝑅𝑥𝑥,𝑦𝑦(𝑡𝑡).
The effective density of the infectious population over time at a location 𝑥𝑥,𝑦𝑦 is defined as
𝑇𝑇𝑥𝑥,𝑦𝑦(𝑡𝑡).
The deceased over time at a location 𝑥𝑥,𝑦𝑦 is defined as
𝐷𝐷𝑥𝑥,𝑦𝑦(𝑡𝑡).
Summary of the System
The entire system is as follows:
⎩⎪⎪⎨
⎪⎪⎧𝑑𝑑𝑆𝑆𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑡𝑡= 𝛼𝛼𝑆𝑆𝑥𝑥,𝑦𝑦(𝑡𝑡) − 𝛽𝛽𝑇𝑇𝑥𝑥,𝑦𝑦(𝑡𝑡)𝑆𝑆𝑥𝑥,𝑦𝑦(𝑡𝑡) + (1 − 𝛿𝛿)𝛾𝛾𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝜅𝜅𝑅𝑅𝑥𝑥,𝑦𝑦(𝑡𝑡) − 𝑉𝑉(𝑡𝑡)
𝑑𝑑𝐸𝐸𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑡𝑡= (𝛼𝛼 − 𝜖𝜖)𝐸𝐸𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝛽𝛽𝑇𝑇𝑥𝑥,𝑦𝑦(𝑡𝑡)𝑆𝑆𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑡𝑡= (𝛼𝛼 − 𝛾𝛾 − 𝜇𝜇)𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝜖𝜖𝐸𝐸𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑅𝑅𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑡𝑡= (𝛼𝛼 − 𝜅𝜅)𝑅𝑅𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝛿𝛿𝛾𝛾𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝑉𝑉(𝑡𝑡)
(1)
The possible transfers between groups can be represented with the following flowchart.
S E I
R
D 𝛽𝛽 𝜖𝜖 𝜇𝜇
𝛿𝛿𝛾𝛾 𝜅𝜅
𝑉𝑉(𝑡𝑡)
(1 − 𝛿𝛿)𝛾𝛾
HE 8
By definition, the functions for the various subpopulations must obey the constraints:
�𝑃𝑃𝑥𝑥,𝑦𝑦(𝑡𝑡) = 𝑆𝑆𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝐸𝐸(𝑥𝑥,𝑦𝑦)(𝑡𝑡) + 𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝑅𝑅𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑑𝑑𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑡𝑡=𝛼𝛼𝑃𝑃𝑥𝑥,𝑦𝑦(𝑡𝑡) − 𝑑𝑑𝐷𝐷𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑡𝑡
(2)
The constants to be defined for the system are:
𝛼𝛼 Average daily natural population growth constant
𝛽𝛽 Effective contact rate
1𝛾𝛾 Infectious period in days
𝛿𝛿 Ratio for immunization after infection
1𝜖𝜖 Latent period in days
1𝜅𝜅 Immunized period in days
𝜇𝜇 Death rate from epidemic disease
The meaning of each functions, terms and constants are explained in the subsequent
sections.
Total Population
The total population function represents the total number of individual in any given cell of
the simulation. Under normal circumstances, it varies with births, deaths and migration.
Since the data is driven by census numbers, it represents the total number of residents
of the cell. In a circumstance such as a disease outbreak, it is expected that changes in
population due to migration would be minimal as it is not a usual response to an outbreak.
This allows for disregarding the effect of migrations which are out of the scope of this
model.
The following equation describes the evolution of the total population in a given location
𝑥𝑥,𝑦𝑦 over time.
𝑑𝑑𝑑𝑑𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑡𝑡=𝛼𝛼𝑃𝑃𝑥𝑥,𝑦𝑦(𝑡𝑡) − 𝑑𝑑𝐷𝐷𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑡𝑡 (3)
HE 9
The first term describes the natural population growth. The α constant is the population
growth constant. The growth constant is taken as the daily percent change in population
due to births and deaths from other causes than the epidemic. Due to the data not being
available at a local level, the global average is used. Given the usually small period of
epidemic outbreaks, influence from the variability of the growth constant is different
regions of the world would be negligible. This term will be present in all the equations
defined in the system (1) as all subpopulations are expected to grow at the natural rate.
The term 𝑑𝑑𝐷𝐷𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑡𝑡 describes the death rate only for those dying from the disease of the
outbreak. These deaths can be counted apart from the population growth constant as the
population growth counts deaths that would have occurred without the outbreak. As such,
no deaths are counted twice. Death in this system can only occur either due to the
outbreak, or due to something other than the outbreak.
By the definition of the population group, the following equation also applies. It is the sum
of the susceptible, exposed, infectious and recovered populations in any given cell. In
other words, it is the total number of people alive in the cell.
𝑃𝑃𝑥𝑥,𝑦𝑦(𝑡𝑡) = 𝑆𝑆𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝐸𝐸(𝑥𝑥,𝑦𝑦)(𝑡𝑡) + 𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝑅𝑅𝑥𝑥,𝑦𝑦(𝑡𝑡) (4)
While the necessity of computing the population number through both equations (3) and
(4) is not immediately apparent, both equations should produce the same graph from an
initial population. This can be used to rule out runaway programming errors by comparing
the theoretical total from equation (3) to the sum from equation (4). This can be
implemented as a verification for calculation mistakes and rounding errors occurring
within the system.
Susceptible Population
The susceptible population represents individuals who are at risk of falling ill after
exposure to the disease. Usually, this group forms the majority of the population at the
onset of an outbreak. Every non-immunized individual is considered at risk and are
classified as susceptible. Given that immunity is inherited through maternal milk,
susceptible mothers will lead to susceptible children unless the infant is immunized
HE 10
through other means. The growth of the susceptible population will have the exponent 𝛼𝛼,
as childbirth and death from other causes than the epidemic persist during the epidemic.
However, the number of susceptible individuals could also drop due to successful
immunization during the outbreak. Depending on the disease, individuals may acquire
immunity if they recover from the disease. However, some diseases with high virulence
may present itself in multiple strains that increase the chances of reinfection. Other
diseases simply cannot be unimmunized against, which means a straight transit from the
infected state back to the susceptible state.
This susceptible population group is modeled by the following equation.
𝑑𝑑𝑆𝑆𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑡𝑡= 𝛼𝛼𝑆𝑆𝑥𝑥,𝑦𝑦(𝑡𝑡) − 𝛽𝛽𝑇𝑇𝑥𝑥,𝑦𝑦(𝑡𝑡)𝑆𝑆𝑥𝑥,𝑦𝑦(𝑡𝑡) + (1 − 𝛿𝛿)𝛾𝛾𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝜅𝜅𝑅𝑅𝑥𝑥,𝑦𝑦(𝑡𝑡) − 𝑉𝑉(𝑡𝑡) (5)
The first term, 𝛼𝛼𝑆𝑆𝑥𝑥,𝑦𝑦(𝑡𝑡) , describes the population’s natural growth, the second term,
𝛽𝛽𝑇𝑇𝑥𝑥,𝑦𝑦(𝑡𝑡)𝑆𝑆𝑥𝑥,𝑦𝑦(𝑡𝑡), new infections, the third term, (1 − 𝛿𝛿)𝛾𝛾𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡), those who recover from an
infectious state without immunization, the forth term, 𝜅𝜅𝑅𝑅𝑥𝑥,𝑦𝑦(𝑡𝑡), those who lose immunity
and the fifth term, 𝑉𝑉(𝑡𝑡), the rate of immunization by healthcare authorities.
The reasoning behind the first term is similar to the natural population growth for the total
population. More on this term and subsequent similar terms can be found in the previous
section.
The second term describes the individuals who contracts the disease of the outbreak and
who transitions to the latent phase. It is defined by the effective contact rate and the
density of the infectious population. 𝑇𝑇𝑥𝑥,𝑦𝑦(𝑡𝑡) is the function for the density of the infectious
population. It is a weighted ratio of the total infectious population to the total surviving
population in a cell and the surrounding cells. This function also implements a method of
interconnecting cells containing cities that act as major transportation hubs, modeling the
rapid transmission vector that is air travel. This function is further described in its own
section.
𝛽𝛽 represents the effective contact rate. It is a value that helps quantify the virulence of a
disease in conjunction with the function for the density of the infectious population.
Transmission can be done through multiple vectors, such as surface contact, bodily fluids,
HE 11
airways or intercourse. Each of these vectors have different contact frequencies and not
all contacts transmit the disease. For example, a disease transmittable only through
intercourse will have a much lower contact rate than a disease transmittable through the
airways. However, the former may present a much higher rate of effective contact. The
effective contact rate may also take into account the quarantine measures taken by the
authorities. However, similarly to the population growth rate, the lack of data makes
modeling the effects of emergency healthcare measures more difficult. It is preferable to
use this model without accounting for quarantine or immunization campaigns as a
reference point to measure the effectiveness of the containment efforts undertaken.
The term 𝜅𝜅𝑅𝑅𝑥𝑥,𝑦𝑦(𝑡𝑡) represents population losing immunity and returning to a susceptible
state. More about this is elaborated in the section for the recovered population.
𝑉𝑉(𝑡𝑡) represents a possible world wide immunization effort. Due to the lack of data, this
function is provided solely for visualizing the impact of an appropriate immunization effort.
Depending on the specified function, immunization may occur in the early stages or
towards the later stages of the outbreak. The function would take into account the size of
the infectious population. However, it is not a simple task to evaluate the immunization
effort that could be expected in different regions of the world such that this implementation
remains a rough visualization of the effect of a concerted global immunization effort.
Exposed Population
The exposed population represents individuals who were infected but who are not
infectious. These people may or may not develop symptoms and are not contributing to
the spread of the disease yet. The current model makes the assumption that the latent
period is uniform across the population and that the disease cannot be cured during its
latent period. The formula for this group is the following:
𝑑𝑑𝐸𝐸𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑡𝑡= 𝛼𝛼𝐸𝐸𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝛽𝛽𝑇𝑇𝑥𝑥,𝑦𝑦(𝑡𝑡)𝑆𝑆𝑥𝑥,𝑦𝑦(𝑡𝑡) − 𝜖𝜖𝐸𝐸𝑥𝑥,𝑦𝑦(𝑡𝑡) (6)
Simplified, it is:
𝑑𝑑𝐸𝐸𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑡𝑡= (𝛼𝛼 − 𝜖𝜖)𝐸𝐸𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝛽𝛽𝑇𝑇𝑥𝑥,𝑦𝑦(𝑡𝑡)𝑆𝑆𝑥𝑥,𝑦𝑦(𝑡𝑡) (7)
HE 12
As expected, the group of newly infected individuals represented by 𝛽𝛽𝑇𝑇𝑥𝑥,𝑦𝑦(𝑡𝑡)𝑆𝑆𝑥𝑥,𝑦𝑦(𝑡𝑡) adds
back to the exposed population. The term 𝜖𝜖𝐸𝐸𝑥𝑥,𝑦𝑦(𝑡𝑡) represents the group of infected
individuals who are transitioning out of the latent period. The constant 𝜖𝜖 is the inverse of
the average latent period duration in days. If the disease does not present an observable
latent period, this can be expressed by using a large value for 𝜖𝜖.
Infectious Population
The infectious population is the group of individuals who have contracted the disease and
who are capable of transmitting the disease. They may or may not present symptoms and
thus may or may not be under quarantine. They thus are the source of new infected
individuals. As explained in the previous section, effect from quarantine is not modeled
due to the lack of homogeneity across geographic regions in terms of epidemic response
and health care capacity.
The infectious population will increase at the same rate of the exposed population exits
from latent period. It would decrease with people recovering and dying from the disease.
The formula is as follows:
𝑑𝑑𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑡𝑡= 𝛼𝛼𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝜖𝜖𝐸𝐸𝑥𝑥,𝑦𝑦(𝑡𝑡) − 𝛾𝛾𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡) − 𝜇𝜇𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡) (8)
Combining terms,
𝑑𝑑𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑡𝑡= (𝛼𝛼 − 𝛾𝛾 − 𝜇𝜇)𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝜖𝜖𝐸𝐸𝑥𝑥,𝑦𝑦(𝑡𝑡) (9)
The two new constants, 𝛾𝛾 and 𝜇𝜇, represent the recovery rate and the death rate. The
recovery rate is the inverse of the average time to recovery and the death rate is the rate
at which people die per day due to the disease.
The first term represents the growth of the infectious population. The second term
represents the rate of new infected individuals and is present in equation (6).
The new term 𝛾𝛾𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡) represents the rate of people recovering or exiting from the
infectious phase. The mechanics of the constant 𝛾𝛾 is similar to the 𝜖𝜖 constant. 𝛾𝛾 is the
inverse of the average infectious period. The patients may not have fully recovered,
however, they are not at risk of transmitting the disease and thus are leaving the infectious
HE 13
population. In general, symptoms would subside at the same time as the person cease
to be infectious such that a person leaving the infectious state can be considered
recovered.
The term 𝜇𝜇𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡) was first encountered in the population equation. It represents the death
rate from the disease itself. Death from the disease is counted only within the infectious
population and not in the exposed population because death would not arise in the latent
period as symptoms are not yet present. If an exposed individual dies during the latent
period, it is most likely due to other causes and is calculated in the term for the growth
rate of the exposed population. In a similar manner, death during the infectious phase
may not be attributed to the disease. These cases are calculated in the term for the growth
of the infectious population.
Recovered Population
This is the group for those who have immunity, through either immunization or recovery
from disease. This population cannot be infected or carry the disease. This group thus
acts as a spectator group similar to the deceased population as they do not participate
anymore in the infectious cycle. Part of the population can be considered recovered
before the outbreak, either through previous infection with the disease or through
immunization.
The recovered population increases with people recovering from the disease and
acquiring immunity and people who are immunized through a vaccination campaign. The
formula is as follows.
𝑑𝑑𝑅𝑅𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑡𝑡= 𝛼𝛼𝑅𝑅𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝛿𝛿𝛾𝛾𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡) − 𝜅𝜅𝑅𝑅𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝑉𝑉(𝑡𝑡) (10)
Condensed,
𝑑𝑑𝑅𝑅𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑡𝑡= (𝛼𝛼 − 𝜅𝜅)𝑅𝑅𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝛿𝛿𝛾𝛾𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡) + 𝑉𝑉(𝑡𝑡) (11)
The new constant 𝛿𝛿 represents the ratio for someone to acquire immunization after
recovery from the disease. For some diseases, it is impossible to acquire immunity. This
can be indicated by setting the initial recovered population to zero and the ratio for
HE 14
acquiring immunity to zero. For other diseases, the immunity may be temporary. This is
where the term 𝜅𝜅𝑅𝑅𝑥𝑥,𝑦𝑦(𝑡𝑡) is involved. In the same logic as the constants 𝛾𝛾 and 𝜖𝜖 , the
constant 𝜅𝜅 is the inverse of the immune period. If immunity is permanent, the constant
𝜅𝜅 can is set to zero.
Deceased Population
This population is for all those who die from the disease. It does not decrease and starts
at zero. It does not interact with other groups and is a spectator to the infectious cycle. Its
equation is:
𝑑𝑑𝐷𝐷𝑥𝑥,𝑦𝑦(𝑡𝑡)
𝑑𝑑𝑡𝑡= 𝜇𝜇𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡). (12)
Density of Infected Population
As described previously, this function serves to connect the different cells together and
model the transmission of the disease across geographical regions. This function is based
on a proximity model with interconnects at major transportation hubs. The value for each
cell is the sum of the proportions of the infected in each surrounding cell multiplied by a
factor computed from the relative distance to the cells. The reason is that the odds of
someone travelling a long distance is inversely proportional to the distance travelled.
Given the limit of regular commuting methods, a person can only travel a maximum of a
certain distance in one day. This fact can be modelled by a proximity matrix. Applied to
the matrices of population count and infected then summed up to the total odds of being
in contact with an infected person for each person in a given cell.
Since the lack of data, an estimate is used for the matrix in the calculation. It would be
generated from a radially applied inverse function fitted to a few rules. Within the cell, the
odds of meeting an infected person is assumed to be exactly the density of infected within
the cell. Outside of the cell, a few interesting data points can be taken and fit a realistic
curve for relative proximity. The proximity grid used in this model is defined as an array
of values depicting the decrease of contact as the distance increases. This array is then
extrapolated to a grid for surrounding cells and applied directly in the calculation.
HE 15
Given that intercontinental air transport in likely by plane, a few high traffic transportation
hubs are located in their corresponding cells and marked in the computation as cells of
interest. A connectivity factor modifies the density value based on the connectivity rating
of the city. These cells share their pool of infected, which adds to the density of the
infected population in these cells even if no surrounding cells present infectious
individuals. The connectivity factor is represented by 𝜉𝜉 and is determined using the
following formula.
𝜉𝜉 =𝐴𝐴𝐴𝐴𝐴𝐴 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝐴𝐴 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑃𝑃𝑇𝑇𝑉𝑉𝑡𝑡𝑃𝑃𝑉𝑉 𝑃𝑃𝑉𝑉𝑃𝑃𝑉𝑉𝑉𝑉𝑃𝑃𝑡𝑡𝐴𝐴𝑉𝑉𝑃𝑃
The connectivity factor calculates the ratio of daily passenger traffic compared to the
population at the start of the computation and uses it to determine the fraction of infected
that gets added to the pool of infected possibly travelling between the modeled cities. This
pool of infected individuals is then redistributed according to relative air passenger volume
compared to the total air passenger volume. These individuals would then be added to
the density of infected for the city’s corresponding cell. To ease calculations, the current
model only considers cities with a recorded annual passenger volume above 50 million in
2015.
Figure 1 – Color map of the proximity values for computing the effect of neighboring cells
of the center cell. This is a grid of 11 values by 11 values.
HE 16
Table 1 - List of cities modeled with their geographical coordinate and their annual air
passenger volume in 2015. Taken from Wikipedia since all other reputable and organised
sources require a large access fee.
City Name Coordinates Volume London 51.5074° N, 0.1278° W 153,487,957 New York 40.7128° N, 74.0059° W 126,651,526 Tokyo 35.6895° N, 139.6917° E 110,070,000 Atlanta 33.7490° N, 84.3880° W 101,491,106 Paris 48.8566° N, 2.3522° E 99,761,998 Shanghai 31.2304° N, 121.4737° E 99,189,000 Chicago 41.8781° N, 87.6298° W 99,170,835 Beijing 39.9042° N, 116.4074° E 96,130,390 Los Angeles 34.0522° N, 118.2437° W 95,793,140 Istanbul 41.0082° N, 28.9784° E 89,435,167 Dubai 25.2048° N, 55.2708° E 88,935,250 Bangkok 13.7563° N, 100.5018° E 83,206,293 Dallas 32.7767° N, 96.7970° W 78,671,661 Miami 25.7617° N, 80.1918° W 77,557,288 Moscow 55.7558° N, 37.6173° E 75,285,463 Seoul 37.5665° N, 126.9780° E 72,445,198 San Francisco 37.7749° N, 122.4194° W 71,014,239 Sao Paulo 23.5505° S, 46.6333° W 68,715,919 Hong Kong 22.3964° N, 114.1095° E 68,488,000 Washington 38.9072° N, 77.0369° W 66,669,853 Frankfurt 50.1109° N, 8.6821° E 63,697,127 Amsterdam 52.3702° N, 4.8952° E 58,284,864 Jakarta 6.1745° S, 106.8227° E 57,000,000 Singapore 1.3521° N, 103.8198° E 55,448,964 Guangzhou 23.1291° N, 113.2644° E 55,208,000 Denver 39.7392° N, 104.9903° W 54,014,502 Houston 29.7604° N, 95.3698° W 53,414,359 Kuala Lumpur 3.1390° N, 101.6869° E 51,678,211
Solving the System Using Euler’s Method
Given the strong interdependencies and the large number of variables within the system,
it would be a waste of time to try and obtain an analytical answer. The relationships
between neighboring cells only increases the challenge to obtaining exact and analytic
HE 17
solutions to the system. The most obvious way is to solve the initial value problem using
a numerical method. Time allowing, higher order methods can be used. For the moment,
Euler’s method proves sufficient in solving the system.
Euler’s method is a numerical process that incrementally computes the rate of change
from a previous step and adds an increment of it to the values in the previous step to
obtain the values of the current step. Since each step is an approximation based on the
previous step, this method inherently leads to runaway errors as the calculations progress
forward. Luckily, as computerized systems can be programmed to do very rapidly the
repetitive calculations, they allow for a large number of minuscule steps, minimizing the
error introduced at each step of calculation.
The general idea of Euler’s method is to discretize the integrand in an integral. Instead of
looking for a continuous function, it computes a series of points that allow for an estimation
for the shape of the function. However, the faster a function changes, the faster the
approximation becomes off. This method may also jump over discontinuities such that
special arrangements are required for discontinuous functions. The general form of
Euler’s method is as follows:
𝑓𝑓(𝑡𝑡𝑛𝑛+1) = 𝑓𝑓(𝑡𝑡𝑛𝑛) + 𝑓𝑓′(𝑡𝑡𝑛𝑛) × 𝑑𝑑𝑡𝑡 (13)
The 𝑃𝑃 is the step number and the 𝑑𝑑𝑡𝑡 is the width of each step. Given a duration 𝐷𝐷 and a
𝑃𝑃 number of steps to compute, 𝑑𝑑𝑡𝑡 is determined as follows:
𝑑𝑑𝑡𝑡 = 𝐷𝐷𝑛𝑛. (14)
When applied to the current SEIR system, it results the following set of equations for a
particular cell 𝑥𝑥,𝑦𝑦.
⎩⎨
⎧𝑆𝑆(𝑡𝑡𝑛𝑛) = 𝑆𝑆(𝑡𝑡𝑛𝑛−1) + [𝛼𝛼𝑆𝑆(𝑡𝑡𝑛𝑛−1) − 𝛽𝛽𝑇𝑇(𝑡𝑡𝑛𝑛−1)𝑆𝑆(𝑡𝑡𝑛𝑛−1) + (1 − 𝛿𝛿)𝛾𝛾𝐼𝐼(𝑡𝑡𝑛𝑛−1) + 𝜅𝜅𝑅𝑅(𝑡𝑡𝑛𝑛−1) − 𝑉𝑉(𝑡𝑡𝑛𝑛−1)] × 𝑑𝑑𝑡𝑡
𝐸𝐸(𝑡𝑡𝑛𝑛) = 𝐸𝐸(𝑡𝑡𝑛𝑛−1) + [(𝛼𝛼 − 𝜖𝜖)𝐸𝐸(𝑡𝑡𝑛𝑛−1) + 𝛽𝛽𝑇𝑇(𝑡𝑡𝑛𝑛−1)𝑆𝑆(𝑡𝑡𝑛𝑛−1)] × 𝑑𝑑𝑡𝑡𝐼𝐼(𝑡𝑡𝑛𝑛) = 𝐼𝐼(𝑡𝑡𝑛𝑛−1) + [(𝛼𝛼 − 𝛾𝛾 − 𝜇𝜇)𝐼𝐼(𝑡𝑡𝑛𝑛−1) + 𝜖𝜖𝐸𝐸(𝑡𝑡𝑛𝑛−1)] × 𝑑𝑑𝑡𝑡
𝑅𝑅(𝑡𝑡𝑛𝑛) = 𝑅𝑅(𝑡𝑡𝑛𝑛−1) + [(𝛼𝛼 − 𝜅𝜅)𝑅𝑅(𝑡𝑡𝑛𝑛−1) + 𝛿𝛿𝛾𝛾𝐼𝐼(𝑡𝑡𝑛𝑛−1) + 𝑉𝑉(𝑡𝑡𝑛𝑛−1)] × 𝑑𝑑𝑡𝑡
(15)
HE 18
Translation to MATLAB
The program will be in two parts, the computational code itself and the graphical user
interface. The general idea is to discretize the curves for each cell and plot the values on
the world map. The evolution of the system would be computed frame by frame and stored
for display. The graphical interface will allow the user to define the constants of the
system, solve the system, display the data in a chronological map and graph the evolution
of the populations for a selected 𝑥𝑥,𝑦𝑦 coordinate.
Downsizing the Initial Population Data
The dataset offered by NASA is a grid of 17400 by 43200 cells. A script was used to
downsize the grid by a factor of 200 and store it in the 87 by 216 array named SPopCount.
The original data was loaded to the array PopCount. The resulting array is saved in
SPopCount.mat so that it can be reused instead of having to regenerate this data at each
execution of the program. A small problem is that empty cells contained an enormous
negative number that rendered summations close to coastlines and water features
inaccurate. This data peculiarity was corrected with a loop that set all negative values to
zero. A second version of the grid called SSPopCount.mat has also been created by
downscaling only by a factor of 100. It is used to load and use a higher resolution grid if
the toggle hires is set to true.
Setup of the Algorithm
Programs in MATLAB use discretized functions. In a similar principle, our current Euler’s
method is a discretization of the model functions. The main script will loop for each frame
to compute the values of the current frame from the previous frame. The initialization
script would first define values for the constants and the initial conditions. The same script
would then declare and preallocate the main functions. The main script is executed once
the initial conditions are set. When the main script has completed all frames of calculation,
a third script is used to render graphics of the result. The user would be able to visualize
the epidemic at different frames of the calculations and see the evolution of the disease
as a whole. A user interface is in the works to ease operation of the program.
The following tables contain the definitions of key constants and functions in the program.
HE 19
Table 2 – Functions
System Function Name in Program Description
𝑃𝑃𝑥𝑥,𝑦𝑦(𝑡𝑡) P(x,y,i) Total Population.
𝑃𝑃𝑥𝑥,𝑦𝑦(𝑡𝑡) Check(x,y,i) Validation for the total population.
𝑆𝑆𝑥𝑥,𝑦𝑦(𝑡𝑡) S(x,y,i) Susceptible Population
𝐸𝐸𝑥𝑥,𝑦𝑦(𝑡𝑡) E(x,y,i) Exposed Population
𝐼𝐼𝑥𝑥,𝑦𝑦(𝑡𝑡) I(x,y,i) Immunized Population
𝑅𝑅𝑥𝑥,𝑦𝑦(𝑡𝑡) R(x,y,i) Recovered Population
𝐷𝐷𝑥𝑥,𝑦𝑦(𝑡𝑡) D(x,y,i) Deaths from the epidemic
𝑉𝑉(𝑡𝑡) V(i) Immunization rate
Table 3 – System Constants
System constants Name in Program Description
𝛼𝛼 a Daily natural population growth constant
𝛽𝛽 b Effective contact rate
𝛾𝛾 c Inverse of infectious period in days
𝛿𝛿 d Ratio for immunization after infection
𝜖𝜖 e Inverse of latent period in days
𝜅𝜅 f Inverse of immunized period in days
𝜇𝜇 g Death rate from epidemic disease
- ax Simulation vertical resolution
- ay Simulation horizontal resolution
Table 4 – System Variables
Variable name Description x Latitude locant or a counter y Longitude locant or a counter i Frame number n Loop counter
HE 20
m Loop counter t Total duration of simulation in days h Total number of simulated frame dt Duration of each simulated frame
Initialization Script
The initialization script defines all constants and variables and preallocates memory in
the workspace. Most values corresponding to the initial conditions can be modified in the
script prior to execution. A binary value allows toggling between the high and low
resolution grid. However, most computers do not have sufficient memory to process more
than 100 frames using the high-resolution grid. A few algorithms also lack a high
resolution implementation as it is currently impossible to test them. While the wording ‘low
resolution’ may sound disappointing, the results obtained satisfactorily represent the
expected outcomes of an uncontrolled disease outbreak on a global scale.
% Initializes the computation and declares global variables.
% Setup of constants
a = 0.00002943; % Natural growth rate
b = 0.6; % Effective contact rate
c = 0.1; % Inverse of infectious duration
d = 0; % Immunization ratio after infection
e = 0.5; % Inverse of latent duration
f = 0; % Inverse of immunized duration
g = 0; % Death rate from disease
pGrid = [sqrt(0.5), sqrt(0.4), sqrt(0.3), sqrt(0.2), sqrt(0.1), sqrt(0.05)];
% Proximity grid
% Setup for computation
t = 365; % Simulation duration in days
h = 3650; % Total number of simulated frames
dt = t/h; % Frame duration. DO NOT MODIFY.
% Compute resolution selection
hires = false; % High resolution grid toggle
HE 21
ax = 87;
ay = 216;
if hires
ax = 174;
ay = 432;
end
% Preallocating
Time(1:h) = zeros;
P(1:ax, 1:ay, 1:h) = zeros; % Total population
S(1:ax, 1:ay, 1:h) = zeros; % Susceptible population
E(1:ax, 1:ay, 1:h) = zeros; % Exposed population
I(1:ax, 1:ay, 1:h) = zeros; % Infectious population
R(1:ax, 1:ay, 1:h) = zeros; % Recovered/immune population
D(1:ax, 1:ay, 1:h) = zeros; % Total Death count
T(1:ax, 1:ay, 1:h) = zeros; % Transmissivity index
V(1:h) = zeros; % Rate of immunization
Check(1:ax, 1:ay, 1:h) = zeros; % Verification of total population
% Loading up Initial population
if hires % If true, load the high resolution grid.
load('SSPopCount.mat');
load('SSCitiesData.mat');
CitiesData = SCitiesData
P(1:ax,1:ay,1) = SPopCount;
S(1:ax,1:ay,1) = SPopCount;
else
load('SPopCount.mat');
load('SCitiesData.mat');
CitiesData = SCitiesData;
P(1:ax,1:ay,1) = SSPopCount;
S(1:ax,1:ay,1) = SSPopCount;
end
The initialization script also imports precompiled air travel data at select city cells to create
two arrays. These arrays are used to estimate the total number of infectious individuals
possibly travelling by airplane and incorporates that number to the calculation of the
density of the infectious population at those high traffic cells.
HE 22
% Creates Matrix for only infected sharing in airworthy cities
InfectedShare(1:ax, 1:ay) = zeros;
for x = 1:size(CitiesData, 1)
InfectedShare(CitiesData(x,1), CitiesData(x,2)) = CitiesData(x,3) ...
./ sum(CitiesData(1:end,3));
end
AirConnectivityArray(1:ax, 1:ay) = zeros;
for x = 1:size(CitiesData, 1)
AirConnectivityArray(CitiesData(x,1), CitiesData(x,2)) = CitiesData(x,3) ...
./365 ./ P(CitiesData(x,1), CitiesData(x,2), 1);
end
This last section of the initialization script places an initial infectious population in a given
cell. The population of other groups are adjusted accordingly to respect the initial
population conditions.
% Seeding
I(33,82,1) = 50;
S(33,82,1) = P(33,82,1) - I(33,82,1);
Main Program
The main program performs that calculations for the system itself. It first goes through a
round of calculations to prepare the values for the modeling of air travelers and
immediately launches the main loop of calculations. Most of the calculations are
performed element-wise directly on the function arrays, a process that MATLAB is
optimized for. The execution duration of the script depends heavily on the size of the
computed grid and the number of frames to be computed. The time duration of the
simulation has little impact on the compute duration. Another factor is the performance of
the host system. The script is CPU and RAM intensive. A computer with fast memory
access will perform better.
% Main compute loop for the simulation
% Takes variables from the workspace and spits out data
% Creating buffer arrays for the computation of T(x,y,i)
pGridSize = size(pGrid,2)-1;
PaddedI(1:ax+2*pGridSize, 1:ay+2*pGridSize) = zeros;
PaddedP(1:ax+2*pGridSize, 1:ay+2*pGridSize) = zeros;
HE 23
distanceFactor(1:1+2*pGridSize, 1:1+2*pGridSize) = zeros;
InfectedAirArray(1:ax, 1:ay, 1:h) = zeros;
for x=-pGridSize:pGridSize % Creating grid for the distance factor
for y=-pGridSize:pGridSize
distanceFactor(x+pGridSize+1, y+pGridSize+1) = ...
sqrt((pGrid(abs(x)+1))^2 + (pGrid(abs(y)+1))^2);
end
end
% Let’s begin
for i = 2:h
% Preparing number of infected air travellers
InfectedAir = sum( sum( I(1:ax, 1:ay, i-1) .* AirConnectivityArray(1:ax, 1:ay) ) );
InfectedAirArray(1:ax, 1:ay, i) = InfectedAir .* InfectedShare(1:ax, 1:ay);
% Adding up infectious and populations of neighboring cells
for x=-pGridSize:pGridSize
for y=-pGridSize:pGridSize
PaddedI(pGridSize+1+x:ax+pGridSize+x, pGridSize+1+y:ay+pGridSize+y) ...
= PaddedI(pGridSize+1+x:ax+pGridSize+x, pGridSize+1+y:ay+pGridSize+y) ...
+ distanceFactor(x+pGridSize+1, y+pGridSize+1) .* ( I(1:ax, 1:ay, i-1) ...
+ InfectedAirArray(1:ax, 1:ay, i) );
PaddedP(pGridSize+1+x:ax+pGridSize+x, pGridSize+1+y:ay+pGridSize+y) ...
= PaddedP(pGridSize+1+x:ax+pGridSize+x, pGridSize+1+y:ay+pGridSize+y) ...
+ ( P(1:ax, 1:ay, i-1) );
end
end
T(1:ax, 1:ay, i-1) = PaddedI(1+pGridSize:ax+pGridSize, 1+pGridSize:ay+pGridSize) ...
./ PaddedP(1+pGridSize:ax+pGridSize, 1+pGridSize:ay+pGridSize);
% Remove bad values
IsNotANumber = isnan(T);
T(IsNotANumber) = 0;
The following section performs the most part of the calculation of the system. It is a
MATLAB interpretation of the equation (15).
HE 24
% Main compute block
Time(i) = Time(i-1)+dt;
S(1:ax, 1:ay, i) = S(1:ax, 1:ay, i-1)+(a*S(1:ax, 1:ay, i-1) ...
-b*T(1:ax, 1:ay, i-1).*S(1:ax, 1:ay, i-1)+(1-d)*c*I(1:ax, 1:ay, i-1) ...
+f*R(1:ax, 1:ay, i-1)-V(i-1))*dt;
E(1:ax, 1:ay, i) = E(1:ax, 1:ay, i-1)+((a-e)*E(1:ax, 1:ay, i-1) ...
+b*T(1:ax, 1:ay, i-1).*S(1:ax, 1:ay, i-1))*dt;
I(1:ax, 1:ay, i) = I(1:ax, 1:ay, i-1)+((a-c-g)*I(1:ax, 1:ay, i-1) ...
+e*E(1:ax, 1:ay, i-1))*dt;
R(1:ax, 1:ay, i) = R(1:ax, 1:ay, i-1)+((a-f)*R(1:ax, 1:ay, i-1) ...
+d*c*I(1:ax, 1:ay, i-1)+V(t-1))*dt;
D(1:ax, 1:ay, i) = D(1:ax, 1:ay, i-1)+(g*I(1:ax, 1:ay, i-1))*dt;
P(1:ax, 1:ay, i) = P(1:ax, 1:ay, i-1)+(a*P(1:ax, 1:ay, i-1) ...
-g*I(1:ax, 1:ay, i-1))*dt;
Check(1:ax, 1:ay, i) = S(1:ax, 1:ay, i)+E(1:ax, 1:ay, i) ...
+I(1:ax, 1:ay, i)+R(1:ax, 1:ay, i);
end
Saving the Results
This final script renders the data from selected frames into a surface map using a
logarithmic scale and saves it to a Portable Network Graphics (.png) file. Similar to the
main script, it loops through the selected frames to export data frame by frame. Currently,
it supports outputting from a single function and the use of the logarithmic scale is
selectable.
This sample displays the 10th frame, the 3650th frame and every 100th frames in between
for the infected population using a logarithmic scale.
for frame = [10, 100:100:3650, 3650]
x(1:ax) = 0; y(1:ay) = 0; DisplayStore(1:ax,1:ay) = 0; LogScale = true;
if LogScale
DisplayStore = log10(I(1:end, 1:end, frame));
else
DisplayStore = (I(1:end, 1:end, frame)); % ./ P(1:end, 1:end, frame)
end
HE 25
% Normalizes negative values which are not expected
TooSmall = DisplayStore < 0;
DisplayStore(TooSmall) = 0;
% Prepares references for corresponding the array indexes to geographical
coordinates
for n = 1:ax
x(n) = -60 + (n-1)*(145/(ax-1));
end
for n = 1:ay
y(n) = -180 + (n-1)*(360/(ay-1));
end
% Prepares the color map for rendering
shades = 256; map(1:shades, 1:3) = zeros;
for m = 1:shades;
map(shades-m+1, 1:3) = [(m-1)/shades, (m-1)/shades, 1];
end
figure('Visible','off')
set(gca,'LooseInset',get(gca,'TightInset'))
axesm('mapprojection', 'miller', 'MapLatLimit', [-55,85] );
surfm(x, y, DisplayStore)
caxis([0 4])
colormap(map)
colorbar
title(['Day ', num2str(ceil(Time(frame)))])
% Renders coastlines
load coast
geoshow(lat,long, 'Color', 'black')
% Create filename and saves the graphic
savefilename = ['Day', num2str(ceil(Time(frame))), '.png'];
saveas(gcf, savefilename);
end
HE 26
Figure 2 – Sample outputs of the saving script.
HE 27
Case Study – Zika Virus
The recent outbreak of the Zika virus can serve as an example to demonstrate the
effectiveness of the current modeling method.
Background
The Zika virus has been first observed in Uganda back in 1947. Since then multiple
outbreaks have been reported in Africa, South-East Asia and Polynesia. The most recent
outbreak started in Brazil in late 2015. It has since spread to 43 countries and cases are
still multiplying. The virus is of the genus Flavivirus, making it similar to the more well-
known dengue, West Nile and yellow fever viruses.
Infection by the Zika virus produces a mild fever and followed by back pain. Some report
a maculopapular rash developing mostly on the face, neck, trunk, and upper arms. It
occasionally causes diarrhea and abdominal discomfort. There are no recoded cases of
death due to the Zika virus. Immunization against the disease after infection is unclear,
but there are observations that the virus may be able to survive in the male testes for
more than two months after the original infection.
Until recently, this virus is little known as it has never been behind a large outbreak. The
most important known threat from Zika has only been established recently with a strong
increase in the number of births with microcephaly in Brazil. There is strong evidence of
a link between the Zika virus and microcephaly in fetuses whose mother have contracted
the Zika virus at some point during the pregnancy. The mechanism leading to
microcephaly is still unknown and there are no vaccines nor treatments specifically
targeting the Zika virus.
Observed Trends of the Epidemic
Up to this point, data sources are unsure about how many people are infected by the Zika
virus due to the mild and often absent symptoms of an infection. The most predominant
sources of information are the Centers for Disease Control and Prevention in the US and
the World Health Organization. The following two figures show the spread of the Zika
virus one year after what is believed to be the start of the outbreak.
HE 28
Figure 3 – States in the US with reported cases of Zika. May 2016 data from the CDC.
As of May 11, 2016, there are a total of 507 laboratory-confirmed, travel acquired cases
in the continental US (Centers for Disease Control and Prevention, 2016).
Figure 4 - All Countries and Territories with Active Zika Virus Transmission as of May 12,
2016. From the CDC (Centers for Disease Control and Prevention, 2016).
HE 29
The Pan American Health Organization also has a data set on reported and estimated
cases of Zika in central and south American countries. While the cases of new infections
seem to have largely slowed down, the data is constituted of fragments that may not
depict the whole picture. For example, Brazil only has data on confirmed cases
discontinuously up to February. There are no estimated numbers for Brazil, which makes
this graph less reliable especially at more recent time periods. However, recent
containment efforts have indeed slowed the spread of the Zika virus.
Figure 5 – Epicurve from the Pan American Health Organization (Pan American Health
Organization / World Health Organization, 2016).
HE 30
Predicted Trends by the SEIR Model
The available data can be compared to the data generated by the SEIR model elaborated
in this paper. The initial values for the simulation are as follows.
System constants Value Description
𝛼𝛼 0.00002943 Daily natural population growth constant
𝛽𝛽 0.6 Effective contact rate
𝛾𝛾 0.1 Inverse of infectious period in days
𝛿𝛿 0 Ratio for immunization after infection
𝜖𝜖 0.5 Inverse of latent period in days
𝜅𝜅 0 Inverse of immunized period in days
𝜇𝜇 0 Death rate from epidemic disease
Given the uncertain information about immunization after an infection, the ratio of
immunization post-recovery is presumed to be null. The average latent period for the
disease is estimated to be 2 days and the infectious period, 10 days. The initial infected
population was set to 50 originated within Brazil.
Figure 6 – Progression of the Simulated Epidemic after One Year. The scale is logarithmic.
The simulation did predict a few cases on the continental US and Europe. The Central
Americas were also affected in good measure. The infections did not spread to null
population areas of the Amazon, which was also expected.
HE 31
Comparison
Overall, the simulation is mostly on point. A closer look at the numbers of infected in each
country show that the model is relatively accurate. The number of infected in Brazil one
year after the outbreak was estimated to be 120 thousand individuals. The simulation
model shows an infected population in roughly the same range. The cases in the United
States also corresponds to the predictions of the simulation. The cases dotting the East
and West Coasts of the US is represented accurately in the simulation at roughly the
same time frame. The simulation shows a few hundred cases scattered across Europe
which matches with predictions and observed trends (European Centre for Disease
Prevention and Control, 2016).
However, two issues put the accuracy of the model into question. The first is that the Zika
virus is mostly transmitted by mosquitoes carrying the virus and human-to-human
transmission is limited. The simulation model might not depict accurately the underlying
endemic nature of the outbreak. The second issue is that the air travel model does not
respect the travel preferences of passengers from different continents nor the seasonal
travel peaks. A spike in reported cases in the US during the school and holiday breaks
was also not represented. Fortunately, these issues are minor events within the simulated
time frame and does not affect the overall outcome of the predictions.
Conclusion
The modeling of an epidemic spread allows healthcare providers to distinguish more at-
risk regions and develop strategies to limit the effect of an outbreak by allocating
appropriate resources before the outbreak spreads. While accurate, the current model is
insufficient for accurate prediction of the spread of an outbreak through air travel.
Including additional cities will improve the representation of the efficacy of air travel in
transporting patients in different population dense locations of the world. Incorporating
data on the most traveled routes will eliminate the errors induced by uniformly distributing
infected individuals across the network of high air traffic cells.
As for the original question about the likelihood of a widespread pandemic affect the
globe, the simulation certainly shows the inherent capability of air travel to spread
HE 32
diseases to many areas of the world rapidly. In the end, it all depends on how the disease
affect individuals and how it transmits. As common sense would likely tell you, the easier
the disease spreads, the harder it is to contain it. A long latent period or an infectious
period presenting little symptoms will allow the outbreak to spread very rapidly before
authorities can react. In general, as past examples have already demonstrated, air travel
and increased mobility greatly increases the risk of spreading diseases around the globe.
In the end, it seems that living in an isolated island may not be such a bad idea. The
isolation greatly reduces the risk of exposure to an epidemic outbreak. However, there
are only a limited number of isolated islands on the globe. With the difficulty of being self-
sustaining and the rising sea levels, getting sick from a pandemic disease will be the least
of your troubles if you do resettle to a small island in the Pacific.
HE I
References
Abraham J. Arenas, G. G.-P.-C. (2016). Construction of nonstandard finite difference schemes for the SI and SIR epidemic models of fractional order. Mathematics and Computers in Simulation, 121(March), 48–63. doi:10.1016/j.matcom.2015.09.001
B.E. Ainseba, S. B. (2016). Biological consistency of an epidemic model with both vertical and horizontal transmissions. Nonlinear Analysis: Real World Applications, 28(April), 192-207. doi:10.1016/j.nonrwa.2015.09.010
Benito M. Chen-Charpentier, D. S. (2010). Epidemic models with random coefficients. Mathematical and Computer Modelling, 52(7-8), 1004–1010. doi:10.1016/j.mcm.2010.01.014
Bernoulli, D. (2004). An attempt at a new analysis of the mortality caused by smallpox and of the advantages of inoculation to prevent it. Reviews in Medical Virology, 14, 275–288. doi:10.1002/rmv.443
Bonnie Kegan, R. W. (2005). Modeling the simple epidemic with deterministic differential equations and random initial conditions. Mathematical Biosciences, 195(2), 179–193. doi:10.1016/j.mbs.2005.02.004
Center for International Earth Science Information Network - CIESIN - Columbia University. (2015). Gridded Population of the World, Version 4 (GPWv4): Population Count Adjusted to Match 2015 Revision of UN WPP Country Totals. Palisades, NY: NASA Socioeconomic Data and Applications Center (SEDAC). doi:10.1080/23754931.2015.1014272
Centers for Disease Control and Prevention. (2016, May 12). All Countries & Territories with Active Zika Virus Transmission. (Centers for Disease Control and Prevention) Retrieved May 16, 2016, from All Countries & Territories with Active Zika Virus Transmission
Centers for Disease Control and Prevention. (2016, May 12). Zika virus disease in the United States, 2015–2016. (Centers for Disease Control and Prevention) Retrieved May 16, 2016, from http://www.cdc.gov/zika/geo/united-states.html
Cunlai Pu, S. L. (2016). Traffic-driven SIR epidemic spreading in networks. Physica A: Statistical Mechanics and its Applications, 446(March 15), 129–137. doi:10.1016/j.physa.2015.11.028
D. Greenhalgh, Y. L. (2016). SDE SIS epidemic model with demographic stochasticity and varying population size. Applied Mathematics and Computation, 276(March 5th), 218–238. doi:10.1016/j.amc.2015.11.094
E. Ahmed, A. E. (2007). On fractional order differential equations model for nonlocal epidemics. Physica A: Statistical Mechanics and its Applications, 379(2), 607–614. doi:10.1016/j.physa.2007.01.010
HE II
Esther García-Garaluz, M. A.-L. (2011). Hopfield networks for identification of delay differential equations with an application to dengue fever epidemics in Cuba. Neurocomputing, 74(16), 2691–2697. doi:10.1016/j.neucom.2011.03.022
European Centre for Disease Prevention and Control. (2016). Rapid Risk Assesment - Zika virus disease epidemic - Sixth Update - 20 May 2016. Stockholm: European Centre for Disease Prevention and Control. Retrieved from http://ecdc.europa.eu/en/publications/Publications/zika%20virus%20rapid%20risk%20assessment%2010-05-2016.pdf
Fabio A.C.C. Chalub, M. O. (2014). Discrete and continuous SIS epidemic models: A unifying approach. Ecological Complexity, 18(June), 83–95.
G. Schneckenreither, N. P. (2008). Modelling SIR-type epidemics by ODEs, PDEs, difference equations and cellular automata – A comparative study. Simulation Modelling Practice and Theory, 16(8), 1014–1023. doi:10.1016/j.simpat.2008.05.015
Huang, G. (2016, April). Artificial infectious disease optimization: A SEIQR epidemic dynamic model-based function optimization algorithm. Swarm and Evolutionary Computation, 27(April), 31–67. doi:10.1016/j.swevo.2015.09.007
István Faragó, R. H. (2016). On some qualitatively adequate discrete space–time models of epidemic propagation. Journal of Computational and Applied Mathematics, 293(February), 45–54. doi:10.1016/j.cam.2015.03.030
Kermack, W. O., & McKendrick, A. G. (1991). Contributions to the Mathematical Theory of Epidemics - I. Bulletin of Mathematical Biology, 53(1/2), 33-55.
Kermack, W. O., & McKendrick, A. G. (1991). Contributions to the Mathematical Theory of Epidemics - II. The Problem of Endemicity. Bulletin of Mathematical Biology, 53(1/2), 57-87.
Kermack, W. O., & McKendrick, A. G. (1991). Contributions to the Mathematical Theory of Epidemics - III. Further Studies of the Problem of Endemicity. Bulletin of Mathematical Biology, 53(1/2), 89-118.
Lanska, D. J. (2014). Pasteur, Louis. In Encyclopedia of the Neurological Sciences (pp. 841-845). Elsevier Ltd.
Lili Liu, J. W. (2015). Global stability of an SEIR epidemic model with age-dependent latency and relapse. Nonlinear Analysis: Real World Applications, 24(August), 18–35. doi:10.1016/j.nonrwa.2015.01.001
Lorenzo Pellis, T. H. (2015). Exact and approximate moment closures for non-Markovian network epidemics. Journal of Theoretical Biology, 382(October 7), 160–177. doi:10.1016/j.jtbi.2015.04.039
Pan American Health Organization / World Health Organization. (2016, May 12). Suspected and confirmed Zika cases reported by countries and territories in the Americas, 2015-2016. (Pan American Health Organization) Retrieved May 17, 2016, from http://ais.paho.org/phip/viz/ed_zika_epicurve.asp
HE III
Qingchu Wu, X. F. (2016). Immunization and epidemic threshold of an SIS model in complex networks. Physica A: Statistical Mechanics and its Applications, 444(February 15), 576–581. doi:10.1016/j.physa.2015.10.043
Qun Liu, Q. C. (2016). The threshold of a stochastic delayed SIR epidemic model with temporary immunity. Physica A: Statistical Mechanics and its Applications, 450(May 15), 115–125. doi:10.1016/j.physa.2015.12.056
United States Strategic Command. (2011, APR 30). CRDUSSTRATCOM CONPLAN-8888-11 "COUNTER-ZOMBIE DOMINANCE". Retrieved from Intellipedia: http://www.intelink.sgov.gov/wiki/CONPLAN_8888
Wang, T. (2014). Dynamics of an epidemic model with spatial diffusion. Physica A: Statistical Mechanics and its Applications, 409(September 1st), 119–129. doi:10.1016/j.physa.2014.04.028
Zhidong Teng, L. W. (2016). Persistence and extinction for a class of stochastic SIS epidemic models with nonlinear incidence rate. Physica A: Statistical Mechanics and its Applications, 451(June 1st), 507–518. doi:10.1016/j.physa.2016.01.084