# sensitivityGBH: Principal stratification sensitivity analysis. In sensitivityPStrat: Principal Stratification Sensitivity Analysis Functions

## Description

Performs a sensitivity analysis using the method described in Gilbert, Bosch, and Hudgens (2003).

## Usage

 ```1 2 3 4 5 6 7``` ```sensitivityGBH(z, s, y, beta, selection, groupings, empty.principal.stratum, ci = 0.95, ci.method = c("analytic", "bootstrap"), ci.type = "twoSided", custom.FUN = NULL, na.rm = FALSE, N.boot = 100, interval = c(-100, 100), upperTest = FALSE, lowerTest = FALSE, twoSidedTest = TRUE, method = c("ACE", "T1", "T2"), isSlaveMode=FALSE) ```

## Arguments

 `z` vector; contains the grouping values (e.g., treatment assignment) for each record. `s` vector; indicates whether a record is selected. `y` vector; outcome value. Can be `NA` for unselected records. `beta` vector; values of the β sensitivity parameter. `Inf` and `-Inf` are acceptable. `selection` The value of `s` indicating selection. `groupings` vector of two elements `c(g0,g1)`; describes the possible group values. The first element g0 being the value of `z` that delineates the first group, the last element g1 being the value of `z` that delineates the second group. `empty.principal.stratum` vector of two elements `c(s0,s1)`; describes the `s` values that select the empty principal stratum. If `empty.principal.stratum=c(s0,s1)`, then stratum defined by S(\var{g0}) = \var{s0} and S(\var{g1}) = \var{s1} is the empty stratum. In this example s0 and s1 refer to the two possible values of `s`. (Note: method only works if \var{s0} != \var{s1}). `ci` numeric vector; confidence interval level. Defaults to `0.95` `ci.method` character; method by which the confidence interval and variance are calculated. Can be “analytic” or “bootstrap”. Defaults to `c("analytic","bootstrap")` `ci.type` character vector; type of confidence interval that the corresponding `ci` element is referring to. Can be “upper”, “lower”, or “twoSided”. Defaults to `"twoSided"`. `custom.FUN` function; function to calculate custom result. `mu0`, `mu1`, `p0`, `p1` are available to be used as arguments in the custom function, where \code{mu0} = E(Y(\var{g0})|S(\var{g0}) = S(\var{g1}) = selected), \code{mu1} = E(Y(\var{g1})|S(\var{g0}) = S(\var{g1}) = selected), \code{p0} = P(S(\var{g0}) = selected), and \code{p1} = P(S(\var{g1}) = selected). The custom function must return a single value. `na.rm` logical; indicates whether records that are invalid due to `NA` values should be removed from the data set. `N.boot` integer; number of bootstrap repetitions that will be run when `ci.method` includes “bootstrap”. `interval` numeric vector of length 2. Controls the range limits used by `optimize` to estimate α. `lowerTest` logical. Return the lower one sided p-value for returned tests. Defaults to `FALSE` `upperTest` logical. Return the upper one sided p-value for returned tests. Defaults to `FALSE` `twoSidedTest` logical. Return a two sided p-value for returned tests. Defaults to `TRUE` `method` character vector; type of test statistic calculated. Can be one or more of “ACE”, “T1”, or “T2”. Defaults to `"ACE"`. Methods “T1” and “T2” are not implemented if `ci.method` includes “analytic”. `isSlaveMode` logical. Internal Use only. Used in recursion.

## Details

Performs a sensitivity analysis estimating the average causal effect among those who would have been selected regardless of treatment assignment (ACE). The method assumes no interference (i.e., potential outcomes of all subjects are unaffected by treatment assignment of other subjects), ignorable (i.e., random) treatment assignment, and monotonicity (i.e., one of the principal strata is empty). ACE is identified by assuming a value of the sensitivity parameter beta, where exp(β) has an odds ratio interpretation:

If \code{empty.principal.stratum}=c(S(\var{g0})=not\ selected, S(\var{g1})=selected) then given selected if assigned g0, the odds of being selected if assigned g1 multiplicatively increase exp(β) for every 1-unit increase in Y(\var{g0}).

If \code{empty.principal.stratum}=c(S(\var{g0})=selected, S(\var{g1})=not\ selected) then given selected if assigned g1, the odds of being selected if assigned g0 multiplicatively increase exp(β) for every 1-unit increase in Y(\var{g1}).

Specifying `beta`=`-Inf` or `beta`=`Inf` calls `sensitivityHHS`.

T1 and T2 are rank-based analogs of ACE. See <REF TBD>.

## Value

an object of class `sensitivity2d`.

 `ACE` vector; ACE = E(Y(\var{g1}) - Y(\var{g0})|S(\var{g1}) = S(\var{g0}) = \code{selection}). Vector of the estimated ACE values for specified `beta` values. Only exists if `method` includes “ACE”. `ACE.ci` array; confidence interval of ACE determined by quantiles of bootstrap if `ci.method` includes “bootstrap”. Otherwise calculated using analytic variance with large sample normal approximation. Only exists if `method` includes “ACE”. `ACE.var` vector; estimated variance of ACE. Only exists if `method` includes “ACE”. `ACE.p` vector; estimated p-value of ACE. Only exists if `method` includes “ACE”. `T1` vector; Vector of the estimated T1 test statistic for specified `beta` values. Only exists if `method` includes “T1”. `T1.p` vector; estimated p-value of T1. Only exists if `method` includes “T1”. `T2` vector; Vector of the estimated T2 statistic for specified `beta` values. Only exists if `method` includes “T2”. `T2.p` vector; estimated p-value of T2. Only exists if `method` includes “T2”. `beta` vector; user-specified β values `alphahat` vector; estimated values of α `Fas0` function; estimator for the empirical distribution function values for y0 in the first group in the always selected principal stratum. Pr(Y(\var{g0}) <= \var{y0}|S(\var{g1}) = \code{selection}; β) `Fas1` function; estimator for the empirical distribution function values for y1 in the second group in the always selected principal stratum. Pr(Y(\var{g1}) <= \var{y1}|S(\var{g0}) = S(\var{g1}) = \code{selection}; β)

## Author(s)

Bryan E. Shepherd
Department of Biostatistics
Vanderbilt University

Charles Dupont
Department of Biostatistics
Vanderbilt University

## References

Gilbert PB, Bosch RJ, and Hudgens MG (2003), “Sensitivity Analysis for the Assessment of Causal Vaccine Effects of Viral Load in HIV Vaccine Trials,” Biometrics 59, 531-541.

`sensitivityHHS`, `sensitivityJR`, `sensitivitySGL`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24``` ```data(vaccine.trial) ans<-with(vaccine.trial, sensitivityGBH(z=treatment,s=hiv.outcome,y=logVL, beta=c(0,.25,.5,.75,1,1.25,1.5), selection="infected", groupings=c("placebo","vaccine"), empty.principal.stratum=c("not infected","infected"), N.boot=100) ) ans ans<-with(vaccine.trial, sensitivityGBH(z=treatment,s=hiv.outcome,y=logVL, beta=c(-Inf,-1,-0.75,-0.5,-0.25,0,.25,.5,.75,1,Inf), selection="infected", groupings=c("placebo","vaccine"), empty.principal.stratum=c("not infected","infected"), ci.method="bootstrap", ci=c(0.95, 0.9, 0.9), ci.type=c('twoSided', 'upper', 'lower'), custom.FUN=function(mu0, mu1, ...) mu1 - mu0, N.boot=100, method=c("ACE", "T1", "T2"), upperTest=TRUE, lowerTest=TRUE, twoSidedTest=TRUE) ) ans ```