Variants of Randomized Trials (Cochrane Handbook Ch 23)
Your Role
Guide handling of non-standard RCT designs in SRs: cluster RCTs, crossover trials, stepped-wedge designs, equivalence/non-inferiority trials, and multi-arm trials. Each requires different data extraction, effect measure computation, and analysis.
Prerequisites
- Included studies list with designs identified (from sr-extraction)
Workflow
Step 1: Classify Each Study's Design
ASK the user for each included study:
- Was randomization at individual or group level? (cluster)
- Did patients receive both treatments in sequence? (crossover)
- Was there a sequential roll-out of the intervention? (stepped-wedge)
- Is the trial testing equivalence/non-inferiority (rather than superiority)?
- Are there >2 intervention groups? (multi-arm)
Step 2: Cluster RCTs
Detection: Individual randomization not stated → suspect clustering. Check for: ICC reported, unit of analysis error, multilevel analysis.
Extraction: Identify if trial correctly accounted for clustering. If not → extract raw data and compute effective sample size.
ICC imputation (if not reported):
python3 scripts/cluster_handler.py --study Smith2021 --type extract --n 200 --m 20
Effective sample size (ESS):
ESS = N / (1 + (m - 1) × ICC)
where m = average cluster size
Analysis: Use ESS in meta-analysis (round down). Sensitivity: exclude cluster trials and compare.
RUN cluster-adjusted MA:
Rscript scripts/cluster_ma.R --data extraction.csv --icc 0.05
Step 3: Crossover Trials
Detection: Same patients receive both treatments in random order with washout period.
Appropriateness: Crossover is appropriate for stable chronic conditions, NOT for acute EM conditions (sepsis, trauma, cardiac arrest).
Extraction: Extract paired data:
- Mean difference (MD) between treatments
- SD (or SE) of the paired differences
- OR correlation coefficient between paired measurements
Analysis:
- If paired data available: use paired analysis
- If only unpaired data reported: treat as parallel-group (conservative), or impute correlation
python3 scripts/crossover_extract.py --study Jones2020 --type impute --correlation 0.5
Flag: carryover effects possible. If washout <5 half-lives → high risk of carryover.
Step 4: Stepped-Wedge Trials
Detection: All clusters start in control, sequentially cross to intervention at random time points. Common in EM quality improvement studies.
Extraction: Extract from appropriate analysis (mixed-effects model with fixed time effect + random cluster effect).
Include only if: The analysis accounted for time effects. If analyzed as simple cross-sectional pre-post → exclude or flag as high risk.
Analysis: Use effect estimate directly from the stepped-wedge analysis. Do NOT treat as parallel-group.
Step 5: Equivalence and Non-Inferiority Trials
Detection: Trial declares a non-inferiority margin (delta). Reported as "non-inferior" if CI excludes delta.
Extraction: Extract BOTH ITT AND per-protocol results (both required per CONSORT). Note the pre-specified margin.
Analysis:
- For NON-INFERIORITY: include in MA. If converting OR to RR, check margin compatibility.
- For EQUIVALENCE: include in MA if compatible with superiority trials.
- SENSITIVITY: exclude NI/equivalence trials and compare.
FLAG: "The non-inferiority margin was [delta]. The trial's finding [does/does not] apply to superiority questions."
Step 6: Multi-Arm Trials
Extraction: Identify all eligible intervention arms and comparator arms.
Analysis:
- If 1 intervention + 2 comparators → include only the relevant comparator
- If 2 interventions + 1 comparator → include both interventions:
- Option A: combine intervention arms (pool across arms)
- Option B: split control group (floor(N_c / k) per comparison)
- Option C: select the most relevant intervention arm
Option B is generally recommended (Ch 23.3.4):
python3 scripts/split_control.py --n-control 120 --k-arms 2 --method floor
Scripts
scripts/cluster_handler.py
Extract or impute ICC, compute effective sample size, assess unit-of-analysis error.
Usage: python3 cluster_handler.py --study Smith2021 --type impute --outcome mortality --icc-estimate 0.05
scripts/cluster_ma.R
Meta-analysis incorporating cluster trials via ESS or multi-level model.
Usage: Rscript cluster_ma.R --data extraction.csv --icc 0.05 --method ess
scripts/crossover_extract.py
Extract paired data from crossover trials. Impute correlation if needed.
Usage: python3 crossover_extract.py --study Jones2020 --md 2.5 --sd-paired 3.2
scripts/split_control.py
Split the control group N across multiple comparisons from multi-arm trials.
Usage: python3 split_control.py --n-control 120 --k-arms 2 --method floor
Assets
assets/rct-variant-classifier.md
Decision tree for identifying variant RCT designs from study methods text.
assets/icc-reference-table.md
Published ICC values for common EM/CC outcomes from the literature (e.g., ICU LOS ICC ≈ 0.05-0.15, mortality ICC ≈ 0.01-0.05).
assets/non-inferiority-margins-em.md
Commonly used non-inferiority margins in EM/CC trials: mortality RR margins 1.10-1.50, mortality RD margins 5-10%, intubation success RD margin 5%.
Guardrails
- "Cluster trials analyzed without adjusting for clustering commit a unit-of-analysis error — ALWAYS adjust (Ch 23.1.3)."
- "Crossover trials are INAPPROPRIATE for acute EM conditions that change over time (sepsis, trauma). Check period-by-treatment interaction before including (Ch 23.2.4)."
- "Do NOT combine equivalence/non-inferiority trials with superiority trials without justification and sensitivity analysis."
- "For stepped-wedge trials: only include if analysis accounted for time effects (fixed + random time)."
- "If cluster trial does not report ICC, impute from similar trials and test sensitivity in meta-regression."
- "For multi-arm trials, splitting control groups is conservative — verify with sensitivity analysis combining arms."
Handoff
→ sr-extraction (variant-adapted extraction), → sr-synthesis (adjusted MA with ESS/nested models)
微信扫一扫