The POWER Procedure

Analyses in the TWOSAMPLESURVIVAL Statement

Rank Tests for Two Survival Curves (TEST=LOGRANK, TEST=GEHAN, TEST=TARONEWARE)

The method is from Lakatos (1988) and Cantor (1997, pp. 83–92).

Define the following notation:

\begin{align*}  X_ j(i) & = \mbox{$i$th input time point on survival curve for group \Mathtext{j}} \\ S_ j(i) & = \mbox{input survivor function value corresponding to $X_ j(i)$} \\ h_ j(t) & = \mbox{hazard rate for group \Mathtext{j} at time \Mathtext{t}} \\ \Psi _ j(t) & = \mbox{loss hazard rate for group \Mathtext{j} at time \Mathtext{t}} \\ \lambda _ j & = \mbox{exponential hazard rate for group \Mathtext{j}} \\ R & = \mbox{hazard ratio of group 2 to group 1 $\equiv $ (assumed constant) value of $\frac{h_2(t)}{h_1(t)}$} \\ m_ j & = \mbox{median survival time for group \Mathtext{j}} \\ b & = \mbox{number of subintervals per time unit} \\ T & = \mbox{accrual time} \\ \tau & = \mbox{follow-up time after accrual} \\ L_ j & = \mbox{exponential loss rate for group \Mathtext{j}} \\ XL_ j & = \mbox{input time point on loss curve for group \Mathtext{j}} \\ SL_ j & = \mbox{input survivor function value corresponding to $XL_ j$} \\ mL_ j & = \mbox{median survival time for group \Mathtext{j}} \\ r_ i & = \mbox{rank for $i$th time point} \\ \end{align*}

Each survival curve can be specified in one of several ways.

  • For exponential curves:

    • a single point $(X_ j(1), S_ j(1))$ on the curve

    • median survival time

    • hazard rate

    • hazard ratio (for curve 2, with respect to curve 1)

  • For piecewise linear curves with proportional hazards:

    • a set of points $\{ (X_1(1), S_1(1)), (X_1(2), S_1(2)), \ldots \} $ (for curve 1)

    • hazard ratio (for curve 2, with respect to curve 1)

  • For arbitrary piecewise linear curves:

    • a set of points $\{ (X_ j(1), S_ j(1)), (X_ j(2), S_ j(2)), \ldots \} $

A total of $M+1$ evenly spaced time points $\{ t_0 = 0, t_1, t_2, \ldots , t_ M = T + \tau \} $ are used in calculations, where

\[  M = \mr {floor} \left( (T + \tau )b \right)  \]

The hazard function is calculated for each survival curve at each time point. For an exponential curve, the (constant) hazard is given by one of the following, depending on the input parameterization:

