A 2nd look at vaccination breakthroughs in Switzerland

[This article was first published on Mirai Solutions, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Our Covid19 app provides a global view of the pandemic, but how effective is the vaccination in Switzerland?

Since May 2020 we are showing a dashboard on our gallery that contains a global view of the COVID-19 Pandemic, with a further split by continent and country. We use publicly available data from the COVID-19 Data Hub, a great open source project providing a unified data set put together from numerous official local sources from all over the world.

One month ago, we now published an article “A closer look at Vaccination breakthroughs in Switzerland”, where we showed how to read data from the Swiss Federal Office for Public Health (BAG) in R, and illustrated the difference in Hospitalizations and Deaths between Vaccinated and Unvaccinated during the 4 weeks between 2021-09-12 and 2021-10-10 (Weeks 39-42).
Here we provide an update to that recent article with the latest data and some additional insights.

Reading BAG data

To see how we read BAG data in R please refer to the previous article.

We are interested again in the weekly BAG reports about vaccination breakthroughs occurred in the last 4 weeks for different age classes, see data documentation and our source: opendata.swiss.

The data documentation makes us aware of the following restrictions and warnings about the collected data (repetition from last article):

  1. Confirmed infections among the “Vaccinated” can be underestimated due to lower tendency of this group to be tested (we will however ignore infections).
  2. During the last month the populations of “Vaccinated” and “Unvaccinated” changed, i.e. the vaccinated population has slightly increased (mainly in the younger ages).
  3. Many infected people have “Unknown” vaccination status, therefore this source has been disabled by BAG, while a more complete information is available for Hospitalized and Deaths cases.

Like in the first article we will:

  • use the average of the vaccinated an unvaccinated population sizes across the month
  • focus on Hospitalizations and Deaths.

As of Today, (2021-12-06), the 4 last weeks considered are: W-45, W-46, W-47, W-48, i.e. in the interval from 2021-11-07 to 2021-12-05.

The age categories have been redefined again as: 0-19, 20-39, 40-59, 60-79, 80+.

Last 4 weeks Cases and current Vaccination Status

Before starting let’s check the current situation in the last 4 weeks: how the infections, hospitalizations and deaths occurred across the age classes in absolute terms. Overall Switzerland has registered 173’494 infections, 1’823 hospitalizations and 333 deaths.

plot of chunk ageclasses-pandemic-month

And also how the cases per 100’000 inhabitants are distributed in each age category:

plot of chunk ageclasses-pandemic-month-100k

As we read in the news, Infections happen in younger age classes (at least in absolute terms) while Hospitalizations and Deaths are more common among the older ones. Compared to the previous article there are much higher absolute numbers everywhere, and this report will therefore be more accurate than the previous one. Before going deeper we also want to have an overview of the vaccination status per age group, here we observe only some increase among the younger classes.

plot of chunk ageclasses-vacc-perc

After last publication, we were suggested to highlight more the differences among the 2 populations that would of course bias a comparison between Vaccinated and Unvaccinated. The biggest one being the younger age of the “Unvaccinated” population, for this reason we are grouping our data in Age Classes, although we should still keep in mind that, even within the same class, age has a certain variability and there are other differences to consider.
These differences may make a population more or less inclined to infection, and hence to hospitalizations.
The more important one being probably the fact that, if we can assume that “Vaccinated” with 2 doses and those recovered with one dose have a similar protection, we can’t do the same for “Unvaccinated” and those recovered from Covid. Tough to say how much this could impact the figures, unfortunately we cannot extract relevant information from BAG that would allow us to exclude the already Infected from the Unvaccinated population. We can show here the % of total contagion in the global population and warn the readers that a “small” % of the “Unvaccinated” is NOT unprotected (leading to underestimation of the positive effect of vaccination).

Table 0: Confirmed Infections per Age Class. 2021-12-05
Population Infections Percentage
0-19 1’733’962 170’030 9.8 %
20-39 2’290’857 338’148 14.8 %
40-59 2’512’448 301’126 12 %
60-79 1’712’190 128’442 7.5 %
80+ 459’898 51’188 11.1 %
All 8’709’355 989’145 11.4 %

It is worth mentioning other points, although we can’t eliminate their bias in the analysis of vaccination impact on Hospitalized and Deaths. With a (?) we are indicating what is just a personal opinion or postulation, some of these differences could actually cause a bias in both directions.

  • Leading to underestimation of vaccination effect:
    • People with chronic diseases are over-represented in the “Vaccinated” population (visible from BAG website).
    • Those working in riskier positions are over-represented in the “Vaccinated” population, e.g. doctors (?).
    • The “Vaccinated” may tend to be less cautious, exposing themselves to higher risks (?).
    • Since 3G rule (green pass) the “Unvaccinated” are less exposed to risky situations.
    • A portion of “Unvaccinated” is being very careful and isolates itself (?).
  • Leading to overestimation of vaccines effect:
    • The “Vaccinated” may lead a healthier life and hence be less at risk (?).
    • A portion of “Unvaccinated” is being very incautious and exposes itself to higher risk, e.g. participating in demonstrations, denying Covid and taking no protections etc. (?).

We are happy to hear more from the readers about this topic and possibly collect sources that could give a better insight. We can neglect of course possible causes of bias for Infections (e.g. lower test tendency of the “Vaccinated”) that would not lead to a possible hospitalization, as Infections are not treated in this article.

Furthermore such diversification can be analyzed only with a proper cohort study that would suit better a much bigger country with much more data released (possibly something was done in USA).

Last 4 weeks vaccination breakthrough cases

Last time we mentioned that test centers or pharmacies do not report to BAG any information on vaccination status when an infection is found. Such registration is only listed in a clinical report mainly sent by doctors and hospitals. Now BAG has retired data on Infections and vaccination status. Here a view of the absolute figures of all vaccination categories, including “Unknown”.

plot of chunk ageclasses-vacc-unvac

Overall the vaccination status is “Unknown” for 12.8 % of the Hospitalized and for 16.2 % of the Deaths.

Table 1: absolute entries per age and vaccination status. (2021-11-07,2021-12-05)
Population  Hospitalizations  Deaths
Unknown Fully vac. Partially vac. Unvac.   Unknown Fully vac. Partially vac. Unvac.   Unknown Fully vac. Partially vac. Unvac.
0-19 0 345’370 26’023 1’362’569   5 1 0 27   0 0 0 0
20-39 0 1’547’491 54’079 689’287   11 13 2 100   0 0 0 0
40-59 0 1’915’012 41’490 555’946   33 61 1 295   1 2 0 7
60-79 0 1’478’737 19’310 214’143   87 237 3 370   7 29 0 46
80+ 0 423’546 3’685 32’668   97 282 1 197   46 107 1 87
All 0 5’710’156 144’586 2’854’613   233 594 7 989   54 138 1 140

We do not know if these cases tend to be more or less vaccinated (checking their curves in the BAG site they seem to be somewhere in between), therefore, to be consistent with the previous article, we reassign proportionally the cases of the “Unknown” Vaccination Status to the others vaccination categories. (N.B: compared to last article we skip here few steps to present the final numbers).

Table 4: entries per age and vaccination status. Reallocation of Unknown vaccination status. (2021-11-07,2021-12-05)
Population  Hospitalizations  Deaths
Fully vac. Partially vac. Unvac.   Fully vac. Partially vac. Unvac.   Fully vac. Partially vac. Unvac.
0-19 345’370 26’023 1’362’569   1 0 32   0 0 0
20-39 1’547’491 54’079 689’287   14 2 110   0 0 0
40-59 1’915’012 41’490 555’946   67 1 322   2 0 8
60-79 1’478’737 19’310 214’143   271 3 423   32 0 50
80+ 423’546 3’685 32’668   339 1 237   132 1 108
All 5’710’156 144’586 2’854’613   692 8 1’123   166 1 166

We should however look at the records over 100’000 people in each reference age class and vaccination status, and the ratio between the “Unvaccinated” and “Vaccinated” cases, to understand better the associated impact of vaccination. This view will be used also in the following sections.

plot of chunk ageclasses-vacc-unvac-scale100k-plot

Table 5: entries over 100’000 people per age and vaccination status. Reallocation of Unknown vaccination status. (2021-11-07,2021-12-05)
Hospitalizations  Deaths
Over 100k  Ratio over fully Vac.  Over 100k  Ratio over fully Vac.
Fully vac. Partially vac. Unvac.   Partially vac. Unvac.   Fully vac. Partially vac. Unvac.   Partially vac. Unvac.
0-19 0.3 0 2.3   0 6.8   0 0 0  
20-39 0.9 4.1 15.9   4.4 17.3   0 0 0  
40-59 3.5 2.6 58   0.8 16.7   0.1 0 1.4   0 12.1
60-79 18.3 17.8 197.4   1 10.8   2.1 0 23.5   0 11
80+ 80 32.6 724.9   0.4 9.1   31.2 33.5 329.1   1.1 10.5
All 12.1 5.5 39.3   0.5 3.2   2.9 0.9 5.8   0.3 2

Comparing the “Table 5” above with “Table 5” of the previous article, we are seeing higher values everywhere. Europe and Switzerland are in fact going through a new wave that started few weeks ago. In what categories are the numbers higher compared to last time?
First of all we noticed that the figures of the past articles have been updated and are not exactly reproducible. This happens also in the currently analyzed period as the BAG may review this figures later because due to delay in communication. In fact at the time of publishing we notice already slightly higher numbers compared to the BAG W-48 report.

Table 5.1: entries over 100’000 people per age and vaccination status. Reallocation of Unknown vaccination status. (2021-11-07,2021-12-05)
Hospitalizations  Deaths
Over 100k  Ratio over fully Vac.  Over 100k  Ratio over fully Vac.
Fully vac. Partially vac. Unvac.   Partially vac. Unvac.   Fully vac. Partially vac. Unvac.   Partially vac. Unvac.
0-19 60 % 176.9 %   261.5 %    
20-39 180 % 292.9 % 212 %   163 % 122.7 %   0 % 0 %  
40-59 291.7 % 72.2 % 214 %   27.6 % 77 %   100 % 0 % 70 %   0 % 38.7 %
60-79 338.9 % 89.4 % 239.6 %   70.1 %   420 % 150.6 %   37.2 %
80+ 336.1 % 34.9 % 415.7 %   10.3 % 124.7 %   342.9 % 125.5 % 342.1 %   36.7 % 99.1 %
All 310.3 % 94.8 % 238.2 %   33.3 % 76.2 %   322.2 % 112.5 % 200 %   33.3 % 62.5 %

We see from the Ratio-s < 100% where the impact was more remarkable in the “Fully Vaccinated” population. We must however warn here vs a 1 to 1 comparison as the data analyzed in October were more scarce and therefore its estimates less accurate.

Scenarios: (a) all vaccinated, (b) current status, (c) all unvaccinated

We would like to check again our 3 possible Scenarios: what if there had been no vaccinated at all this month? Or if we had been all vaccinated?

We can generate these opposite scenarios and compare them with the what really happened in the last 4 weeks (“Current”).

We can take the Hospitalization and Death rates over 100’000 people of the unvaccinated (“%0 Vac.”) and vaccinated (“%100 Vac.”) populations and project them over the full population.

Worth mentioning that the protection given by the vaccines against infection is also to consider as source of bias in this scenario analysis:

  • If there was no vaccination at all the “Unvaccinated” would have worse figures, as they would not benefit of the presence of a vaccinated population.
  • On the contrary, we would have fewer cases among the “Vaccinated” (and hence hospitalizations and deaths) if the whole population had received a full protection.

Despite the decay of vaccination benefits over time (above all against infections), this is still a factor to consider.
The cases per 100’000 people in the 3 scenarios are presented below:

plot of chunk ageclasses-cases-scenarios-100k

More importantly, projecting the values of the 3 scenarios on the whole population we can evaluate the vaccination impact in absolute terms. The 2 scenarios seem to differ remarkably from the current state:

plot of chunk ageclasses-cases-scenarios

Table 6: Scenarios (a,b,c) per age and vaccination status. Reallocation of Unknown vaccination status. (2021-11-07,2021-12-05)
Hospitalizations  Deaths
0% Vac. Current 100% Vac.   0% Vac. Current 100% Vac.
0-19 40 33 6   0 0 0
20-39 364 126 21   0 0 0
40-59 1456 390 87   35 10 3
60-79 3380 697 314   402 82 37
80+ 3334 577 368   1514 241 144
Total 8574 1823 796   1951 333 184

Once again, we can deduce that if we had no vaccination at all in Switzerland, we would now be in the worst situation recorded since the start of the pandemic. In the current situation the health system is struggling with 1’823 hospitalizations, what would happened if we had 8’574 now?
On the contrary, for example we notice that, if all people under 40 were vaccinated, there would be hardly any young in Hospital.

Time line of reported case

In addition this time we will like to check also how the cases developed over time within the two populations, to understand if the benefits of being vaccinated is decreasing over time. Please note, we cannot differentiate according to the actual date of vaccination (e.g. if earlier than or within 6 months), at high level we can consider that most of Swiss population got their shots in April May, and now there should be a decay of benefit as observed in other countries.
We will use again figures per 100k people, reallocating those in the “Unknown” category in each analyzed week.

For sake of keeping it simple we remove the “Partially Vaccinated” population, and to have more data also in good times the age Classes are restricted to 4: 0-39, 40-69, 70+. We also reduce the time-line to start from week W-19, corresponding to the date 2021-05-16.
In this part we are just replicating the calculations done so far for each week in the time-line, i.e. for a given week we re-calculate the report’s figures related to its past 4 weeks. In this way we can smooth the lines and make the estimates more reliable (at least for over 40), while weekly reports suffer the data scarcity in some periods and are less readable.

plot of chunk ageclasses-pandemic-hosp-timeline plot of chunk ageclasses-pandemic-death-timeline

We perceive a recent increase over time in both populations, both Hospitalized and Death cases, where the steeper seams to be among the older “Unvaccinated”. The curves related to the whole population (“All”) are closer because the “Unvaccinated” population is much younger. Due to the larger values in the “Unvaccinated” population the curves among the “Fully Vaccinated” look pretty flat and it is worth having a better look at them to see better the picks reached in the latest weeks.

plot of chunk ageclasses-pandemic-hosp-timeline-fullyvac plot of chunk ageclasses-pandemic-deaths-timeline-fullyvac

Now the latest increase in the curves looks more similar to the one observed among the “Unvaccinated”, although of course with a lower magnitude.
We can also plot the ratio between the incidence of “Unvaccinated” vs “Fully Vaccinated” over time, i.e. how higher is the risk for the “Unvaccinated”.

plot of chunk ageclasses-pandemic-hosp-timeline_ratio plot of chunk ageclasses-pandemic-death-timeline-ratio

The Ratio gives the measure of how much more risk are the “Unvaccinated” carrying. We would expect this ratio to become lower with the decay of vaccination’s protection over time, and this seems to be the case for the middle age class, while we see the opposite for the older in the last 3 weeks.

Conclusions

We hope we are providing a useful additional report to what published weekly by BAG, here we must make the reader aware that the utilized data may be updated in the following days.
We have also mentioned sources of discrepancies between the two populations that unfortunately cannot be handled because BAG data sources lack some views that could have been quite interesting to check:

  • no data on Infections
  • no info on vaccination time-lag.

It would have been very informative, for example, to check the percentage of “Unvaccinated” and “Vaccinated” landing in hospital given an infection, or if the vaccination benefit is smaller for those who had their 2nd shot 6 months or longer ago as we would expect.

Even with some deficiency in the data, this analysis clearly shows the benefits of vaccination and what could have happened this month if vaccines had been unavailable. Comparing the figures with our previous article we report an increase of Hospitalizations and Deaths determined by the new wave that started at the beginning of Autumn. This jump seems to be generally higher among the “Vaccinated” in the middle age class, as a first possible indication of a decay of vaccination benefit over time, although surely other factors could play a role, such as a certain instability of the estimates during summer time due to scarcity of cases.

The repeated scenarios analysis draws again a dreadful situation if we had no vaccination at all.

Similar results about the benefits of vaccination are available from other countries, their dashboards or produced reports could be checked for comparison. Here a short recent list:

If you have any question about the approach, or any suggestion for improvement please do not hesitate to get in touch, we would love to hear from you as we may publish further updates to this article.

To leave a comment for the author, please follow the link and comment on their blog: Mirai Solutions.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)