
Regional Consistency Probability for Single-Arm MRCT (Milestone Survival Endpoint)
Source:R/rcp1armMilestoneSurvival.R
rcp1armMilestoneSurvival.RdCalculate the regional consistency probability (RCP) for milestone survival endpoints in single-arm multi-regional clinical trials (MRCTs) using the Effect Retention Approach (ERA).
Event times are modelled by the exponential distribution with hazard rate \(\lambda\) (treatment). The treatment effect at a prespecified evaluation time \(t_{\mathrm{eval}}\) is expressed as the difference in survival rates: \(\delta = S(t_{\mathrm{eval}}) - S_0(t_{\mathrm{eval}})\), where \(S_0\) is the historical control survival rate at \(t_{\mathrm{eval}}\).
Two evaluation methods are supported:
Method 1: Effect retention approach. Evaluates whether Region 1 retains at least a fraction PI of the overall treatment effect: \(Pr[(\hat{S}_1(t) - S_0(t)) > \pi \times (\hat{S}(t) - S_0(t))]\).
Method 2: Simultaneous benefit across all regions. Evaluates whether all regional Kaplan-Meier estimates exceed the historical control: \(Pr[\hat{S}_j(t) > S_0(t) \text{ for all } j]\).
Two calculation approaches are available:
"formula": Closed-form or semi-analytical solution based on the asymptotic variance of the Kaplan-Meier estimator derived from Greenwood's formula. When \(t_{\mathrm{eval}} \leq t_f\), the administrative censoring survival function \(G_a(t) = 1\) and the variance integral has a closed-form solution. When \(t_{\mathrm{eval}} > t_f\), the integral is evaluated numerically viaintegrate. Method 1 uses a two-block decomposition (Region 1 vs regions 2..J combined). Method 2 supports \(J \geq 2\) regions."simulation": Monte Carlo simulation with vectorized Kaplan-Meier estimation. Supports \(J \geq 2\) regions.
Usage
rcp1armMilestoneSurvival(
lambda,
t_eval,
S0,
Nj,
t_a,
t_f,
lambda_dropout = NULL,
PI = 0.5,
approach = "formula",
nsim = 10000,
seed = 1
)Arguments
- lambda
Numeric scalar. True hazard rate under the alternative hypothesis. Must be positive.
- t_eval
Numeric scalar. Evaluation time point for the milestone survival probability. Must be positive.
- S0
Numeric scalar. Historical control survival rate at
t_eval. Must be in \((0, 1]\).- Nj
Integer vector. Sample sizes for each region. For example,
c(10, 90)indicates Region 1 has 10 subjects and Region 2 has 90 subjects. All elements must be positive integers.- t_a
Numeric scalar. Accrual period (patient enrolment duration). Must be positive.
- t_f
Numeric scalar. Follow-up period (additional follow-up after accrual ends). Must be positive.
- lambda_dropout
Numeric scalar or
NULL. Dropout hazard rate. IfNULL(default), no dropout is assumed. If specified, dropout times follow an exponential distribution with ratelambda_dropout.- PI
Numeric scalar. Prespecified effect retention threshold for Method 1. Typically \(\pi \geq 0.5\). Must be in \([0, 1]\). Default is
0.5.- approach
Character scalar. Calculation approach:
"formula"for the closed-form (or semi-analytical) solution or"simulation"for Monte Carlo simulation. Default is"formula".- nsim
Positive integer. Number of Monte Carlo iterations. Used only when
approach = "simulation". Default is10000.- seed
Non-negative integer. Random seed for reproducibility. Used only when
approach = "simulation". Default is1.
Value
An object of class "rcp1armMilestoneSurvival", which is a list
containing:
approachCalculation approach used (
"formula"or"simulation").formula_typeFor
approach = "formula": either"closed-form"(when \(t_{\mathrm{eval}} \leq t_f\)) or"numerical-integration"(when \(t_{\mathrm{eval}} > t_f\)).NULLfor simulation.nsimNumber of Monte Carlo iterations (
NULLfor"formula"approach).lambdaTrue hazard rate under the alternative hypothesis.
NjSample sizes for each region.
t_aAccrual period.
t_fFollow-up period.
tauTotal study duration (\(\tau = t_a + t_f\)).
lambda_dropoutDropout hazard rate (
NAifNULL).PIEffect retention threshold.
eval_timeMilestone evaluation time point.
S0Historical control survival rate at
eval_time.S_estTrue survival rate under the alternative at
eval_time: \(S(t) = e^{-\lambda t}\).Method1RCP using Method 1 (effect retention).
Method2RCP using Method 2 (all regions positive).
Details
Variance formula. The asymptotic variance of the Kaplan-Meier estimator \(\hat{S}_j(t)\) for a single arm with \(N_j\) subjects is derived from Greenwood's formula: $$ \mathrm{Var}[\hat{S}_j(t)] \approx \frac{S^2(t)}{N_j} \int_0^t \frac{\lambda(u)}{S(u) \cdot G(u)} \, du, $$ where \(G(u) = e^{-\lambda_d u} \cdot G_a(u)\) is the overall censoring survival function, and $$ G_a(u) = \begin{cases} 1 & 0 \leq u \leq t_f, \\ (\tau - u)/t_a & t_f < u \leq \tau. \end{cases} $$ Under the exponential model \(S(u) = e^{-\lambda u}\), this simplifies to: $$ \mathrm{Var}[\hat{S}_j(t)] \approx \frac{e^{-2\lambda t}}{N_j} \int_0^t \frac{\lambda \, e^{(\lambda + \lambda_d) u}}{G_a(u)} \, du. $$
Closed-form solution (\(t_{\mathrm{eval}} \leq t_f\)). When \(t_{\mathrm{eval}} \leq t_f\), \(G_a(u) = 1\) throughout \([0, t_{\mathrm{eval}}]\), and the integral reduces to: $$ \int_0^t \lambda \, e^{(\lambda + \lambda_d) u} \, du = \frac{\lambda}{\lambda + \lambda_d} \bigl( e^{(\lambda + \lambda_d) t} - 1 \bigr). $$ Therefore: $$ \mathrm{Var}[\hat{S}_j(t)] = \frac{e^{-2\lambda t}}{N_j} \cdot \frac{\lambda}{\lambda + \lambda_d} \bigl( e^{(\lambda + \lambda_d) t} - 1 \bigr). $$ When there is no dropout (\(\lambda_d = 0\)), this further simplifies to the binomial variance: $$ \mathrm{Var}[\hat{S}_j(t)] = \frac{S(t)(1 - S(t))}{N_j}. $$
References
Wu J (2015). Sample size calculation for the one-sample log-rank test. Pharmaceutical Statistics, 14(1): 26–33.
Examples
# Example 1: Closed-form solution (t_eval <= t_f) with N = 100
result1 <- rcp1armMilestoneSurvival(
lambda = log(2) / 10,
t_eval = 8,
S0 = exp(-log(2) * 8 / 5),
Nj = c(10, 90),
t_a = 3,
t_f = 10,
lambda_dropout = NULL,
PI = 0.5,
approach = "formula"
)
print(result1)
#>
#> Regional Consistency Probability for Single-Arm MRCT
#> Endpoint : Milestone Survival
#>
#> Approach : Closed-Form Solution (Greenwood)
#> True Hazard : lambda = 0.069315
#> Sample Size : Nj = (10, 90)
#> Total Size : N = 100
#> Accrual Period : t_a = 3.00
#> Follow-up : t_f = 10.00
#> Study Duration : tau = 13.00
#> Dropout Hazard : lambda_d = NA
#> Threshold : PI = 0.5000
#> Eval Time : t_eval = 8.00
#> Control Surv : S0 = 0.3299
#> True Surv : S_est = 0.5743
#>
#> Consistency Probabilities:
#> Method 1 (Region 1 vs Overall) : 0.7918
#> Method 2 (All Regions > S0) : 0.9410
#>
# Example 2: Monte Carlo simulation with N = 100
result2 <- rcp1armMilestoneSurvival(
lambda = log(2) / 10,
t_eval = 8,
S0 = exp(-log(2) * 8 / 5),
Nj = c(10, 90),
t_a = 3,
t_f = 10,
lambda_dropout = NULL,
PI = 0.5,
approach = "simulation",
nsim = 10000,
seed = 1
)
print(result2)
#>
#> Regional Consistency Probability for Single-Arm MRCT
#> Endpoint : Milestone Survival
#>
#> Approach : Simulation-Based (nsim = 10000)
#> True Hazard : lambda = 0.069315
#> Sample Size : Nj = (10, 90)
#> Total Size : N = 100
#> Accrual Period : t_a = 3.00
#> Follow-up : t_f = 10.00
#> Study Duration : tau = 13.00
#> Dropout Hazard : lambda_d = NA
#> Threshold : PI = 0.5000
#> Eval Time : t_eval = 8.00
#> Control Surv : S0 = 0.3299
#> True Surv : S_est = 0.5743
#>
#> Consistency Probabilities:
#> Method 1 (Region 1 vs Overall) : 0.7922
#> Method 2 (All Regions > S0) : 0.9224
#>