Stage 2: statistical analysis plan
SAP statistical methods: estimand, analysis sets and the BE model
Synthetic data only: simulated for this worked example; not real trial data and not a regulatory deliverable.
Excerpt of the statistical methods of a statistical analysis plan (SAP) for the synthetic study SIMBE01. The numerical settings in this plan (acceptance limits, exclusion thresholds and NCA options) are also written to analysis_parameters.json, which the analysis programs read, so a change to a setting reaches the code and this plan together.
1 Estimand (ICH E9(R1))
| Attribute | Primary estimand |
|---|---|
| Treatment | One 100 mg tablet of the test product (T) and of the reference product (R; the comparator in ICH M13A terms), fasting, in a 2x2 crossover with a 14-day washout |
| Population | Healthy adults meeting the protocol's eligibility criteria |
| Variable | Cmax and AUC(0-t) of SIMDRUG in plasma from actual sampling times |
| Intercurrent events | Handled with a hypothetical strategy; see the table below |
| Population-level summary | Ratio of geometric means T/R with a two-sided 90% confidence interval; bioequivalence if both intervals lie within 80.00% to 125.00% |
ICH E9(R1) was adopted at Step 4 on 20 Nov 2019 (FDA final guidance May 2021). It lists five strategies for intercurrent events; the table after the next one says which one is used and why.
| Intercurrent event | Strategy | How it is implemented | When the rule is applied |
|---|---|---|---|
| Emesis within 2 h of dosing | Hypothetical | The period's PK parameters are excluded (ADPP ANL01FL not Y; PKEXRSN gives the reason) | Documented when it happens, before bioanalysis (ICH M13A 2.2.1) |
| Withdrawal before the second period | Hypothetical | The participant contributes one period and leaves the bioequivalence set (ADSL BEFL = N) | Documented when it happens, before bioanalysis (ICH M13A 2.2.1) |
| Pre-dose concentration above 5% of the period's Cmax | Hypothetical | The period is excluded from the primary analysis (ICH M13A 2.2.3.3, carry-over) | After bioanalysis: needs the measured concentrations |
| Period AUC below 5% of the product's geometric mean AUC | Hypothetical | The period may be excluded; at most one participant per study is expected (ICH M13A 2.2.1.1) | After bioanalysis: needs the measured concentrations |
| Prohibited medication that could change exposure | Hypothetical | The period is excluded if the medication is judged to affect exposure (not exercised: no concomitant medications were simulated) | Documented when it happens, before bioanalysis (ICH M13A 2.2.1) |
| E9(R1) strategy | Used here | Reason |
|---|---|---|
| Treatment policy | No | Would fold events unrelated to the formulations (for example emesis) into the formulation comparison |
| Hypothetical | Yes | Targets exposure had the event not occurred; matches the pre-specified M13A rules for removing periods (2.2.1, 2.2.1.1, 2.2.3.3) |
| Composite variable | No | The variable is a continuous exposure measure; no event outcome is combined with it |
| While on treatment | No | Single doses; there is no treatment duration to truncate |
| Principal stratum | No | The target population is all eligible participants, not a stratum defined by a post-randomization event |
2 Analysis sets
| Analysis set | ADaM flag | Definition | Used for |
|---|---|---|---|
| Enrolled | ADSL.RANDFL | Randomized | Disposition |
| Safety | ADSL.SAFFL | Received at least one dose | Demographics, adverse events |
| PK concentration | ADSL.PKCFL | Safety set and at least one quantifiable post-dose concentration | Concentration summaries and figures |
| PK parameter | ADSL.PKPFL | At least one profile with evaluable Cmax and AUC(0-t) and no exclusion | PK parameter summaries |
| Bioequivalence | ADSL.BEFL | Evaluable Cmax and AUC(0-t) after both T and R, after exclusions | Bioequivalence analysis |
3 Pharmacokinetic parameters
Parameters come from non-compartmental analysis (NCA) with PKNCA 0.12.1 on actual sampling times relative to each period's dose (ADPC.ARRLT). Pre-dose samples are assigned time 0. The NCA settings follow ICH M13A (Step 4 23 Jul 2024; FDA final 30 Oct 2024; EU effective 25 Jan 2025):
- AUC by the linear-up/log-down trapezoidal method (M13A gives the linear trapezoidal method as an example and asks that the method be reported). The log-down rule applies only when both concentrations are positive; a segment that starts or ends at a zero (BLQ) concentration uses the linear trapezoid, as PKNCA does.
- Concentrations below the LLOQ (0.50 ng/mL) are treated as zero wherever they fall in the profile (ICH M13A 2.2.2.2):
PKNCA.options(conc.blq = list(first = "keep", middle = "keep", last = "keep")). PKNCA treats a kept BLQ value as zero. This changes the PKNCA default, which drops BLQ values in the middle of a profile. One simulated profile has a BLQ result between quantifiable samples, and the analysis page shows how much the choice changes its AUC(0-t). - BLQ values are omitted from the terminal rate constant: PKNCA excludes zeros from the log-linear fit.
- The terminal phase uses at least 3 points after tmax, chosen by adjusted R-squared (PKNCA defaults
min.hl.points = 3,allow.tmax.in.half.life = FALSE). - Primary: Cmax and AUC(0-t) (AUC to the last quantifiable concentration). Additional: AUC(0-inf), AUC(0-t)/AUC(0-inf), tmax, the terminal rate constant (lambda z) and t1/2.
- Parameter rules: lambda z, t1/2, AUC(0-inf) and the extrapolated percentage are not summarized or analyzed when the adjusted R-squared of the terminal fit is below 0.90; AUC(0-inf) is not summarized or analyzed when more than 20% of it is extrapolated (the extrapolated percentage itself is still summarized). They are applied with PKNCA
exclude(), with a rule function that flags every parameter that depends on lambda z (get.parameter.deps("half.life")) or AUC(0-inf) alone. The values stay in ADPP, with ANL01FL and ANL02FL not Y and NCAEXRSN giving the rule. - AUC(0-t) should cover at least 80% of AUC(0-inf). If coverage is below 80% in more than 20% of profiles, the report discusses the study's validity (ICH M13A 2.2.2.2). This check counts every evaluable profile, including those whose AUC(0-inf) is not summarized under the 20% rule.
- Summary statistics: n, arithmetic mean, SD, CV%, geometric mean, geometric CV%, median, minimum and maximum; tmax as median (minimum, maximum). Geometric mean = exp(mean(log x)); geometric CV% = 100*sqrt(exp(s^2) - 1) on the log scale.
- Individual profiles are plotted against actual times; mean profiles against nominal times (ICH M13A).
4 Bioequivalence model
For each primary parameter, on the bioequivalence set:
lm(log(AVAL) ~ SEQUENCE + USUBJID + PERIOD + TRTA) # USUBJID nested in SEQUENCE
- Fixed effects for sequence, participant within sequence, period and formulation (a general linear model, as ICH M13A allows).
- The ANOVA table reports all four effects. Sequence is tested against the participant-within-sequence mean square; participant within sequence, period and formulation are tested against the residual mean square. Sequence and participant-within-sequence sums of squares are sequential; period and formulation sums of squares are adjusted for every other term (so the table matches a Type III table when the sequences are unequal in size).
- The T minus R difference of least-squares means and its 90% confidence interval use the residual mean square with its degrees of freedom; the limits are exponentiated to a ratio. The decision uses the unrounded limits; the tables show two decimals.
- Within-participant CV% = 100*sqrt(exp(MSE) - 1).
- No carry-over test (ICH M13A). Carry-over is addressed by the pre-dose concentration rule.
- Supportive AUC(0-inf) analysis: the same model, on participants in the bioequivalence set whose AUC(0-inf) passes the parameter rules in both periods.
- Supplementary analysis 1 (ICH E9(R1) term): the same model with the excluded periods put back, for participants who have both periods. It changes how the intercurrent events are handled, so it is supplementary, not a sensitivity analysis of the primary estimand.
- Supplementary analysis 2 (ICH M13A 2.1.8.1): the same model without the participants whose Cmax is at the first post-dose sample (0.25 h) in either period, since their true Cmax may have come earlier. The report discusses whether the conclusion depends on them.
5 Missing data and values below the LLOQ
- No imputation. A missed sample is omitted and the profile is analyzed with the remaining samples; the listing flags it.
- BLQ values are zero in PK calculations and omitted from lambda z (ICH M13A). Concentration summaries by nominal time also use zero for BLQ and report how many values were BLQ.
- A participant without evaluable primary parameters for both products leaves the bioequivalence set (ICH M13A: the primary analysis includes all participants with evaluable data for both products). At least 12 evaluable participants are required for the study to be acceptable.
6 Safety
Treatment-emergent adverse events (onset on or after the first dose) are assigned to the treatment taken most recently before onset. Each participant counts once per row; the denominator is the number of participants exposed to that treatment. Coding: MedDRA, version set at study start: MedDRA v28.1 (synthetic coding), the version current when this synthetic study started.
7 Outputs
Mock shells for every planned output are on the mock shells page: Table 14.1.2 demographics, 14.3.1.1 adverse-event overview, 14.4.1.1 concentration summary, 14.4.4.1 PK parameter summary, 14.4.3.1 bioequivalence results and 14.4.3.2 the ANOVA effects table. The executed versions are in the analysis stage.