\[  h_ j(t) = \left\{  \begin{array}{l} \lambda _ j \\ \lambda _1 R \\ \frac{-\log (\frac{1}{2})}{m_ j} \\ \frac{-\log (S_ j(1))}{X_ j(1)} \\ \frac{-\log (S_1(1))}{X_1(1)} R \\ \end{array} \right.  \]

For a piecewise linear curve, define the following additional notation:

\begin{align*}  t_ i^{-} & = \mbox{largest input time \Mathtext{X} such that $X \le t_ i$} \\ t_ i^{+} & = \mbox{smallest input time \Mathtext{X} such that $X > t_ i$} \\ \end{align*}

The hazard is computed by using linear interpolation as follows:

\[  h_ j(t_ i) = \frac{S_ j(t_ i^{-}) - S_ j(t_ i^{+})}{\left[ S_ j(t_ i^{+}) - S_ j(t_ i^{-}) \right] \left[ t_ i - t_ i^{-} \right] + S_ j(t_ i^{-}) \left[ t_ i^{+} - t_ i^{-} \right]}  \]

With proportional hazards, the hazard rate of group 2’s curve in terms of the hazard rate of group 1’s curve is

\[  h_2(t) = h_1(t) R  \]

Hazard function values $\{ \Psi _ j(t_ i)\} $ for the loss curves are computed in an analogous way from $\{ L_ j, XL_ j, SL_ j, mL_ j\} $.

The expected number at risk $N_ j(i)$ at time i in group j is calculated for each group and time points 0 through M – 1, as follows:

\begin{align*}  N_ j(0) & = N w_ j \\ N_ j(i+1) & = N_ j(i) \left[ 1 - h_ j(t_ i) \left( \frac{1}{b} \right) - \Psi _ j (t_ i) \left( \frac{1}{b} \right) - \left( \frac{1}{b(T + \tau - t_ i)} \right) 1_{\{ t_ i > \tau \} } \right] \\ \end{align*}

Define $\theta _ i$ as the ratio of hazards and $\phi _ i$ as the ratio of expected numbers at risk for time $t_ i$:

\begin{align*}  \theta _ i & = \frac{h_2(t_ i)}{h_1(t_ i)} \\ \phi _ i & = \frac{N_2(i)}{N_1(i)} \\ \end{align*}

The expected number of deaths in each subinterval is calculated as follows:

\[  D_ i = \left[ h_1(t_ i) N_1(i) + h_2(t_ i) N_2(i) \right] \left( \frac{1}{b} \right)  \]

The rank values are calculated as follows according to which test statistic is used:

\[  r_ i = \left\{  \begin{array}{ll} 1, &  \mbox{log-rank} \\ N_1(i) + N_2(i), &  \mbox{Gehan} \\ \sqrt {N_1(i) + N_2(i)}, &  \mbox{Tarone-Ware} \\ \end{array} \right.  \]

The distribution of the test statistic is approximated by $N(E,1)$ where

\[  E = \frac{\sum _{i=0}^{M-1} D_ i r_ i \left[ \frac{\phi _ i \theta _ i}{1 + \phi _ i \theta _ i} - \frac{\phi _ i}{1 + \phi _ i} \right] }{\sqrt {\sum _{i=0}^{M-1} D_ i r_ i^2 \frac{\phi _ i}{(1 + \phi _ i)^2} } }  \]

Note that $N^\frac {1}{2}$ can be factored out of the mean E, and so it can be expressed equivalently as

\[  E = N^\frac {1}{2} E^\star = N^\frac {1}{2} \left[ \frac{\sum _{i=0}^{M-1} D_ i^\star r_ i^\star \left[ \frac{\phi _ i \theta _ i}{1 + \phi _ i \theta _ i} - \frac{\phi _ i}{1 + \phi _ i} \right] }{\sqrt {\sum _{i=0}^{M-1} D_ i^\star {r_ i^\star }^2 \frac{\phi _ i}{(1 + \phi _ i)^2} } } \right]  \]

where $E^\star $ is free of N and

\begin{align*}  D_ i^\star & = \left[ h_1(t_ i) N_1^\star (i) + h_2(t_ i) N_2^\star (i) \right] \left( \frac{1}{b} \right) \\ r_ i^\star & = \left\{  \begin{array}{ll} 1, &  \mbox{log-rank} \\ N_1^\star (i) + N_2^\star (i), &  \mbox{Gehan} \\ \sqrt {N_1^\star (i) + N_2^\star (i)}, &  \mbox{Tarone-Ware} \\ \end{array} \right. \\ N_ j^\star (0) & = w_ j \\ N_ j^\star (i+1) & = N_ j^\star (i) \left[ 1 - h_ j(t_ i) \left( \frac{1}{b} \right) - \Psi _ j (t_ i) \left( \frac{1}{b} \right) - \left( \frac{1}{b(T + \tau - t_ i)} \right) 1_{\{ t_ i > \tau \} } \right] \\ \end{align*}

The approximate power is

\[  \mr {power} = \left\{  \begin{array}{ll} \Phi \left( - N^\frac {1}{2} E^\star - z_{1-\alpha } \right), &  \mbox{upper one-sided} \\ \Phi \left( N^\frac {1}{2} E^\star - z_{1-\alpha } \right), &  \mbox{lower one-sided} \\ \Phi \left( - N^\frac {1}{2} E^\star - z_{1-\frac{\alpha }{2}} \right) + \Phi \left( N^\frac {1}{2} E^\star - z_{1-\frac{\alpha }{2}} \right), &  \mbox{two-sided} \\ \end{array} \right. \\  \]

Note that the upper and lower one-sided cases are expressed differently than in other analyses. This is because $E^\star > 0$ corresponds to a higher survival curve in group 1 and thus, by the convention used in PROC power for two-group analyses, the lower side.

For the one-sided cases, a closed-form inversion of the power equation yield an approximate total sample size

\[  N = \left( \frac{z_{\mr {power}} + z_{1-\alpha }}{E^\star } \right)^2  \]

For the two-sided case, the solution for N is obtained by numerically inverting the power equation.

Accrual rates are converted to and from sample sizes according to the equation $a_ j = n_ j/T$, where $a_ j$ is the accrual rate for group j.

Expected numbers of events—that is, deaths, whether observed or censored—are converted to and from sample sizes according to the equation

\[  e_ j = \left\{  \begin{array}{ll} n_ j \left[ 1 - S_ j(\tau ) \right], &  T = 0 \\ n_ j \left[ 1 - \frac{1}{T} \int _0^ T S_ j(T + \tau - t) dt \right], &  T > 0 \\ \end{array} \right.  \]

where $e_ j$ is the expected number of events in group j. For an exponential curve, the equation simplifies to

\[  e_ j = \left\{  \begin{array}{ll} n_ j \left[ 1 - \exp (-\lambda _ j \tau ) \right], &  T = 0 \\ n_ j \left[ 1 - \frac{1}{\lambda _ j T} \left( \exp (-\lambda _ j \tau ) - \exp (-\lambda _ j (T + \tau )) \right) \right], &  T > 0 \\ \end{array} \right.  \]

For a piecewise linear curve, first define $K_ j$ as the number of time points in the following collection: $\tau $, $T+\tau $, and input time points for group j strictly between $\tau $ and $T+\tau $. Denote the ordered set of these points as $\{ u_{j1}, \ldots , u_{jK_ j} \} $. The survival function values $S_ j(\tau )$ and $S_ j(T+\tau )$ are calculated by linear interpolation between adjacent input time points if they do not coincide with any input time points. Then the equation for a piecewise linear curve simplifies to

\[  e_ j = \left\{  \begin{array}{ll} n_ j \left[ 1 - S_ j(\tau ) \right], &  T = 0 \\ n_ j \left[ 1 - \frac{1}{2 T} \sum _{i=1}^{K_ j-1} \left(u_{j,i+1} - u_{ji}\right) \left(S_ j(u_{ji}) + S_ j(u_{j,i+1})\right) \right], &  T > 0 \\ \end{array} \right.  \]