get_casecontrol_mindet_VE_or: Minimum detectable variant and vaccine-specific efficacy...

Description Usage Arguments Details Value References Examples

View source: R/get_casecontrol_mindet_VE_or.R

Description

The function get_cohort_mindet_VE_or calculates the minimum detectable variant and vaccine-specific efficacy (VE) for a given sample size, power, and type-I error rate. The efficacy is defined as VE = 1 - odds ratio, and the function returns both absolute and relative minimum detectable VE. The NULL hypothesis is that VE = 0 and the alternate hypothesis in that VE is not equal to 0.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
get_casecontrol_mindet_VE_or(
  anticipated_VE_for_each_brand_and_variant = matrix(data = c(0.8, 0.5, 0.3, 0.3, 0.5,
    0.8, 0.9, 0.5, 1), nrow = 3, ncol = 3, byrow = F, dimnames = list(paste0("brand",
    1:3), paste0("variant", 1:3))),
  brand_proportions_in_vaccinated = c(brand1 = 0.3, brand2 = 0.5, brand3 = 0.2),
  overall_vaccine_coverage = 0.3,
  proportion_variants_in_unvaccinated_cases = c(variant1 = 0.6, variant2 = 0.3,
    variant3 = 0.1),
  controls_per_case = 2,
  calculate_relative_VE = T,
  power = 0.8,
  alpha = 0.05,
  confounder_adjustment_Rsquared = 0,
  prob_missing_data = 0.1,
  total_cases = seq(50, 500, 10)
)

Arguments

anticipated_VE_for_each_brand_and_variant

a matrix of vaccine efficacy of each vaccine (row) against each variant (column). Each value must be a real number between 0 and 1.

brand_proportions_in_vaccinated

a vector denoting the proportion in which vaccines are given in the vaccinated subjects of the study cohort. Each value of this vector must be a real number between 0 and 1 and the sum of the values of this vector must be equal to 1.

overall_vaccine_coverage

the proportion of the study cohort that will be vaccinated. It should be a real number between 0 and 1.

proportion_variants_in_unvaccinated_cases

a vector of the proportions in which each variant is expected to be present in the unvaccinated and infected subjects in the study cohort. Each value of this vector must be a real number between 0 and 1 and the sum of the values of this vector must be equal to 1.

controls_per_case

the number of controls to be sampled per case in the study cohort. It should be a real number between 0 and Inf.

calculate_relative_VE

a logical indicating if calculations should also be done for relative vaccine efficacy (default TRUE).

power

the power to detect the VE. It is equal to 1 - Type-II error. It is a numeric that must take a value between 0 and 1.

alpha

Type-I error probability. It is a numeric that must take a value between 0 and 1.

confounder_adjustment_Rsquared

we use this parameter to adjust the calculations for potential confounders using the methodology proposed by Hsieh and Lavori (2000). It represents the amount of variance (R^2) explained in a regression model where vaccination status is the outcome and confounders of interest are predictors. It is a numeric that must take a value between 0 (no adjustment for confounders) and 1.

prob_missing_data

to adjust the calculations for non-informative and random subject loss to follow-up/dropout. it should take a numeric value between 0 and 1.

total_cases

a vector of the number of cases in our cohort for which calculations should be done.

Details

In this function efficacy is defined as VE = 1 - odds ratio, where 'odds ratio' is the ratio of odds of being vaccinated with a particular vaccine versus being unvaccinated among cases and the same odds in controls. When the groups being compared are a particular vaccine versus placebo then we call the VE as the absolute VE of the vaccine. For M vaccines there are M absolute VE, one each for the M vaccines. When the groups being compared are a particular vaccine versus another vaccine then we call the VE as the relative VE of the vaccines, for a particular variant. For M vaccines and I variants there are I x 2 x utils::combn(M, 2) permutations of relative VE of two vaccines against the same variant.

We first transform the user inputs for I variants and M vaccines into two conditional tables, one for cases, and another for controls. First an I x (M + 1) cross table of the probability of being unvaccinated or vaccinated with a vaccine, given that the subject is a case. The sum of the cells of this cases table is equal to 1. Second a 1 x (M + 1) vector of the probability of being unvaccinated or vaccinated with a vaccine, given that the subject is a controls. The sum of this controls vector is equal to 1. The first column in both of these corresponds to subjects who are unvaccinated and the remaining M columns correspond to subjects who are vaccinated with a particular vaccine.

In general, while calculating minimum detectable VE it is not necessary to ask for anticipated_VE_for_each_brand_and_variant. The reason we need it in the multiple variant and multiple vaccine scenario is explained next.

After we obtain the cases table and controls vector our next step is to calculate the minimum detectable VE for each absolute and relative VE combination. For absolute VE we extract a 1 x 2 vector of probabilities of being a control larger 1 x (M + 1) controls vector. The two columns are for the vaccine of interest and placebo. We also extract a 1 x 2 vector of probabilities of being a case from the larger I x (M + 1) controls vector. The row is the row corresponding to the variant of interest and the two columns are for the vaccine of interest and placebo. The effective vaccine coverage is then rescaled probability of being vaccinated in the selected 1 x 2 controls vector. The effective number of cases are total_cases * sub_cases_vector_probability_sum * (1 - prob_missing_data) * (1 - confounder_adjustment_Rsquared). Here sub_cases_vector_probability_sum is the sum of the cells of the 1 x 2 sub vector of cases. The effective number of controls are total_cases * controls_per_case * sub_cases_vector_probability_sum * (1 - prob_missing_data) * (1 - confounder_adjustment_Rsquared). Here sub_cases_vector_probability_sum is the sum of the cells of the 1 x 2 sub vector of controls. We then simply pass these adjusted parameters to the function epi.sscc of the R package epiR to obtain the minimum detectable absolute VE. For relative VE the process is similar to absolute VE, except that instead of placebo we select a 1 x 2 sub-vector where the columns are two vaccines of interest.

Value

A data frame consisting of the input parameters, absolute and relative VE combinations, and the minimum detectable VE for each absolute and relative VE combination.

References

  1. Hsieh, F. Y., & Lavori, P. W. (2000). Sample-size calculations for the Cox proportional hazards regression model with nonbinary covariates. Controlled clinical trials, 21(6), 552-560.

  2. Morris, J. A., & Gardner, M. J. (1988). Statistics in medicine: Calculating confidence intervals for relative risks (odds ratios) and standardised ratios and rates. British medical journal (Clinical research ed.), 296(6632), 1313.

Examples

1
2
As an example we recommend running the function without passing any parameter to it.
The default scenario is for three vaccines and three pathogen variants.

anirudhtomer/vess documentation built on Feb. 24, 2022, 3 p.m.