🤔 What is the strength of association between
💉 COVID-19 vaccination and
⚰️ overall mortality by country? 🌍

About

This app visualizes weekly counts of all-cause mortality (all ages) and per capita weekly COVID-19 vaccine doses by country, and estimates the association between vaccination and mortality using a distributed lag model (DLM). An optional toggle allows the DLM outcome to be switched from all-cause deaths to non-COVID deaths (all-cause deaths minus COVID-19 deaths), enabling exploration of the hypothesis that any positive association between vaccination and all-cause mortality is attributable to concurrent COVID-19 death waves rather than a direct vaccine effect.

Data sources

  • Mortality: Human Mortality Database (STMF) — weekly all-cause death counts (all ages, both sexes combined) by country.
  • Vaccination: Our World in Data — COVID-19 vaccinations — 7-day average of daily doses administered per million people, multiplied by 7 to obtain an estimated weekly total.
  • COVID-19 deaths: Our World in Data — COVID-19 deaths — weekly confirmed COVID-19 deaths by country, used to derive the non-COVID all-cause death series (all-cause deaths minus COVID-19 deaths). Weeks with no reported COVID-19 deaths are treated as zero; weeks outside the OWID coverage window are also set to zero.

Analysis

  • Descriptive time-series plots display weekly all-cause deaths alongside weekly vaccine doses, with optional overlays for COVID-19 deaths and the derived non-COVID death series.
  • A quasiPoisson distributed lag non-linear model (DLNM; R package dlnm ) is fitted to estimate the lagged association between vaccination and mortality over up to four years, adjusting for long-term trend (optional natural spline) and seasonality (up to four pairs of sine/cosine harmonics). The DLNM approach is described in: Gasparrini (2011), Journal of Statistical Software.
  • Testing the COVID-confounding hypothesis: Because vaccination campaigns often overlapped with large COVID-19 death waves, a spurious positive association between vaccine doses and all-cause mortality is plausible at the ecological (country) level. Toggling the DLM outcome to non-COVID deaths (all-cause minus COVID-19 deaths) allows direct examination of whether any positive association persists once COVID-19 deaths are removed from the outcome — if the association weakens substantially or reverses, this supports the confounding-by-COVID-wave hypothesis.

Plots

  • Time-series panel: weekly all-cause deaths (black) and vaccine doses per million (blue). Optional overlays add COVID-19 deaths (dark green) and non-COVID all-cause deaths (purple dashed). The red dashed horizontal line marks the numerator dose level used in the association plots.
  • Lagged-effect plot: week-by-week count ratios from the DLM, comparing the selected numerator dose group to zero doses, with 95% confidence bands.
  • Cumulative effect plot: the overall one-year-ahead mortality count ratio (numerator vs zero doses), being the product of the 52 weekly lagged count ratios shown above.
  • Observed vs predicted panel: observed deaths (grey), model-fitted deaths (red dashed), and the counterfactual trajectory without any vaccination (blue dot-dash), with 95% prediction intervals. The outcome shown (all-cause or non-COVID deaths) reflects whichever series was selected for modelling.

Disclaimer

This app is for educational purposes only and does not provide medical advice.

Results represent ecological associations at the country level and should not be interpreted as individual-level causal effects. Confounding, data quality variation across countries, and modelling assumptions all limit causal inference.

Please refer to the source links above for full details on data provenance and methodology.


🌍 Select country to visualise data. Select a cutoff date to filter the mortality data. 🪢 The degrees of freedom (knots) slider adjusts the smoothness of the spline fit for the long term trend. ⏰ The number of lag weeks controls the maximum lag considered in the distributed lag model (up to 4 years). 🌦️ The number of harmonics controls the seasonal adjustment in the model. The log-transform option applies a log transformation to the vaccine doses data. The analysis is run on the selected country and cutoff date. Click the button below to run the analysis.

🔧 Optimise the model fit using Nelder-Mead method.