---
title: "Introduction to SingleArmMRCT"
output:
  rmarkdown::html_vignette:
    toc: true
    toc_depth: 3
    number_sections: false
vignette: >
  %\VignetteIndexEntry{Introduction to SingleArmMRCT}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r setup, include = FALSE}
knitr::opts_chunk$set(
  collapse   = TRUE,
  comment    = "#>",
  fig.width  = 7,
  fig.height = 4.5,
  out.width  = "100%",
  dpi        = 96
)
library(SingleArmMRCT)
```

## Background

Multi-regional clinical trials (MRCTs) are increasingly used in global drug development to allow simultaneous regulatory submissions across multiple regions. A key requirement for regional approval — particularly in Japan under the Japanese MHLW guidelines — is the demonstration of **regional consistency**: evidence that the treatment effect observed in a specific region (e.g., Japan) is consistent with the overall trial result.

Two widely used consistency evaluation methods, originally proposed under the Japanese guidelines, are:

- **Method 1** (Effect Retention Approach): Evaluates whether Region 1 retains at least a fraction $\pi$ of the overall treatment effect.
- **Method 2** (Simultaneous Positivity Approach): Evaluates whether all regional estimates simultaneously show a positive effect in the direction of benefit.

These methods were originally developed for **two-arm randomised controlled trials**. However, single-arm trials are now common in oncology and rare disease settings, where historical control comparisons are standard. The **SingleArmMRCT** package extends Method 1 and Method 2 to the single-arm setting, in which the treatment effect is defined relative to a pre-specified historical control value.

---

## Regional Consistency Probability

The **Regional Consistency Probability (RCP)** is defined as the probability that a consistency criterion is satisfied, evaluated under the assumed true parameter values at the trial design stage. A trial design is said to have adequate regional consistency if the RCP exceeds a pre-specified target (commonly 0.80).

### Method 1: Effect Retention Approach

Let $\theta$ denote the endpoint parameter for a given endpoint (e.g., mean, proportion, rate). Method 1 requires that Region 1 retains at least a fraction $\pi$ of the overall treatment effect:

$$
\text{RCP}_1 = \Pr\!\left[\,(\hat{\theta}_1 - \theta_0) \geq \pi \times (\hat{\theta} - \theta_0)\,\right]
$$

where $\hat{\theta}_1$ is the treatment effect estimate for Region 1, $\hat{\theta}$ is the overall pooled estimate, $\theta_0$ is the null (historical control) value, and $\pi \in [0, 1]$ is the pre-specified retention threshold (typically $\pi = 0.5$).

The consistency condition can be rewritten as $D \geq 0$, where:

$$
D = \bigl(1 - \pi f_1\bigr)\,(\hat{\theta}_1 - \theta_0)
  - \pi(1 - f_1)\,(\hat{\theta}_{-1} - \theta_0)
$$

with $f_1 = N_1/N$ being the regional allocation fraction and $\hat{\theta}_{-1}$ the pooled estimate for regions $2, \ldots, J$ combined. Under the assumption of homogeneous treatment effects across regions, $D$ follows a normal distribution with mean $(1-\pi)\delta$ and a variance that depends on the endpoint type, yielding a closed-form expression for $\text{RCP}_1$, where $\delta = \theta - \theta_0$ is the treatment effect.

For endpoints where a smaller value indicates benefit (e.g., hazard ratio, rate ratio), the inequality direction is reversed. See the endpoint-specific vignettes for exact formulae.

### Method 2: Simultaneous Positivity Approach

Method 2 requires that all $J$ regional estimates simultaneously demonstrate a positive effect. For endpoints where a larger value indicates benefit (continuous, binary, milestone survival, RMST):

$$
\text{RCP}_2 = \Pr\!\left[\,\hat{\theta}_j > \theta_0 \;\text{ for all } j = 1, \ldots, J\,\right]
$$

For endpoints where a smaller value indicates benefit (hazard ratio, rate ratio):

$$
\text{RCP}_2 = \Pr\!\left[\,\hat{\theta}_j < \theta_0 \;\text{ for all } j = 1, \ldots, J\,\right]
$$

Because regional estimators are independent across regions, $\text{RCP}_2$ factorises as:

$$
\text{RCP}_2 = \prod_{j=1}^{J} \Pr\!\left[\,\hat{\theta}_j \text{ shows benefit}\,\right]
$$

---

## Package Structure

The package provides a pair of functions for each of six endpoint types.

```{r echo=FALSE}
tbl <- data.frame(
  Endpoint = c(
    "Continuous",
    "Binary",
    "Count (negative binomial)",
    "Time-to-event (hazard ratio)",
    "Milestone survival",
    "Restricted mean survival time (RMST)"
  ),
  `Calculation function` = c(
    "rcp1armContinuous()",
    "rcp1armBinary()",
    "rcp1armCount()",
    "rcp1armHazardRatio()",
    "rcp1armMilestoneSurvival()",
    "rcp1armRMST()"
  ),
  `Plot function` = c(
    "plot_rcp1armContinuous()",
    "plot_rcp1armBinary()",
    "plot_rcp1armCount()",
    "plot_rcp1armHazardRatio()",
    "plot_rcp1armMilestoneSurvival()",
    "plot_rcp1armRMST()"
  ),
  check.names = FALSE
)
knitr::kable(tbl, align = "lll")
```

Each calculation function supports two approaches:

- **`"formula"`**: Closed-form or semi-analytical solution based on normal approximation. Computationally fast and, for binary and count endpoints, exact.
- **`"simulation"`**: Monte Carlo simulation. Serves as an independent numerical check of the formula results.

---

## Common Parameters

All six calculation functions share the following parameters.

```{r echo=FALSE}
params <- data.frame(
  Parameter   = c("`Nj`", "`PI`", "`approach`", "`nsim`", "`seed`"),
  Type        = c("integer vector", "numeric", "character",
                  "integer", "integer"),
  Default     = c("—", "`0.5`", '`"formula"`', "`10000`", "`1`"),
  Description = c(
    "Sample sizes for each region; length equals the number of regions $J$",
    "Effect retention threshold $\\pi$ for Method 1; must be in $[0, 1]$",
    'Calculation approach: `"formula"` or `"simulation"`',
    "Number of Monte Carlo iterations; used only when `approach = \"simulation\"`",
    "Random seed for reproducibility; used only when `approach = \"simulation\"`"
  ),
  check.names = FALSE
)
knitr::kable(params, align = "llll")
```

Time-to-event endpoints (hazard ratio, milestone survival, RMST) additionally require the following trial design parameters.

```{r echo=FALSE}
params_tte <- data.frame(
  Parameter   = c("`t_a`", "`t_f`", "`lambda_dropout`"),
  Type        = c("numeric", "numeric", "numeric or `NULL`"),
  Default     = c("—", "—", "`NULL`"),
  Description = c(
    "Accrual period: duration over which patients are uniformly enrolled",
    "Follow-up period: additional observation time after accrual closes; total study duration is $\\tau = t_a + t_f$",
    "Exponential dropout hazard rate; `NULL` assumes no dropout"
  ),
  check.names = FALSE
)
knitr::kable(params_tte, align = "llll")
```

---

## Quick Start Example

The following example computes RCP for a **continuous endpoint** with the setting below:

| Parameter | Value |
|---|---|
| Total sample size | $N = 100$ ($J = 2$ regions) |
| Region 1 allocation | $N_1 = 10$ ($f_1 = 10\%$) |
| True mean | $\mu = 0.5$ |
| Historical control mean | $\mu_0 = 0.1$ (mean difference $\delta = 0.4$) |
| Standard deviation | $\sigma = 1$ |
| Retention threshold | $\pi = 0.5$ |

### Closed-form solution

```{r}
result_formula <- rcp1armContinuous(
  mu       = 0.5,
  mu0      = 0.1,
  sd       = 1,
  Nj       = c(10, 90),
  PI       = 0.5,
  approach = "formula"
)
print(result_formula)
```

### Monte Carlo simulation

```{r}
result_sim <- rcp1armContinuous(
  mu       = 0.5,
  mu0      = 0.1,
  sd       = 1,
  Nj       = c(10, 90),
  PI       = 0.5,
  approach = "simulation",
  nsim     = 10000,
  seed     = 1
)
print(result_sim)
```

The closed-form and simulation results are in close agreement. The small difference is attributable to Monte Carlo sampling variation and diminishes as `nsim` increases.

---

## Visualisation

Each endpoint type has a corresponding `plot_rcp1arm*()` function. These functions display RCP as a function of the regional allocation proportion $f_1 = N_1/N$, with separate facets for different total sample sizes $N$. Both Method 1 (blue) and Method 2 (yellow) are shown, with solid lines for the formula approach and dashed lines for simulation. The horizontal grey dashed line marks the commonly used design target of RCP $= 0.80$.

The `base_size` argument controls font size: use the default (`base_size = 28`) for presentation slides, and a smaller value (e.g., `base_size = 11`) for documents and vignettes.

```{r fig.alt="Line plot of RCP versus regional allocation proportion f1 for a continuous endpoint, comparing Method 1 and Method 2 using formula and simulation approaches across sample sizes N = 20, 40, and 100"}
plot_rcp1armContinuous(
  mu        = 0.5,
  mu0       = 0.1,
  sd        = 1,
  PI        = 0.5,
  N_vec     = c(20, 40, 100),
  J         = 3,
  nsim      = 5000,
  seed      = 1,
  base_size = 11
)
```

Several features are evident from the plot:

- **Method 1** (blue) increases with $f_1$: as Region 1 becomes larger, its estimator $\hat{\theta}_1$ becomes more precise, making the retention condition easier to satisfy.
- **Method 2** (yellow) is maximised when all regions have equal allocation $f_1 = f_2 = \cdots = f_J = 1/J$, and decreases as $f_1$ deviates from this balance, because unequal allocation reduces the marginal probability $\Pr(\hat{\theta}_j \text{ shows benefit})$ for the smaller regions. 
- Both RCP values increase with total sample size $N$, as expected. 
- The formula (solid) and simulation (dashed) curves are closely aligned, confirming the accuracy of the normal approximation.

---

## Further Reading

For endpoint-specific statistical models, derivations, and worked examples, see the companion vignettes:

- **Non-survival endpoints**: continuous, binary, and count (negative binomial) endpoints.
- **Survival endpoints**: hazard ratio, milestone survival probability, and RMST endpoints.

---

## References

Hayashi N, Itoh Y (2017). A re-examination of Japanese sample size calculation for multi-regional clinical trial evaluating survival endpoint. *Japanese Journal of Biometrics*, 38(2): 79--92. https://doi.org/10.5691/jjb.38.79

Homma G (2024). Cautionary note on regional consistency evaluation in multiregional clinical trials with binary outcomes. *Pharmaceutical Statistics*, 23(3):385--398. https://doi.org/10.1002/pst.2358

Wu J (2015). Sample size calculation for the one-sample log-rank test. *Pharmaceutical Statistics*, 14(1): 26--33. https://doi.org/10.1002/pst.1654
