## Forget rss() [Two-Stage / GS Designs]

❝ […] I agree that PE outside is not possible but it has been observed in pilot studies of mesalamine where many BLQs are observed in a subject which skewed the T/R to the extreme.

❝ 95% is a very bold to assume in HVD. but should actual T/R ratio for re-estimation of sample size? somehow it should be according to potvin method B?

*in principle*, they introduced a futility criterion on the total sample size (default

`nmax = 100`

). That means any re-estimated total sample size `>nmax`

will be considered a failure in stage 1 and reported as `nmax`

. For 2×2×2 and parallel designs that’s implemented in the functions of the package `Power2Stage`

(argument `Nmax`

).As in the Potvin methods a

*fixed*

*GMR*(not the

*observed*one in stage 1) is used. The authors discussed that in the paper and argued against it (

*i.e.*, not going fully adaptive). Implemented in the functions of

`Power2Stage`

(argument `usePE = TRUE`

), though its use requires a careful selection of futility criteria in order not to compromise power.❝ This wonders me with T/R ratio of 85% as well.

❝ `power.RSABE(alpha = 0.0294, theta0 = 0.85, CV = 0.6978, n = 24, design = "2x2x4")`

❝ `[1] 0.6369`

❝ `rss(n = 24, r = 2, S_WR = 0.630, params = list(sig_level=0.0294))`

❝ `$rss`

❝ `[1] 21`

❝ `rss(n = 24, r = 2, S_WR = 0.630, params = list(sig_level=0.0294, GMR=0.85))`

❝ `$rss`

❝ `[1] 100`

❝ !!

`GMR = 0.95`

is used (the function’s default). Of course a total sample size less the one in stage 1 is nonsense (read my previous post again).In the second case

`nmax`

is reported. By chance? Increase `nmax`

and – surprise, surprise:`suppressMessages(library(adaptIVPT))`

N <- integer(100)

for (j in seq_along(N)) {

N[j] <- unlist(rss(n = 24, r = 2, S_WR = 0.630,

params = list(sig_level = 0.0294, GMR = 0.85,

nmax = 500)))[["rss"]]

}

vals <- data.frame(N = sort(unique(N)), times = NA_character_)

for (j in 1:nrow(vals)) {

vals$times[j] <- sprintf("%5.0f%%", 100 * sum(N == vals$N[j]) / 100)

}

hist(Ns, xlab = "Total sample size", main = "", las = 1)

print(vals, row.names = FALSE)

N times

62 2%

67 1%

68 5%

71 9%

72 3%

73 2%

74 6%

75 10%

76 13%

77 3%

78 4%

79 12%

80 1%

81 3%

82 7%

83 5%

85 4%

86 2%

88 5%

89 2%

94 1%

Try the script of this post.

`RSABE.TSD(n1 = 24, CVwR = 0.6978, GMR = 0.85, nmax = 100, final = FALSE)`

adjusted alpha : 0.0294 (Pocock’s for superiority)

design : 2x2x4

n1 : 24

futility on N : 100

CVwR : 0.6978 (observed)

theta1 : 0.5700 (lower implied limit)

theta2 : 1.7545 (upper implied limit)

power : 0.6369 (estimated)

Stage 2 initiated (insufficent power in stage 1)

GMR : 0.8500 (fixed)

target power : 0.8000 (fixed)

n2 : 54

N : 78

However, if you

*really*expect a T/R-ratio of 0.72, it would be both economically and ethically more than questionable to perform a study designed for 0.85. That’s a recipe for disaster!

```
power.RSABE(alpha=0.0294, CV = 0.6978, theta0 = 0.72, design = "2x2x4", n = 78)
```

[1] 0.07005

*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 possible Helmut 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 possible Helmut 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