Using fluEvidenceSynthesis to predict efficacy of different vaccination scenarios

Edwin van Leeuwen

2020-01-14

Introduction

This package implements all the tools needed to analyse and compare the effectiveness of different Influenza vaccine programs (see Baguelin et al. (2013) for more details). This analysis has two main steps.

  1. Parameter inference using existing model
  2. Simulation of different possible vaccination strategies using the inferred parameters

This vignette will focus on how the fluEvidenceSythesis package can be used to perform the second step. For details on the first step see the inference vignette.

To test the efficacy of different vaccination scenarios you first need to specify a vaccination scenario. A vaccination scenario specifies the rate of vaccination per day of each age group and risk group during a given period and the efficacy of the vaccine during that season. The epidemiological model can then be run with this scenario. To run the model we also need to have the epidemiological parameters that we inferred by fitting the model to our Influenza data (see inference vignette).

Building a vaccination scenario

The vaccination coverage rates in the UK in season 2007-08. Note that this only shows the first 6 weeks of data
Week Date Practices.responding X65 Under.65 at.risk.under.65
38 2007-09-23 NA 0 0 0
39 2007-09-30 23 3.9 0.25 1.92
40 2007-10-07 33.9 12.5 0.8 6.17
41 2007-10-14 43.5 42.6 2.98 21.26
42 2007-10-21 43.9 46.8 3.37 24.03
43 2007-10-28 46 51.1 3.75 26.59

The as_vaccination_calendar() function can be used to build a vaccination scenario object based on coverage data. In the example below we use the coverage rates for the 2007-08 season in the UK. If there are multiple age groups and risk groups then the layout in general is expected to be all age groups for one risk group, followed by the age groups for the second risk group etc. In the example below the efficacy of the under 65 at low risk is expected to be \(.7\) and for the 65+ the efficacy is \(.4\).

library("fluEvidenceSynthesis")
data(coverage)
# Coverage rates for respectively low risk <65, low risk 65+,
# high risk <65 and 65+. Original is in percentages. Here converted to fraction
cov <- coverage[,c("Under.65","X65","at.risk.under.65","X65")]/100.0

vaccine_calendar <- as_vaccination_calendar(efficacy = c(0.7, 0.4, 0.7, 0.4), 
                                        dates = coverage$Date,
                                        coverage = cov, 
                                        no_age_groups = 2, no_risk_groups = 2)

More age groups

Below we show how to create a vaccination calendar for 7 age groups and 3 risk groups. We assume at risk young children and 65 year and older get a vaccine.

Outbreak size

The above shows how to use a specific posterior (mcmc) sample to create one prediction. In general, you should have a number of samples from the posterior and you call vaccinationScenario using each of those samples. This will result in a posterior distribution for the predicted efficacy of your vaccinationScenario. This can then be used for further analysis, such as the cost effectiveness of your analysis.

Full posterior of cases

To get the full posterior of cases under this vaccination scenario you can run it for each inference sample as follows:

Change the vaccination coverage

Here we show an example on how you could change the uptake rate of vaccination to a 80% uptake in all the age/risk groups.

## Warning in change_coverage(coverage, rep(0.8, ncol(coverage))): No prior
## information on uptake rate. Using constant uptake rate

Possible exercises

  1. Try different vaccination scenarios
    • Uptake rate
    • Additional age groups/risk groups
  2. Explore the results by age group/risk group

References

Baguelin, Marc, Stefan Flasche, Anton Camacho, Nikolaos Demiris, Elizabeth Miller, and W. John Edmunds. ‘Assessing Optimal Target Populations for Influenza Vaccination Programmes: An Evidence Synthesis and Modelling Study.’ PLoS Med 10, no. 10 (2013): e1001527. doi:10.1371/journal.pmed.1001527.