Using python to visually inspect global COVID-19 vaccination progress (EDA)
Creator: Joel Saget | Credit: AFP

Using python to visually inspect global COVID-19 vaccination progress (EDA)

Although a number of countries have publicly set out clear vaccination targets, the future towards global social and economic recovery for the rest of the world still remains foggy. In the past couple of weeks, the news surrounding the already-dominating headline on COVID-19 intensified with cases and deaths skyrocketing in India. The argument that vaccine suppliers should share knowledge so that more countries can start producing vaccines for their own residents, especially the poorest of nations, have led health advocates to increasingly advance their stance towards momentarily lifting vaccine patent protections.

I explored the topic a little further to see what the data can tell us so far about global efforts towards mass vaccination.

import pandas as pd #Data processing
import numpy as np #Linear algebra
import matplotlib.pyplot as plt #Visual inspection/exploration
import seaborn as sns
import warnings
warnings.filterwarnings("ignore") #Avoiding warnings
----------------------------
# skipping code for loading file
----------------------------

df.head()
df.dtypes
df.describe()

No alt text provided for this image
No alt text provided for this image

The data set contains the following attributes with 193 distinct countries. There is however no official data on the number of people vaccinated and fully vaccinated for China. Data sources are predominantly acquired through official channels via governments, governmental agencies and health institutes.

No alt text provided for this image
No alt text provided for this image

Many of us would have thought the vaccination progress by country would seem to fall along the lines of rich versus poor, but the data indicates that this may not necessarily be the case. We know that both the United States and the United Kingdom are very well equipped with vaccines, given that they invested heavily in them and as a result, managed to place themselves at the front of the supply queue. Other rich countries like Canada and those in the European Union that were less prudent are punished, as the graph suggests, and are behind in the progress to innoculate its residents.

No alt text provided for this image

As mentioned earlier - China's data on number of people vaccinated wasn't attainable and therefore is missing in the bar chart above. The total number of people vaccinated here refers to say, a person, depending on scheme of immunisation, will receive 1 or more vaccines. Therefore it follows from this that the total number of vaccinations will be larger than the number of people vaccinated. The data for highest daily vaccination numbers are displayed in the graph below. It is highly plausible that if the data was available, China will likely top the bar chart above or will inevitably do so, considering the speed at which her vaccination program outpaces India and the United States by a considerable margin. She is constructing numerous production facilities, training up workers, and this will give her a intermediate- to long-term influence geopolitically and economically.

No alt text provided for this image

The 3 time-series plots below show the global progress in a span of roughly 4.4 months. Daily vaccinations/million ratio (in ppm) shows the number of vaccinations and total population for a country at a certain date. Daily vaccinations are summed up at a certain date regardless of country, though I'd argue the people vaccinated plot should align itself on a steeper slope if not for the inavailablity of China's numbers.

No alt text provided for this image

So if we decompose the data into the top 5 countries namely; United States, United Kingdom, India, China and England:

No alt text provided for this image
No alt text provided for this image
# Displaying all types and combinations of vaccines used

print("Various combination of vaccines used are the following;" + "\n",df['vaccines'].unique())

# Displaying number and combinations of vaccines used

print("Total number & combinations of vaccines used",df['vaccines'].nunique())
No alt text provided for this image

Univariate analysis of vaccine data

No alt text provided for this image

As expected, the top 3 vaccines used are Moderna, Oxford/AstraZeneca, Pfizer/BioNTech.

Latest (April) timestamp of each vaccine

No alt text provided for this image
No alt text provided for this image
No alt text provided for this image
No alt text provided for this image
No alt text provided for this image

The idea of a temporary intellectual property waiver can, in theory, accelerate the vaccination process and bring this nightmarish chapter in human history to an end. However, even if this is approved by the World Trade Organisation, not all pharmaceutical companies can magically attain regulatory approvals to laws that haven't yet exist in this space and start lending spare manufacturing capacities, let alone the safety of these vaccines. Whether or not we take the health advocates more seriously, despite the impracticalities that follow, should depend on the urgency and need of poorest of countries, among many other considerations.

No alt text provided for this image

Comparing vaccination progress in key EU nations, Oceania region and contrasting that with the top 3 vaccinated countries

No alt text provided for this image
No alt text provided for this image
No alt text provided for this image

Singapore's progress

No alt text provided for this image


To view or add a comment, sign in

More articles by Michael W.

Others also viewed

Explore content categories