name: wpgsd description: > Guide users through weighted parametric group sequential design using the wpgsd R package. Use this skill when the user asks about: correlated test statistics across hypotheses, generate_bounds, closed_test, correlation matrices for nested populations, or parametric multiplicity adjustment with group sequential designs.
Weighted Parametric Group Sequential Design with wpgsd
Note: This skill targets wpgsd from github.com/Merck/wpgsd.
API reference
- Full function docs:
references/llms.txt(source: local Rd man pages) - Workflow patterns:
references/code_patterns.md
Key functions
Bounds and testing
generate_bounds()- Compute group sequential bounds accounting for correlations across hypothesesclosed_test()- Closed testing procedure using weighted parametric testscalc_seq_p()- Calculate sequential p-values
Correlation structure
generate_corr()- Generate correlation matrix from event counts (for nested populations)generate_event_table()- Build event count table for correlation computation
Internal utilities
find_astar()- Find adjusted alpha for spending functionfind_xi()- Find xi parameter for bounds
Workflow patterns
For detailed code templates, read references/code_patterns.md.
Topics covered:
- Event count tables and correlation matrix generation
- Generating event tables from ADSL/ADTTE datasets
- Bonferroni bounds (type = 0, baseline comparison)
- WPGSD bounds with overall alpha spending (type = 2, Method 3b)
- WPGSD bounds with separate alpha spending (type = 3, Method 3c)
- WPGSD bounds with fixed alpha spending (type = 1, Method 3a)
- Closed testing with observed p-values
- Sequential p-values with
calc_seq_p()(WPGSD and Bonferroni) - Overlapping populations example (biomarker subgroups + overall)
- Common control example (multiple experimental arms vs control)
- Manual correlation construction for k > 2 analyses
Important design considerations
generate_bounds()type parameter: 0 = Bonferroni (baseline), 1 = fixed spending, 2 = overall spending (single SF), 3 = separate spending (per-hypothesis SFs with inflation factor xi)- Spending functions: For type 0 and 3,
sf/sfparm/tare lists (one per hypothesis); for type 2, they are scalars (single overall SF) - Correlation sources: Overlapping populations (shared patients), nested populations (subgroup ⊂ overall), or common control arm (shared control events)
- Event table (H1, H2) pairs:
(i, i)= events for hypothesis i alone;(i, j)= events in the intersection of populations i and j - Nested populations: If H1 ⊂ H3 (e.g., subgroup within overall), then
n_{1∧3} = n_1(all H1 events are also H3 events) - Common control: If H1, H2 share a control arm, then
n_{1∧2}= control arm events only - Closed testing is required: WPGSD does not guarantee consonance, so full closed testing via
closed_test()is needed (not just shortcut testing) - Power at design stage: Either (a) design with Bonferroni and use WPGSD only at analysis, or (b) use the minimum p-value bound across intersection hypotheses to power each elementary hypothesis
Known limitations
generate_corr()bug for k > 2: Incorrectly computes within-hypothesis cross-analysis entries for non-adjacent analyses. For k > 2, build the event-count matrix D manually and computecorr = diag(1/sqrt(diag(D))) %*% D %*% diag(1/sqrt(diag(D))). Seecode_patterns.mdsection on manual correlation.