\documentclass{article}
\usepackage{hyperref}
\usepackage{graphics}
\usepackage{amsmath}
\usepackage{indentfirst}
\usepackage[utf8]{inputenc}
\usepackage[top=1in, bottom=1in, left=1in, right=1in]{geometry}
\DeclareMathOperator{\var}{var}
% \VignetteIndexEntry{Using PwrGSD}
\begin{document}
<>=
options(keep.source = TRUE, width = 70)
PwrGSDpd <- packageDescription("PwrGSD")
@
\title{Using PwrGSD to compute Operating Characteristics of a candidate monitoring scheme at
a specified hypothetical trial scenario (Version \Sexpr{PwrGSDpd$Version})}
\author{Grant Izmirlian}
\maketitle
\section{Introduction}
The function $\mathbf{PwrGSD}$ computes several operating characteristics, such as
power, expected duration and relative risks at the stopping boundaries, given
a specification of the interim monitoring scheme and choice of test statistic
under a specified hypothetical progression of the trial. The capabilities of
$\mathbf{PwrGSD}$ allow for
\begin{itemize}
\item[1]{{\bf Non-proportional hazards alternatives}
via the specification of trial arm specific piecewise constant hazard rates,
piecewise exponential survival functions, or the stipulation of one of these
in arm 0 together with a piecewise constant hazard ratio for the main endpoint.}
\item[2]{{\bf Flexible specification of the censoring distribution}
The trial arm specific censoring distributions may be specified via piecewise constant
hazard or piecewise exponential survival functions.}
\item[3]{{\bf Two modes of non-compliance per each of the two trial arms}
Each form of non-compliance is stipulated via a waiting time distribution, specified via
piecewise constant hazards or piecewise exponential survival, together with a post-noncompliance
main endpoint distribution, also specified via hazards or survival functions.}
\item[4]{{\bf Choice of test statistic}
Currently, the asymptotic method of calculation supports several members of the weighted log-rank
family of statistics: Fleming-Harrington wieghts of given exponents $FH(g, \rho)$, a
variant $SFH(g,\rho,x)$ which is equal to the $FH(g, \rho)$ function but stopped at the value
attained at $x$, or the $Ramp(x)$ function, which has linear rise from zero to its maximum
value, attained at $x$ and then constant weight thereafter. The simulation method of calculation
supports all of these plus the integrated survival difference statistic.}
\item[5]{{\bf Choice of boundary construction method:}
Currently either Lan-Demets with a variety of possible spending functions
\begin{itemize}
\item[i]{O'Brien-Fleming}
\item[ii]{Pocock}
\item[iii]{Wang-Tsiatis Power Family}
\end{itemize}
The Haybittle method is also supported in the case of efficacy bounds only}
\item[6]{{\bf Efficacy bounds only or simultaneous calculation of efficacy and futility bounds}}
\end{itemize}
The goal of this vignette is to understand the features and capabilities of {\bf PwrGSD} by
trying several examples.
In the first example, we compute power at a specific alternative, \verb`rhaz`, under an interim
analysis plan with roughly one analysis per year, some crossover between intervention and
control arms, with Efficacy and futility boundaries constructed via the Lan-Demets
procedure with O'Brien-Fleming spending. We investigate the behavior of three weighted log-rank
statistics: (i) the Fleming-Harrington(0,1) statistic, (ii) a stopped version of the F-H(0,1)
statistic capped off at 10 years, and (iii) the deterministic weighting function with linear
increase between time 0 and time 10 with constant weight thereafter.
<>=
tlook <- c(7.14, 8.14, 9.14, 10.14, 10.64, 11.15, 12.14, 13.14,
14.14, 15.14, 16.14, 17.14, 18.14, 19.14, 20.14)
t0 <- 0:19
h0 <- c(rep(3.73e-04, 2), rep(7.45e-04, 3), rep(1.49e-03, 15))
rhaz <-c(1, 0.9125, 0.8688, 0.7814, 0.6941, 0.6943, 0.6072, 0.5202,
0.4332, 0.652, 0.6524, 0.6527, 0.653, 0.6534, 0.6537,
0.6541, 0.6544, 0.6547, 0.6551, 0.6554)
hc <- c(rep(1.05e-02, 2), rep(2.09e-02, 3), rep(4.19e-02, 15))
hd1B <- c(0.1109, 0.1381, 0.1485, 0.1637, 0.2446, 0.2497, 0)
@
<>=
library(PwrGSD)
example.1 <-
PwrGSD(EfficacyBoundary=LanDemets(alpha=0.05, spending= ObrienFleming),
FutilityBoundary=LanDemets(alpha=0.1, spending=ObrienFleming),
RR.Futility = 0.82, sided="1<",method="A",accru =7.73, accrat=9818.65,
tlook =tlook, tcut0 =t0, h0=h0, tcut1=t0, rhaz=rhaz,
tcutc0=t0, hc0=hc, tcutc1=t0, hc1=hc,
tcutd0B =c(0, 13), hd0B =c(0.04777, 0),
tcutd1B =0:6, hd1B =hd1B,
noncompliance =crossover, gradual =TRUE,
WtFun =c("FH", "SFH", "Ramp"),
ppar =c(0, 1, 0, 1, 10, 10))
@
In the next example, we construct the efficacy boundary using the stochastic curtailment procedure.
<>=
example.2 <- update(example.1, EfficacyBoundary=LanDemets(alpha=0.05, spending=Pow(1)))
@
\end{document}