Package 'NegativeControlOutcomeAdjustment'

Title: Estimation of Vaccine Efficacy using Negative Control Outcomes
Description: Methods to reduce confounding bias from unmeasured confounders in observational studies of vaccine efficacy using negative control outcomes.
Authors: Lola Etievant [aut], Mitchell H. Gail [aut], Joshua N. Sampson [aut], Bill Wheeler [cre]
Maintainer: Bill Wheeler <[email protected]>
License: GPL-2
Version: 0.0.6
Built: 2024-11-13 02:56:39 UTC
Source: https://github.com/cran/NegativeControlOutcomeAdjustment

Help Index


Estimation of Vaccine Efficacy using Negative Control Outcomes

Description

This package uses observational cohort data from a secondary outcome Y2, and from measured strata indicator confounders W, to adjust estimates of the log-relative risk of a binary outcome Y1 with a binary exposure T. Adjustment for Y2 reduces bias by unmeasured confounders. A key assumption is that Y2 is not affected by T ("negative control outcome"). Another key assumption is that effects of unmeasured confounders on Y1 are proportional to their effects on Y2. This work was motivated by studies of vaccine efficacy against vaccine-targeted strains in which measurements of infection against several non-vaccine-targeted strains are also available. In such study, Y1 would typically be the indicator of infection with a given vaccine-targeted strain, or the indicator of infection with at least one of several vaccine-targeted strains, and Y2 would be the total number of infections with the non-vaccine-targeted strains.

Details

Y1 is coded 0 or 1 for absence or presence of the event (e.g. infection with one given vaccine-targeted strain, or infection with at least one vaccine-targeted strain). Y2 is coded with non-negative integers for the total number of events. T is coded 0 for unexposed (e.g. received placebo) and 1 for exposed (e.g. received vaccine). W is a stratification indicator covering K possible strata. It can be entered as a factor, vector, matrix, or data frame.

The package includes three methods: Joint-NC, Joint-MH, and SS-Joint. If there are many strata, the program recommends using the Joint-MH method, which works with many, possibly sparse, strata. If there are only a few large strata, the SS-Joint method can be used, which makes fewer assumptions. If W is null (i.e. there are no data on measured strata), the Joint-NC method can be used.

Author(s)

Lola Etievant, Mitchell H. Gail, Joshua N Sampson

References

Etievant, L., Sampson, J.N., Gail, M.H. (2022). Increasing efficiency and reducing bias when assessing HPV vaccination efficacy by using nontargeted HPV strains. Biometrics. 1-12. https://doi.org/10.1111/biom.13663


Data for examples

Description

A simulated toy data set mimicking data from a vaccine trial.

Details

A data frame consisting of 1000 subjects with primary outcome of interest (Y1) as infected with HPV type 16, secondary outcome (Y2) as the total number of infections with 20 non-targeted HPV types, vaccine assignment (T), and two categorical covariates Age and Region with 13 and 3 levels respectively.

See Also

negativeControlOutcomeAdjustment

Examples

data(data, package="NegativeControlOutcomeAdjustment")

 # Display some of the data
 data[1:5, ]

NegativeControlOutcomeAdjustment

Description

Reducing confounding bias in observational studies of vaccine efficacy using negative control outcomes

Usage

negativeControlOutcomeAdjustment(Y1, Y2, Trt, W=NULL, 
          method=c("Joint-MH", "Joint-NC", "SS-Joint"), minObsPerStrata=20)

Arguments

Y1

Binary vector for the outcome of interest.

Y2

Numeric vector of natural numbers for the secondary outcome, which should be unaffected by the treatment.

Trt

Binary vector for the treatment.

W

Categorical confounders to define strata. W can be a factor, vector, matrix or data frame. If NULL, then only the Joint-NC method will be used.

method

Any of "Joint-MH", "Joint-NC", or "SS-Joint". See details. The default is all three methods.

minObsPerStrata

Minimum number of observations within each stratum for the SS-Joint method. Strata with fewer than minObsPerStrata observations will be removed from the SS-Joint calculation. If no stratum has at least minObsPerStrata observations, then the SS-Joint method will not be used. The default is 20.

Details

Observations with missing or non-finite values will be removed from the data.
For the SS-Joint method, strata that yield non-finite estimates are removed from the calculations, and strata that contain too few observations as defined by minObsPerStrata above are removed.

Joint-MH

Joint-MH reduces bias due to unmeasured confounders in the estimate of the primary outcome relative risk, by using the treatment effect on the secondary outcome. Joint-MH first estimates jointly the effects of the treatment on the primary and secondary outcomes from stratification (with Mantel-Haenszel-type weights) on the measured confounders, and then uses the non-zero estimated effect on the secondary outcome to "subtract off" bias due to unmeasured confounders. If the observed confounder used to stratify only has a few large strata, method SS-Joint could be used instead. If information on observed confounders is not provided, method Joint-NC is used instead.

Joint-NC

Joint-NC reduces bias due to unmeasured confounders in the estimate of the primary outcome log-relative risk, by using the treatment effect on the secondary outcome. Joint-NC first estimates jointly the effects of the treatment on the primary and secondary outcomes, by using log-links, and then uses the non-zero estimated effect on the secondary outcome to "subtract off" bias due to unmeasured confounders. Information on potential observed confounders is not used with this method.

SS-Joint

SS-Joint applies method Joint-NC within each stratum of the observed confounders, in order to reduce bias due to unmeasured confounders in the primary outcome log-relative risk estimate. More precisely, it estimates jointly the effects of the treatment on the primary and secondary outcomes, by using log-links, within each stratum. It then "subtracts off" the non-zero estimated effects on the secondary outcome from the estimated effects on the primary outcome, respectively in each stratum. SS-Joint finally combines efficiently these stratum-specific estimates by taking a weighted combination, with weights inversely proportional to their respective variances. If no information on observed confounders is provided, method Joint-NC is used instead. If data is available on a categorical confounder, but with many possibly sparse strata, we recommend using method Joint-MH instead.

Value

A data frame with columns method, beta_1.hat, sd.beta_1.hat, n.strata and error.message, where beta_1.hat is the "de-biased" estimate of the treatment effect on Y1, sd.beta_1.hat is the sandwich estimate for the standard deviation of beta_1.hat, and n.strata is the number of strata used in the calculation.

References

Etievant, L., Sampson, J.N., Gail, M.H. (2022). Increasing efficiency and reducing bias when assessing HPV vaccination efficacy by using nontargeted HPV strains. Biometrics. 1-12. https://doi.org/10.1111/biom.13663

Examples

data(data, package="NegativeControlOutcomeAdjustment")

  Y1  <- data[, "Y1"]
  Y2  <- data[, "Y2"]
  Trt <- data[, "T"]

  # With no covariates, only the Joint-NC method is used
  negativeControlOutcomeAdjustment(Y1, Y2, Trt)

  # Age and Region define 39 strata, some of which have fewer than 20 observations. 
  # Other strata that lead to non-finite estimates in the SS-Joint method are also dropped.
  # Warning messages will be issued in these situations. 
  tab <- table(interaction(data$Age, data$Region, drop=TRUE, sep="_"))
  sum(tab < 20)
  negativeControlOutcomeAdjustment(Y1, Y2, Trt, W=data[, c("Age", "Region")])

  # Create two age groups; Age > 18 and Age <= 18 to reduce the number of strata to 6
  Age <- as.numeric(data$Age > 18)
  W   <-  interaction(Age, data$Region, sep="_", drop=TRUE)
  negativeControlOutcomeAdjustment(Y1, Y2, Trt, W=W)