Professional Documents
Culture Documents
1
Introduction
coronavirus 2 (SARS-CoV-2) (Zimmer, C. 2021). It is the disease that started a global pandemic
in 2020 that is still ongoing, even until the time of writing of this essay. It is the disease that
resulted in the deaths of 2.45 million people worldwide and counting. Although some countries
have dealt with the pandemic properly, I cannot say that is the case with my country, Indonesia,
as we have one of the worst testing rates globally and daily COVID-19 cases continue to rise.
This is in addition to poorly conducted lockdowns as well as horribly managed COVID-19 relief
funds.
Thankfully, the COVID-19 vaccine has arrived, which would certainly help the
government in dealing with the pandemic. However, Indonesia has one of the lowest vaccination
rates out of all the countries that have begun administering vaccines. According to Our World in
Data, the 7-day average on 19 February, 2021 of people receiving vaccines is 0.02 out of every
100 people (Our World in Data, 2021). For context, Serbia is currently administering the most
vaccines at 2.03, meaning Indonesia’s vaccine rollout is 100 times slower than Serbia’s. This is
worsened by the fact that Indonesia currently has a much larger population than Serbia as
Indonesia’s population in 2019 was at 270.6 million while Serbia’s was at 6.94 million. (World
Bank, 2021).
Even the Indonesian Vice President Ma’ruf Amin stated that the Indonesian vaccine
rollout has been very slow (Anjani, A. N. 2021) as Indonesia has set the target for daily vaccines
to reach 1 million doses per day in the future. However, based on looking at the current data,
intuition suggests that that might not seem like an ideal target. Because of this, I intend to focus
2
this investigation into looking at whether it will be possible for Indonesia to reach 1 million daily
vaccine doses and if it is possible, how long it will take for that to happen.
2021 will be the first year I start university but because of the pandemic, I face many
uncertainties regarding my future. Do I study abroad if I can? Do I stay here and attend online
classes? Do I defer my admission offer to the next semester? However, if I have received the
vaccine, it would certainly remove a majority of these uncertainties as I can travel safely without
having to fear about contracting the virus anymore. As a result, I wanted to find out whether it
would be realistic for me to get vaccinated before I begin university and by modelling
Indonesia’s vaccine rollout in the future, it would help me have a better picture on whether I can
get vaccinated before university starts or not. Hence, this is why I chose to focus my research on
this topic.
Aim
The aim of this investigation is to predict the time it will take for Indonesia to reach 1
million daily vaccine doses, given the current rate of daily vaccinations that are being
administered. This will be done by first modelling the number of people being vaccinated daily
by plotting the data and then finding a function that models the data. Afterwards, the function
will be used to predict the number of days it will take by substituting 1 million as the y-value
values from trends in known data (Dictionary.com, 2021). Therefore, this investigation’s
parameters are set with the expectation that the current data trend will continue into the future,
3
Analysis
For this investigation, the graphing softwares Graphmatica and Desmos were used.
Graphmatica was used for finding the best fit line of a set of data points while Desmos was used
to find intersections and maximum points as well as transforming certain graphs. A TI-Inspire
CX calculator was also used to help with calculations throughout the process. For this
investigation, 𝑥 will be the days as it is the independent variable while 𝑦 will be the number of
(Syakriah, A. 2021). However, that was only the first dose and in order to become immune to the
disease, a person has to receive two doses. As a result, the data below only shows the second
doses that were administered as the first dose will not matter unless the person gets the second
dose. It was first administered on 28 January, 2021. This is because a minimum of 14 days has to
4
1 February 2021 4 12858
Instead of the dates, days in numerical value are used and plotting the data above results in
Graph 1 below. Day 0 is used for the first day of vaccinations to ease calculations in later parts.
5
Graph 1. Daily Vaccine Doses Administered vs. Days (after 28 January 2021)
Based on the graph, there seems to be two outliers from the rest, which are points (3,
1738) and (10, 1924). Outliers are data points that are said to be abnormal as they differ greatly
from the other data. Both of these have the two smallest 𝑦-values out of the other data points and
it is visible that they are far from the other data points. Both of these occurred on Sundays and
this might explain why the number of vaccinations on those days are so low. Although I could
not confirm the exact reason for these outliers occurring, as they have occurred for two straight
weeks on the same exact day, I assume it is because there are less medical workers working on
Sundays due to higher wages as Sundays are not considered as work days in Indonesia.
As seen from the general trend of the data, on most days the number of daily vaccinations
increases from the day before that, except for a few occasions. However, as the growth of daily
vaccinations does not look constant, this eliminates a linear function from being used as linear
functions have constant gradients, indicating constant growth. Therefore, I thought of using an
6
exponential function. However, an exponential function’s growth will never stop increasing,
which does not make sense. At one point, if the government reaches their target of daily
vaccinations, they might not intend to increase daily vaccinations anymore. In addition, there are
a finite number of healthcare workers and facilities in the country that can administer the
vaccine, meaning that at a certain point, there will be a maximum number of daily vaccinations
when all healthcare workers are already tasked with vaccinating and facilities are at full capacity.
Therefore, it would make sense for the vaccine rollout to follow a logistic function. This
is because a logistic function will first have exponential growth but after the inflection point, the
gradient of the function will gradually decrease as it approaches the carrying capacity, which is
defined as a species’ average population size in a particular habitat (National Geographic, 2021)
but in this context, it refers to the maximum doses of vaccines that can be administered daily
when workers and facilities are all fully used. It can also be defined as the value of the 𝑦
-asymptote of the function; here, an asymptote can be defined as a line where the distance
between the line and the curve approach 0 as x approaches infinity. The function’s formula is
𝑐
𝑦 = −𝑏𝑥
1 + 𝑎𝑒
where 𝑎, 𝑏, and 𝑐 are constants.
Before proceeding, it would be best to first explain the role of each of the three constants
in the logistic function; the values below are chosen randomly and are not related to the data
above. The constant 𝑎 determines where the inflection point occurs at, which is the point where
the concavity of the function changes. For logistic functions, the 𝑥-coordinate of the inflection
point is done by calculating 𝑙𝑛(𝑎) and then dividing that by 𝑏 (Symbolab.com, 2021).
Substituting the 𝑥-coordinate back into the function gives the 𝑦-coordinate of the inflection
point. Therefore, a larger value of a results in a larger 𝑥-coordinate for the inflection point.
7
Graph 2 shows the impact of 𝑎 in determining the coordinate of the inflection point using two
On the other hand, 𝑏 determines the horizontal stretch of the function. A smaller value of
𝑏 increases the horizontal stretch, meaning a larger value of 𝑏 results in a steeper curve at its
inflection point as shown in Graph 3. Two values of 𝑏 were used: 0.1 and 0.2.
8
Graph 3. Impact of 𝑏 in a Logistic Function
Lastly, 𝑐 determines the carrying capacity of the function. This is shown below in Graph
Due to the nature of the logistic function, it would make sense for the government to use
this function to plan out the vaccine distribution. The government would plan for the number of
daily vaccines to increase continuously until it reaches their daily target. The reasoning behind
this increase is due to the number of medical workers available as well as the readily available
vaccines that Indonesia currently has. With more days passing, more medical workers are
vaccinated and can therefore be tasked with administering more vaccines. In addition, Indonesia
plans to purchase even more vaccines as they don’t have enough stock for the entire population.
Furthermore, the government can set the target of daily vaccinations by simply adjusting the 𝑐
constant of the function, making the logistic function an ideal function for the vaccine rollout in
Indonesia. Therefore, 𝑐 will represent the maximum number of daily vaccinations that can be
administered in Indonesia and based on the news report, the government should set 𝑐 at
9
1,000,000. Then, the number of days that it will take for Indonesia to achieve this target can be
As the logistic function has three constants that will have to be calculated, three points
from Table 1 will be used to calculate the constants. The points that will be used are (0, 5468),
(8, 24172) and (16, 69881). These three points are used as they are exactly 8 days apart from
each other. As the points are spread out evenly and quite widely, it should give an accurate value
for the constants. If the points were chosen with no pattern between them and are too close
together, the logistic function might not be a good fit for the other data points. Furthermore, the
points are also not outliers from the data set. The point (0, 5468) was chosen because using
To calculate for the logistic function, three simultaneous equations will be formed with
the three points and by process of elimination, one constant will be found. This constant will then
be used to find the other 2 by substituting in the value of said constant back into one of the
equations.
𝑐
First, all three points are substituted into the logistic function 𝑦 = −𝑏𝑥 .
1 + 𝑎𝑒
𝑐
5468 = −𝑏(0)
1 + 𝑎𝑒
𝑐
5468 = 1 + 𝑎(1)
5468 + 5468𝑎 = 𝑐 → (1)
Using (8, 24172):
𝑐
24172 = −𝑏(8) → (2)
1 + 𝑎𝑒
Using (16, 69881):
10
𝑐
69881 = −𝑏(16) → (3)
1 + 𝑎𝑒
As the equation (1) does not contain the constant 𝑏, this means 𝑏 can be found through
elimination using equations (2) and (3). First, the equations (2) and (3) are rearranged so that
they are in terms of 𝑐. Then, they are equated to the first equation in terms of 𝑎, resulting in
equation (4) and (5), which are equated to each other to find 𝑏.
Converting in terms of 𝑐:
−8𝑏
(2) → 𝑐 = 24172 + 24172𝑎𝑒
−16𝑏
(3) → 𝑐 = 69881 + 69881𝑎𝑒
Equation (1) and (2):
−8𝑏
5468 + 5468 𝑎 = 24172 + 24172𝑎𝑒
−8𝑏
24172𝑎𝑒 − 5468 𝑎 =− 18704
−8𝑏
(
𝑎 24172𝑒 − 5468 = ) − 18704
−18704
𝑎 = −8𝑏 → (4)
24172𝑒 −5468
Equation (1) and (3):
−16𝑏
5468 + 5468 𝑎 = 69881 + 69881𝑎𝑒
−16𝑏
69881𝑎𝑒 − 5468𝑎 = − 64413
−16𝑏
(
𝑎 69881𝑒 − 5468 = ) − 64413
−64413
𝑎 = −16𝑏 → (5)
69881𝑒 −5468
Equation (4) and (5)
−18704 −64413
−8𝑏 = −16𝑏
24172𝑒 −5468 69881𝑒 −5468
69881𝑒
−16𝑏
− 5468 = ( −64413
−18704 )(24172𝑒 −8𝑏
− 5468)
−16𝑏 −8𝑏
69881𝑒 − 5468 = 83243. 747𝑒 − 18830. 747
−16𝑏 −8𝑏
69881𝑒 − 83243. 747𝑒 + 13362. 747 = 0 → (6)
From here, I decided that graphing equation (6) would be the easiest way to find 𝑏 and this
−𝑏
would require substituting 𝑒 with 𝑥, resulting in
16 8
69881𝑥 − 83243. 747𝑥 + 13362. 74 = 0
11
Equation (6) is plotted in Desmos and is shown to intersect the x-axis at the points (-1, 0),
−𝑏
(-0.813, 0), (0.813, 0) and (1, 0). Then, 𝑥 is changed back to 𝑒 . Therefore, 𝑏 equals to the
points (-1, 0) and (-0.813, 0). Also, point (1, 0) results in 𝑏 having a value of 0, which is also
incorrect as this would make the function only have one constant value of 𝑦. Therefore, 𝑏 is
𝑏= − ln 𝑙𝑛 (0. 813)
𝑏 = 0. 20702417
Then, 𝑏 is substituted into equation (4) to find 𝑎.
−18704
𝑎 = −8(0.20702417)
24172𝑒 −5468
𝑎 = 21. 890572
However, when 𝑏 is substituted into equation (5), it gives a different value of 𝑎.
−64413
𝑎 = −16(0.20702417)
69881𝑒 −5468
𝑎 = 22. 041912
The difference is 0.1513397, which is quite small, meaning that this difference may have risen
from the number of decimal places that were used. Therefore, to compensate for this difference, I
decided to average the two values, which results in 𝑎 having a value of 21.966242. Then, 𝑎 is
125514.76 while with equation (3), 𝑐 has a value of 125800.54. Again, the differences are quite
minor and should arise because of the limited decimal places used. Averaging these three values
125631.57
𝑦 = −0.20702417𝑥
1 + 21.966242𝑒
Plotting this in Graphmatica with the inputted data results in the graph below.
12
Graph 5. Logistic Graph of Daily Vaccine Doses vs Days
The calculated logistic graph seems to model the data quite accurately as it is closely
located to most of the points, except for the two outliers. However, the maximum number of
daily vaccine doses administered is far below the national target as 𝑐 only has a value of
125631.57 and therefore all 𝑦-values are below that number. Because of this, I decided to try and
use Graphmatica’s logistic regression tool to see if there was any issue with my calculations.
Using regression differs from calculating the logistic function manually as instead of only
using 3 points from the data, the machine learning algorithm of Graphmatica uses all 17 of the
data. Then, the algorithm tries to model the function by predicting a function and then calculates
the differences in the calculated 𝑦-value based on the function with the actual 𝑦-value of a
certain 𝑥-value. This is done with all the data and then the total difference is averaged. If the
average difference is large, the algorithm tries to adjust the function to fit the data better, thus
decreasing the average difference. This process is repeated 25,000 times and the logistic function
13
179476.7665
𝑦 = −0.2174𝑥
1 + 44.1966𝑒
The differences in the two functions are quite evident. As the logistic regression function
has a larger 𝑐, it makes sense that at larger 𝑥-values, the regression function is above the manual
function. However, it is still far below the target of 1 million. Furthermore, it also has a larger 𝑎
value, meaning that the inflection point is also located at larger 𝑥 and 𝑦-coordinates. On the other
hand, the value of 𝑏 is almost identical. Although at first the regression function looks steeper, as
both functions model the data quite accurately, it should mean that the steepness is similar.
As both of the logistic functions have a much smaller value of 𝑐 than 1 million, I thought
this might be because of the outliers and so I tested the logistic regression again after removing
the two outliers. In addition, I moved the days forward so that after Saturday’s data, the next data
is Monday’s. This is because I planned to see what the trajectory would look like if only 6 days
of every week is used to predict the model and whether it would eventually reach 1 million. If
the days were not moved ahead by one day and the model has 𝑐 of 1 million or more, it is very
14
unlikely for Sunday vaccinations to be at the same level as the other days. Because of this, it is
However, to my surprise, the 𝑐 of this new model was actually smaller than the first
113426.3179
𝑦 = −0,268𝑥
1 + 22.0969𝑒
In addition, the 𝑎 constant also has a smaller value while 𝑏 has a larger value. This would
make sense as the data are now more condensed than before, meaning the function would be
steeper at the inflection point. In addition, because only the 𝑥-values were altered, this would
make sense for 𝑎 to have a smaller value than before since the inflection point would be located
at a smaller 𝑥-coordinate. However, this function does have a higher coefficient of determination
2
(𝑟 ) than the first logistic regression function, which is defined as the proportion of the variance
in the dependent variable that is predictable from the independent variable. In other words, it is a
measure of how well a function models the given data. The higher the coefficient, the stronger
the relationship. As the second function has a coefficient of 0.9344 while the first function only
15
has a coefficient of 0.8344, the second function models the data better which is expected given
From here, because none of the models have 𝑐 at 1 million, I decided to set 𝑐 at 1 million
right away and then derive 𝑎 and 𝑏 from there to see. To do this, I am choosing to use the data in
Appendix 1 which removes the outliers from the function. As the regression function with no
outliers has a higher coefficient of determination, predictions made from the data used should be
more accurate, given the increased strength of relationship between 𝑥 and 𝑦. As only two
constants are calculated, only two points are required. This would mean that the function would
only pass through the two selected points and because of this, some trial and error was required
before I decided to use (0, 5468) and (11, 32139). Then, the equation found is
1000000
𝑦 = −0,199881568𝑥
1 +181.88222𝑒
The calculations were similar to the calculations for the previous model. As such, the
calculations for the equation above can be found in Appendix 2 to avoid repetitiveness.
16
The constant 𝑏 in the function is of a smaller value than all the previous functions,
indicating that the graph is less steep at the inflection point. On the other hand, the constant 𝑎 is
much larger as it takes more days for the model to even begin approaching 1 million. Therefore,
However, as 1 million was set as the carrying capacity, even at large 𝑥-values, the 𝑦-value
will only approach 1 million. The only possible way for 𝑦 to reach 1 million is if the
−0,199881568𝑥
denominator is 1, which would require 181. 88222𝑒 to equal 0. This will not
actually happen but it will approach 0 with a large value of 𝑥 so using limits, I set x to approach
infinity.
−0,199881568𝑥
(1 + 181. 88222𝑒 ) = 1 + 181. 88222(0) = 1
As ∞ , the limit, which in this case is the denominator of the function, becomes 1. This
shows that only at ∞ will the 𝑦-value equal 1000000. However, this would mean that after an
infinite number of days, Indonesia’s daily vaccinations will be at 1,000,000, which does not
conclude the investigation as it does not give a precise amount of days. Because of this, I decided
to set the limit at a large enough 𝑥-value so that the denominator of the function is close to 1,
which would result in the 𝑦-value still approaching 1000000. To do this, I figured that a value of
1.0001 for the denominator was a small enough number as it approaches 1, which would lower
Indonesia’s target for daily vaccinations below 1 million but it would still remain at a very high
−0,199881568𝑥
1 + 181. 88222𝑒 = 1. 0001
−0,199881568𝑥
181. 88222𝑒 = 0. 0001
−0,199881568𝑥
𝑒 = 0. 00000055
−𝑙𝑛(0.00000055)
𝑥= 0.199881568
𝑥 = 72. 109438
17
Rounding this value off, it would mean 𝑥 = 73. Substituting this value into the function
However, 73 was not the final amount of days required since Sundays were not included
in the calculations. Therefore, 73 is divided by 6 to give the number of weeks. This results in 12
weeks and with a remainder of one day, or 85 days including Sundays. Adding this to 28 January
2021, the first day where Indonesia began administering the second dose of the COVID-19
vaccine, would mean that on 24 April 2021, based on the logistic model used, Indonesia would
In the end, however, this is merely a prediction, especially because the data was
extrapolated. There is no guarantee that the number of daily vaccinations will continue to
increase as there are many contributing factors in the distribution and administering of the
vaccines, not just the number of days that have gone past. This includes available vaccines in
stock, delivery, financing, and many others. However, as the government did state that they plan
to have 1 million vaccines per day, independent of whether they actually achieve the goal, there
is still the possibility that the plan is similar to Graph 8 as it takes into account both existing data
Conclusion
This investigation was able to answer the aim through the generated model which
predicts that after 85 days, Indonesia should be able to administer 999,916 vaccines daily,
excluding Sundays. However, this number is below the government’s target of 1 million daily
doses because of the carrying capacity of the logistic function. Because the data was
extrapolated, the model is not guaranteed to accurately predict the vaccine distribution in the
18
coming weeks and months since there are many factors that can affect the vaccine distribution.
However, regardless of the actual result, there is a possibility that the government’s plan to
distribute the vaccines follows a similar function, based on the data that is available as well as
Other than extrapolation, another limitation of this investigation is the amount of data that
was used. Because Indonesia was still in the early stages of its vaccine distribution during the
writing of this investigation, there was only limited amounts of data that could be used to
generate the model. If more data were used, it would certainly help to generate a more accurate
Another limitation of this investigation was that none of the calculated logistic functions
actually reached the 1 million target. Because of this, I had to create a function where the target
has been initially set and although it seems like the model fits the data accordingly, the
investigation could check to see whether the coefficient of determination of the last logistic
function is strong enough or not. In addition, while laborious, an extended investigation could
perhaps find the two best points that should be used to model the function based on the highest
coefficient of determination.
19
References
Anjani, A. N. (2021) Akui Vaksinasi Covid-19 Masih Lamban, Ma'ruf Amin: Target Itu
rakyat.com/nasional/pr-011502576/akui-vaksinasi-covid-19-masih-lamban-
20 February 2021).
https://data.worldbank.org/indicator/SP.POP.TOTL?locations=ID (Accessed: 20
February 2021).
Syakriah, A. (2021) Indonesia allows emergency use of Sinovac vaccine, The Jakarta
https://www.thejakartapost.com/news/2021/01/11/indonesia-allows-emergency-us
20
Symbolab (2021). Functions Inflection Points Calculator Available at:
https://www.symbolab.com/solver/function-inflection-points-calculator/inflection
%20points%20f%5Cleft(x%5Cright)%3D20%2F%5Cleft(1%20%2B%205e%5E
https://www.nytimes.com/2021/02/26/opinion/sunday/coronavirus-alive-dead.htm
21
Appendix
Appendix 1
(covid19.go.id, 2021)
22
Appendix 2
1000000
5468 = −𝑏(0)
1 + 𝑎𝑒
1000000
5468 = 1 + 𝑎(1)
5468 + 5468𝑎 = 1000000
1000000−5468
𝑎= 5468
𝑎 = 181. 88222
1000000
32139 = −𝑏(11)
1 + 181.88222𝑒
−𝑏(11) 1000000
181. 88222𝑒 = 32139 − 1
−𝑏(11) 1000000
𝑒 = ( 32139 − 1)÷181. 88222
−𝑏(11)
𝑒 = 0. 16557333
𝑏 =− ln 𝑙𝑛 (0. 16557333) ÷ 11
𝑏 = 0. 199881568
23