Section 6.1 Determining a Threshold Vaccine Level
The modeling in this section focuses on
reducing transmission of a disease through the use of vaccines. We use the multiplier
\((1-p)\) from
Exploration 6.1, along with the concept of
\(\mathcal{R}_0\) from
Chapter 5, to demonstrate the effect of vaccines on the number of people who ever become Infectious in a disease outbreak.
As a reminder, the basic reproduction number \(\mathcal{R}_0\) is the average number of new infections caused by one infectious person in an otherwise entirely susceptible population. This means that \(\mathcal{R}_0\) is not a number we can use to directly describe a population that has been vaccinated against a disease, since a vaccinated population is not entirely susceptible. Instead, we introduce an effective reproduction number \(\mathcal{R}_{\text{eff}}\text{,}\) which is the average number of new infections caused by one infectious person in a population that may not be entirely susceptible, such as a population that has had access to vaccination. One way to pronounce the symbol \(\mathcal{R}_{\text{eff}}\) is “R effective”.
We cannot change the intrinsic value of \(\mathcal{R}_0\text{,}\) but with vaccination, we can work toward the goal of having \(\mathcal{R}_{\text{eff}} \lt 1\text{.}\) If \(\mathcal{R}_{\text{eff}} \lt 1\) in a model that includes vaccines or other public health interventions, then overall numbers of Infectious people do not rise over time. With a few lines of algebra, we can build a relationship between \(\mathcal{R}_0\text{,}\) \(p\text{,}\) and \(\mathcal{R}_{\text{eff}}\text{.}\)
First, we should state a definition for \(p\text{.}\) We define \(p\) to be the fraction of people vaccinated against a disease, noting that the values of \(p\) are therefore restricted to \(0 \leq p \leq 1\text{,}\) where \(p=0\) means no one is vaccinated, and \(p=1\) means \(100\%\) of the population is vaccinated. When the fraction \(p\) of people are vaccinated, the remaining fraction \((1-p)\) are not vaccinated. Since \(\mathcal{R}_0\) refers to an entirely susceptible population, but only the fraction \((1-p)\) of the population is susceptible, we see that the average number of new infections caused by one infectious person in the vaccinated population is \((1-p)\mathcal{R}_0\text{.}\) In other words:
\begin{align}
\mathcal{R}_{\text{eff}} \amp = (1-p)\mathcal{R}_0. \tag{6.1}
\end{align}
Our goal in the next few mathematical steps is to use
(6.1) to determine a value of
\(p\) for which
\(\mathcal{R}_{\text{eff}} \lt 1\text{.}\) Such a value of
\(p\) corresponds to a vaccination rate high enough that a disease cannot become an outbreak because
\(\mathcal{R}_{\text{eff}} \lt 1\) means that the overall numbers in the population are not expected to rise. Read carefully through the following mathematical steps to see how this value of
\(p\) is computed:
\begin{align*}
\mathcal{R}_{\text{eff}} \amp \lt 1 \\
(1-p)\mathcal{R}_0 \amp \lt 1 \\
\mathcal{R}_0 - p \mathcal{R}_0 \amp \lt 1 \\
p \mathcal{R}_0 \amp \gt \mathcal{R}_0 - 1 \\
p \amp \gt \frac{\mathcal{R}_0 - 1}{\mathcal{R}_0} \\
p \amp \gt 1- \frac{1}{\mathcal{R}_0}.
\end{align*}
In the lines above, we started with our goal of causing
\(\mathcal{R}_{\text{eff}}\) to be less than one. We then made a substitution using
(6.1) and rearranged algebraically until we found a formula showing values of
\(p\) that satisfied our goal. Notice that to compute the next-to-last line, we divided by
\(\mathcal{R}_0\) without changing the direction of the inequality, which assumed that
\(\mathcal{R}_0 \gt 0\text{.}\) This assumption makes biological sense, and is important to point out mathematically, as biology and mathematics should support each other throughout the modeling process.
We now note a particular, special value of \(p\) that is the threshold between two outcomes, which makes it a critical value. The two outcomes are having, or not having, an outbreak. We therefore name this critical value of \(p\) to be \(p_{\text{crit}}\text{:}\)
\begin{align}
p_{\text{crit}} \amp = 1- \frac{1}{\mathcal{R}_0}. \tag{6.2}
\end{align}
Investigate the critical value
\(p_{\text{crit}}\text{,}\) and the accompanying threshold between outbreak and no outbreak, in
Activity 6.2.
Activity 6.2.
In this activity, we explore \(p_{\text{crit}}\) through the comparison of two historically widespread diseases: smallpox and measles.
We begin by examining smallpox. Estimates for the value of \(\mathcal{R}_0\) for smallpox range from 3.5 to 6. Given this range of \(\mathcal{R}_0\) values, what is the range of \(p_{\text{crit}}\) values required in order to reduce the value of \(\mathcal{R}_{\text{eff}}\) for smallpox so that \(\mathcal{R}_{\text{eff}} \lt 1\text{?}\) What percentage of people would need to be vaccinated, using the values of \(p_{\text{crit}}\) you computed, to prevent a smallpox outbreak, that is, to cause \(\mathcal{R}_{\text{eff}} \lt 1\text{?}\)
Next, we examine measles. Many estimates for the value of \(\mathcal{R}_0\) for measles range from 12 to 18. Given this range of \(\mathcal{R}_0\) values, what is the range of \(p_{\text{crit}}\) values required in order to reduce the value of \(\mathcal{R}_{\text{eff}}\) for measles so that \(\mathcal{R}_{\text{eff}} \lt 1\text{?}\) What percentage of people would need to be vaccinated, using the values of \(p_{\text{crit}}\) you computed, to prevent a measles outbreak, that is, to cause \(\mathcal{R}_{\text{eff}} \lt 1\text{?}\)
Smallpox has been eliminated: the last natural occurrence was in 1977, and in 1980, the World Health Organization stated that smallpox had been globally eradicated. Measles has not been eliminated: widespread vaccination has reduced cases drastically in many parts of the world, but measles continues to circulate. Given your results in parts 1 and 2 of this activity about the values of \(p_{\text{crit}}\) for smallpox and measles, write a few sentences about how the value of \(\mathcal{R}_0\) increases or decreases the feasibility of vaccinating enough people to eliminate a disease.
Answer.
For smallpox, \(0.71 \lt p_{\text{crit}} \lt 0.83\text{,}\) meaning approximately \(71\% - 83\%\) of people need to be vaccinated to prevent an outbreak.
For measles, \(0.92 \lt p_{\text{crit}} \lt 0.94\text{,}\) meaning approximately \(92\% - 94\%\) of people need to be vaccinated to prevent an outbreak.
This is open-ended. A typical answer may state that higher values of \(\mathcal{R}_0\) mean we need higher levels of vaccination. Answers may also investigate the reasons why it becomes so much more difficult to achieve higher levels of vaccination, especially on a global scale.
The investigations of
Activity 6.2 asked you to compute values of
\(p_{\text{crit}}\) for specific diseases. Another aspect of
\(p_{\text{crit}}\) is that achieving this critical vaccination level means only that the infection curve, that is, the
\(I(t)\) curve, falls from the beginning rather than rising first. However, this does not mean that there are no new infections after the initial cases. Explore this further in
Section 6.2.
Section 6.2 How Vaccination Level Affects Long Term Outcomes
Activity 6.3 focuses on understanding long-term model outcomes, with an emphasis on
\(p_{\text{crit}}\text{,}\) the critical vaccine coverage value defined in
(6.2). Another emphasis is on adjusting our Python code in order to make sure its output truly demonstrates the answers to the questions we are asking.
Activity 6.3.
For the following SIR model, the term \((1-p)\) indicates the unvaccinated fraction of people:
\begin{align*}
\frac{dS}{dt} \amp = - (1-p) \beta S I \\
\frac{dI}{dt} \amp = (1-p) \beta S I - \gamma I \\
\frac{dR}{dt} \amp = \gamma I.
\end{align*}
In the default Python code shown below, \(\beta = 0.0003\text{,}\) \(\gamma = 0.3\text{,}\) \(p=0\text{,}\) the initial population values are \(S(0)=2900\text{,}\) \(I(0)=100\text{,}\) and \(R(0)=0\text{,}\) and time runs from \(t=0\) to \(t=25\) days. Begin by running the code, and then work through the steps below to make specific changes to the model.
How many people have had this illness at some point in time, according to this model with its default values? To answer this: notice that everyone who reaches the R compartment must have been sick at some time, so the long-term value of \(R(t)\) provides the answer. Also notice that we need to make sure to run the model long enough that \(I(t)\) reaches \(0\text{.}\) Only then will \(R(t)\) be evaluated at a large enough value of \(t\) for us to know the total number of people who become ill.
Compute the value \(p_{\text{crit}}\) for this model, showing your work. Then run the model using the value you computed for \(p_{\text{crit}}\) and re-answer the question above: how many people get the illness at some point in time, according to this model, when \(p=p_{\text{crit}}\text{?}\)
Compare your answer above, regarding how many people get the illness at some time in the situation when \(p=p_{\text{crit}}\text{,}\) with the initial number of Infectious people in the model. How many people must have gotten the illness sometime after the original Infectious people? Notice that this means that even when \(\mathcal{R}_{\text{eff}} \approx 1\text{,}\) a significant number of additional people can contract the illness being studied. However, the Infectious population curve \(I(t)\) does not rise: it instead appears as level or decreasing.
We may want to see for ourselves, or demonstrate to others, that the Infectious curve is truly not rising when \(p=p_{\text{crit}}\text{.}\) The default graph in the Python code for this activity is not the most helpful to us because \(S(0)\) is so large relative to \(I(0)\text{,}\) which makes it challenging to see the details of the curvature of the \(I(t)\) curve. To see just the \(I(t)\) curve, then, we can comment out the lines of code that show the \(S(t)\) and \(R(t)\) curves. Do this: comment out those lines, and produce a graph showing just the \(I(t)\) curve.
Answer.
The default model says the long-term value of \(R(t)\) is \(2802\text{,}\) but at \(t=25\text{,}\) there are still people in the \(I(t)\) compartment. Use a larger value of \(t\) to find that \(2829\) people have the illness at some time during the outbreak. (State, and show, how large you made your value of \(t\text{.}\))
The value of
\(p_{\text{crit}}\) is
\(0.\overline{6}\text{,}\) using
(5.1) to compute
\(\mathcal{R}_0\) and then
(6.2) to compute
\(p_{\text{crit}}\text{.}\) Approximating
\(p_{\text{crit}}\) as
\(0.67\) and setting a large enough value of
\(t\) leads to the conclusion that
\(692\) total people have the illness at some time.
The answer above said that \(692\) people had the illness at some time, and we used the value \(I(0)=100\text{.}\) This means that after the initial \(100\) people, another \(592\) got the illness. (For readers who approximated \(0.\overline{6}\) differently than \(0.67\text{,}\) your answers may vary somewhat.)
The first and third lines after “#Plotting commands are below” should be commented out, that is, the symbol “#” should be placed at the start of each of these lines. Then run the code block again to produce just the \(I(t)\) graph.
We now pause our modeling for a moment to provide some extra vocabulary and commentary on vaccines. When vaccines are studied and approved for use, researchers demonstrate their efficacy and effectiveness. Both terms consider how many people within a population of vaccinated individuals get a disease, compared with how many people within a comparable population of unvaccinated individuals get the same disease. If, for instance, \(75\%\) fewer people in the vaccinated population get the disease, then we say the vaccine has an efficacy or effectiveness of \(75\%\text{.}\) (Notice what the \(75\%\) does NOT mean: it does NOT mean that only \(75\%\) of people are protected by the vaccine, or that the vaccine only “works” \(75\%\) of the time.) The word efficacy specifies that the comparison of vaccinated and unvaccinated populations happens within a clinical trial. The word effectiveness indicates that the vaccine is being studied for populations in the real world. While clinical trials do include a range of different people, effectiveness often differs from efficacy.
Vaccine outcomes extend beyond affecting disease transmission. One common outcome is reducing the intensity of illness in individuals who have been vaccinated, yet who still become sick. This and other outcomes can be included in models, however such models tend to be more detailed than those we are studying right now. For this reason, this chapter focuses only on vaccine models that show reduced transmission.
Much of this section has focused on vaccines, which are a valuable element of compartmental models. Another important aspect of disease spread is the incubation period of an illness. The SEIR model, described in
Chapter 7, incorporates this incubation period.
For Further Thought 6.3 For Further Thought
1.
A vaccine for measles was first licensed in the United States in 1963. Before that, nearly all U.S. children got measles by the time they were 15 years old. Due to the vaccine, by the year 2000, the U.S. eliminated measles as a disease that could spread continuously. Since then, measles in the U.S. occurs only occasionally, typically when a person travels elsewhere, gets measles, and returns to the U.S. with the ability to infect others.
Measles lends itself to especially demonstrative mathematical models for two reasons: (1) measles is exceptionally contagious, and (2) the vaccine for measles has very high efficacy and effectiveness, with immunity that lasts a lifetime.
-
As described in
Activity 6.2, the value of
\(\mathcal{R}_0\) for measles is approximately 12 to 18. Let’s suppose a specific outbreak of measles has
\(\mathcal{R}_0 = 15\text{.}\) The CDC says that measles is contagious from four days before symptoms appear until four days after, meaning about 8 total days. For this reason, set
\(\gamma = 1/8\text{.}\) Let’s suppose this outbreak occurs in a small, close-knit community of 500 people, in which one person initially has the measles, meaning
\(S(0)=499\text{,}\) \(I(0)=1\text{,}\) \(R(0)=0\text{.}\) Set up an SIR model, as shown below, for this outbreak:
\begin{align*}
\frac{dS}{dt} \amp = - (1-p) \beta S I \\
\frac{dI}{dt} \amp = (1-p) \beta S I - \gamma I \\
\frac{dR}{dt} \amp = \gamma I.
\end{align*}
To compute parameter values for the model, use the information provided in this exercise, along with equation
(5.1), to compute the value of
\(\beta\) for this model.
-
In many communities in the U.S., the percentage of vaccinated people is around \(91\%\) or \(92\%\text{.}\) At each of these levels, how many people will get measles in the long run, according to your model? What if the vaccination rate were as high as \(94\%\text{?}\) Or as low as \(89\%\text{?}\)
Notice that there is not a unique answer to how long to run the model: if you can see the long-term value after 100 days, for instance, then running the model for 120 days will also show the long-term value. Aim to indicate a number of days that shows clearly that population values have leveled off to horizontal lines, while not using such a large number of days that it becomes difficult to see the rise and/or fall of the Infectious curve \(I(t)\) as the outbreak proceeds.
Compute \(p_{\text{crit}}\) for this model of measles.
Write about your results when changing the vaccination rate. Describe how much the number of measles cases can change in response to what may appear to be small changes in the vaccination rate, especially when the vaccination rate is close to the value of \(p_{\text{crit}}\text{.}\)
2.
In 2016, Bates College experienced a small outbreak of mumps. Nearly \(100\%\) of students had been vaccinated against mumps, and in particular, the students who became sick had been vaccinated. The mumps vaccine is approximately \(88\%\) effective when a person has had two doses. We use an SIR model for mumps to compare the outcome for a fully vaccinated population with the hypothetical outcome of a mumps outbreak in a fully unvaccinated population.
You will notice that the population is fully vaccinated, meaning everyone has received the mumps vaccine, but the effectiveness of the vaccine is approximately \(88\%\) . In this circumstance, we use a factor \((1-q)\) in the model to account for the effectiveness of the vaccine, similar to how we previously used \((1-p)\) to account for the vaccinated percentage of the population. We set \(q=0.88\) to reflect the CDC value on vaccine effectiveness.
-
Use the SIR model with vaccination, shown below, to graph the long-term outcome for mumps. At Bates College in 2016, there were approximately 1800 students, and there were 7 initial cases of mumps, which arose from a group of students who had traveled together and become infected during the trip. Consider all remaining students (that is, 1793 students) to initially be Susceptible. Therefore set
\(S(0)=1793\text{,}\) \(I(0)=7\text{,}\) and
\(R(0)=0\text{.}\) Set
\(\gamma = 1/7\text{,}\) as mumps tends to be contagious for about one week. The value of
\(\mathcal{R}_0\) for mumps ranges from 4 to 7, and for mumps spread at a residential campus, where people live in close proximity to each other, we use
\(\mathcal{R}_0 = 7\text{.}\) These pieces of information, along with equation
(5.1), allow you to compute the value of
\(\beta\) for the model:
\begin{align*}
\frac{dS}{dt} \amp = - (1-q) \beta S I \\
\frac{dI}{dt} \amp = (1-q) \beta S I - \gamma I \\
\frac{dR}{dt} \amp = \gamma I.
\end{align*}
Use Python to visualize this SIR model with vaccine for the spread of mumps on campus and to determine how many people will eventually become infected with mumps, according to the model.
Now, run an experiment to test what would happen if mumps arrived at a hypothetical campus where no one had any vaccination or other past exposure to mumps. Use Python to show the results of an SIR model without vaccine, that is, an SIR model in which the term \((1-q)\) is not included. In this situation, how many people eventually become infected with mumps?
Compare your outcomes from parts (a) and (b) and discuss the implications of this comparison. As part of your discussion, describe how models can be used to better understand possible public health interventions (such as vaccines) or lack of interventions.
3.
Here, we combine ideas from exercises 1 and 2 in this section to construct a model of a measles outbreak that includes both the level of vaccination across a population, as well as the effectiveness of the measles vaccine. For this model, \(p\) represents the fraction of the population that is vaccinated against measles and \(q\) represents the effectiveness of the vaccine.
-
Rewrite your model as below. We require that \(0 \leq p \leq 1\) and \(0 \leq q \leq 1\text{.}\) Explain in words why the way the model is written, and the ranges for \(p\) and \(q\text{,}\) make sense. In your explanation, include edge cases, that is, describe what happens when \(p=0\text{,}\) when \(p=1\text{,}\) when \(q=0\text{,}\) and when \(q=1\text{.}\) Also describe what happens as \(p\) increases from \(0\) to \(1\text{,}\) and what happens as \(q\) increases from \(0\) to \(1\text{:}\)
\begin{align*}
\frac{dS}{dt} \amp = - (1-pq) \beta S I \\
\frac{dI}{dt} \amp = (1-pq) \beta S I - \gamma I \\
\frac{dR}{dt} \amp = \gamma I.
\end{align*}
With this model, using both
\(p\) and
\(q\text{,}\) we define
\(\mathcal{R}_{\text{eff}} = (1-pq)\mathcal{R}_0\text{.}\) Use algebraic steps similar to those in
Section 6.1 to compute an updated formula for
\(p_{\text{crit}}\) that involves
\(q\) as well as
\(\mathcal{R}_0\text{.}\)
Use your updated formula for \(p_{\text{crit}}\) to explain how vaccine effectiveness below \(100\%\) can make it more challenging to achieve the goal of \(\mathcal{R}_{\text{eff}} \lt 1\text{.}\) For measles, in particular, vaccine effectiveness is approximately \(97\%\text{,}\) which means \(q = 0.97\text{.}\) Incorporating \(q\text{,}\) then, what is the value of \(p_{\text{crit}}\) indicating the percentage of people that need to be vaccinated in order to achieve \(\mathcal{R}_{\text{eff}} \lt 1\text{?}\) Use Python to show long-term outbreak results, including number of people infected, in outbreaks having vaccinated populations both slightly above, and slightly below, the value of \(p_{\text{crit}}\) you determine. For your Python results, use the parameter values from exercise 1 in this section, along with the vaccine’s \(97\%\) effectiveness.