PoD curve point estimation using vaccine efficacy and population summary statistics

Pavel Fiser (MSD), Julie Dudasova (MSD)


This document describes how to estimate PoD curve parameters using PoDBAY package. This process can be applied when user doesn’t have individual level data about vaccinated and control populations, but only summary statistics data and corresponding estimatedcase-count vaccine efficacy.

The goal of this document is to show how to estimate point estimate of PoD curve parameters in two steps

  1. \(et_{50}\) and \(\gamma\) estimation

Required input:

  1. \(p_{max}\) estimation

Required input:

1. \(et_{50}\) and \(\gamma\) estimation

Function PoDEfficacySquaredError() is used to estimate \(et_{50}\) and \(\gamma\). As the inputs to the function we use vaccinated and control mock-up population class objects together with artificially chosen TrueEfficacy parameter.

Note: To convert your data in to the population class object use generatePopulation() function from PoDBAY package. See vignette vignette("population", package = "PoDBAY") for further details.

# Mockup vaccinated and control population class objects

# Observed vaccine efficacy
TrueEfficacy <- 0.53

# PoD curve parameter estimation
params_et50_slope <- PoDEfficacySquaredError(TrueEfficacy, 
                                             initialSlope = 6)
#>     et50    slope 
#> 5.268031 6.179620


  1. Estimated \(et_{50}\) and \(\gamma\) parameters highly depends on the initial setup of slope parameter
  2. \(p_{max}\) parameter is not part of the optimization as CoP-based (PoDBAY) efficacy is not dependent on the \(p_{max}\) value. Hence it needs to be estimated separately.

2. \(p_{max}\) estimation

Once we have \(et_{50}\) and \(\gamma\) estimated we can proceed with \(p_{max}\) estimation using PmaxEstimation. As the inputs to the function we use estimated \(et_{50}\) and \(\gamma\), control mock-up population class object together with artificially chosen IncidenceRate parameter.

# Incidence rate for low titer population 
IncidenceRate <- 0.02

# pmax estimation
pmax <- PmaxEstimation(IncidenceRate, params_et50_slope, control)
# combining PoD curve parameters
PoDParams <- unlist(c(params_et50_slope, pmax))

#>       et50      slope       pmax 
#> 5.26803128 6.17962043 0.03552708