Skip to contents

Obtains the number of subjects having an event by given calendar times for each treatment group.

Usage

nevent(
  time = NA_real_,
  allocationRatioPlanned = 1,
  accrualTime = 0L,
  accrualIntensity = NA_real_,
  piecewiseSurvivalTime = 0L,
  lambda1 = NA_real_,
  lambda2 = NA_real_,
  gamma1 = 0L,
  gamma2 = 0L,
  accrualDuration = NA_real_,
  maxFollowupTime = NA_real_
)

Arguments

time

A vector of calendar times at which to calculate the number of patients having an event.

allocationRatioPlanned

Allocation ratio for the active treatment versus control. Defaults to 1 for equal randomization.

accrualTime

A vector that specifies the starting time of piecewise Poisson enrollment time intervals. Must start with 0, e.g., c(0, 3) breaks the time axis into 2 accrual intervals: \([0, 3)\) and \([3, \infty)\).

accrualIntensity

A vector of accrual intensities. One for each accrual time interval.

piecewiseSurvivalTime

A vector that specifies the starting time of piecewise exponential survival time intervals. Must start with 0, e.g., c(0, 6) breaks the time axis into 2 event intervals: \([0, 6)\) and \([6, \infty)\). Defaults to 0 for exponential distribution.

lambda1

A vector of hazard rates for the event for the active treatment group. One for each analysis time interval.

lambda2

A vector of hazard rates for the event for the control group. One for each analysis time interval.

gamma1

The hazard rate for exponential dropout, or a vector of hazard rates for piecewise exponential dropout for the active treatment group.

gamma2

The hazard rate for exponential dropout, or a vector of hazard rates for piecewise exponential dropout for the control group.

accrualDuration

Duration of the enrollment period.

maxFollowupTime

Follow-up time for the first enrolled subject. For fixed follow-up, maxFollowupTime = minFollowupTime. For variable follow-up, maxFollowupTime = accrualDuration + minFollowupTime.

Value

A matrix of the number of patients having an event at the specified calendar times (row) for each treatment group (column).

Details

For a given treatment group \(g\) and calendar time \(\tau\), the number of patients having an event by calendar time \(\tau\) is calculated as \(I_1 + I_2\), where $$I_1 = \phi_g A(\tau - T_{\rm{fmax}}) P_g(T_{\rm{fmax}}),$$ and $$I_2 = \phi_g \int_{\tau - T_{\rm{fmax}}}^{\tau} a(u) P_g(\tau - u) du,$$ where \(\phi_g\) is the probability of randomization to treatment group \(g\), \(A(\tau - T_{\rm{fmax}})\) is the number of patients enrolled by calendar time \(\tau - T_{\rm{fmax}}\), \(P_g(T_{\rm{fmax}})\) is the probability of having an event by the maximum follow-up time \(T_{\rm{fmax}}\) for a patient in treatment group \(g\) after enrollment, \(a(u)\) is the accrual intensity at calendar time \(u\), and \(P_g(\tau - u)\) is the probability of having an event by calendar time \(\tau\) for a patient in treatment group \(g\) enrolled at calendar time \(u\).

Author

Kaifeng Lu, kaifenglu@gmail.com

Examples

# Piecewise accrual, piecewise exponential survivals, and 5% dropout by
# the end of 1 year.
nevent(time = c(9, 24), allocationRatioPlanned = 1,
       accrualTime = c(0, 3), accrualIntensity = c(10, 20),
       piecewiseSurvivalTime = c(0, 6),
       lambda1 = c(0.0533, 0.0309), lambda2 = c(0.0533, 0.0533),
       gamma1 = -log(1-0.05)/12, gamma2 = -log(1-0.05)/12,
       accrualDuration = 12, maxFollowupTime = 30)
#>          [,1]     [,2]
#> [1,] 13.10990 13.43671
#> [2,] 49.61969 60.81305