PE outside {0.80, 1.25} not possible [Two-Stage / GS Designs]
❝ Should't we calculate stage-2 sample size with GMR of 0.95??
❝ I am trying to understand if this will be helpful in case of drugs which are very highly variable e.g. Mesalamine.
First of all let’s attach the libraries and define some variables.
suppressMessages(library(PowerTOST))
suppressMessages(library(adaptIVPT))
CVwR <- 0.6978
swR <- CV2se(CVwR)
GMR <- 0.72
adj <- 0.0294
n1 <- 24
❝ Hypothetically, if study conducted with N=24, fully replicate design but T/R ratio observed worse like 0.72.
❝ And if calculate power with reduced alfa in study using actual result of T/R=0.72, ISCV=0.6978 and N=24 using powerTOST package.
❝ power.RSABE(alpha = 0.0294, theta0 = 0.72, CV = 0.6978, n = 24, design = "2x2x4")
❝ [1] 0.18378
(which is less than 80%).
round(scABEL(CV = CVwR, regulator = "FDA"), 4)
lower upper
0.5700 1.7545
alpha
and targetpower
you like):sampleN.RSABE(theta0 = GMR, CV = CVwR, design = "2x2x4")
Error: True ratio 0.72 not within margins 0.8 ... 1.25!
❝ To recalculate the sample size with actual variability and assumed T/R of 95% and reduced alfa.
❝ rss(n = 24, r = 2, S_WR = 0.630, params = list(sig_level=0.0294))
❝ $rss
❝ 21
❝ this N=21 is total sample size right??
N <- integer(20) # multiple calls to assess reproducibility
for (j in seq_along(N)) {
N[j] <- unlist(rss(n = n1, r = 2, S_WR = swR, params = list(sig_level = adj)))[["rss"]]
}
cat(paste(N, collapse = ", "), "\n")
21, 21, 21, 22, 21, 21, 21, 22, 22, 21, 21, 21, 21, 21, 20, 20, 22, 21, 21, 21
(will be different if you call it)
N < n1
is yet another bug.❝ not the additional sample size (plz correct me if i am wrong)
GMR
, the function’s default 0.95
is used – which is much better than the 0.72 you expect.❝ Since, we have already started study with N=24, we cant go ahead with stage-2.
❝ Am i missing something?
rss()
is buggy. Though the PE-constraint is implemented (m = 1.25
) in the list of parameters, the function should throw an error like sampleN.RSABE()
if you specify a T/R-ratio outside 1/m … m
. Instead it returns nmax
, which defaults to 100.unlist(rss(n = n1, r = 2, S_WR = swR, params = list(sig_level = adj, GMR = GMR)))[["rss"]]
100
power.RSABE(alpha = adj, theta0 = GMR, CV = CVwR, n = 24 + 76, design = "2x2x4")
[1] 0.04751
LALA mesalamine is a nasty drug. It’s not the high CVwR which is problematic but the T/R-ratio. If you know already (say, from a pilot study or a failed one) that it’s outside 0.8000 – 1.2500, forget it. Even with a ‘better’ one:
sampleN.RSABE(theta0 = 0.84, CV = CVwR, design = "2x2x4", details = FALSE)
++++++++ Reference scaled ABE crit. +++++++++
Sample size estimation
---------------------------------------------
Study design: 2x2x4 (4 period full replicate)
log-transformed data (multiplicative model)
1e+05 studies for each step simulated.
alpha = 0.05, target power = 0.8
CVw(T) = 0.6978; CVw(R) = 0.6978
True ratio = 0.84
ABE limits / PE constraints = 0.8 ... 1.25
Regulatory settings: FDA
Sample size
n power
120 0.80100
Dif-tor heh smusma 🖖🏼 Довге життя Україна!
Helmut Schütz
The quality of responses received is directly proportional to the quality of the question asked. 🚮
Science Quotes
Complete thread:
- Adaptive Design for the FDA’s RSABE? Helmut 2023-12-18 11:20 [Two-Stage / GS Designs]
- Likely it does not work (potentially inflated Type I Error) Helmut 2023-12-19 11:10
- Exploring package adaptIVPT, function rss() Helmut 2023-12-20 13:27
- Extreme test case Helmut 2023-12-24 13:01
- Extreme GMR Naksh 2023-12-25 04:16
- PE outside {0.80, 1.25} not possibleHelmut 2023-12-25 10:54
- PE outside {0.80, 1.25} not possible Naksh 2023-12-25 11:42
- Forget rss() Helmut 2023-12-25 13:15
- Forget rss() Naksh 2023-12-26 04:49
- TSD useful at all? Helmut 2023-12-26 12:50
- Forget rss() Naksh 2023-12-26 04:49
- Forget rss() Helmut 2023-12-25 13:15
- PE outside {0.80, 1.25} not possible Naksh 2023-12-25 11:42
- PE outside {0.80, 1.25} not possibleHelmut 2023-12-25 10:54
- Extreme GMR Naksh 2023-12-25 04:16
- Extreme test case Helmut 2023-12-24 13:01
- Exploring package adaptIVPT, function rss() Helmut 2023-12-20 13:27
- Likely it does not work (potentially inflated Type I Error) Helmut 2023-12-19 11:10