## Technicality: Weigths for the inverse normal approach [Two-Stage / GS Designs]

Dear Helmut,

great post.

Only one remark about the weights you choose for the maximum combination test in your R code.

»

Defining the weights that way is IMHO not what you intended. Or I don't understand what you intended.

It is correct if you think in terms of the standard combination test and think further that you have to specify two weights for that. But since the two weights are connected by

The idea behind the maximum combination test now is:

If our first pair of weights

If you were too optimistic in your planing of n2, i.e. have chosen n2 too low compared to what really happens in the sample size adaption, it would be wise to define w* lower than w.

You do that, but your choice (

Hope this sermon is not too confusing.

BTW: Choosing the weights "optimal" is for me a mystery. To do that, we had to know the outcomes of the two stages, but we don't have them until the study has been done. On the other hand we have to predefine them to gain strict TIE control. Hier beißt sich die Katze in den Schwanz.

great post.

Only one remark about the weights you choose for the maximum combination test in your R code.

»

`...`

```
» for (j in seq_along(CV)) {
```

» n[j] <- sampleN.TOST(alpha=alpha, CV=CV[j], theta0=GMR, theta1=theta1,

» theta2=theta2, targetpower=targetpower,

» print=FALSE, details=FALSE)[["Sample size"]]

» if (n[j] < 12) n[j] <- 12

» for (k in seq_along(n1)) {

» # median of expected total sample size as a 'best guess'

» n.tot <- power.tsd.in(alpha=alpha, CV=CV[j], n1=n1[k], GMR=GMR,

» usePE=usePE, theta1=theta1, theta2=theta2,

» targetpower=targetpower, fCrit=fCrit,

» fClower=fClower, fCNmax=fCNmax, pmethod=pmethod,

» npct=0.5)$nperc[["50%"]]

» w <- c(n1[k], n.tot - n1[k]) / n.tot

» # force extreme weights if expected to stop in stage 1 with n1

» if (w[1] == 1) w <- w + c(-1, +1) * 1e-6

» ...

Defining the weights that way is IMHO not what you intended. Or I don't understand what you intended.

It is correct if you think in terms of the standard combination test and think further that you have to specify two weights for that. But since the two weights are connected by

`w, 1-w`

the second is calculated within the function `power.tsd.in()`

automatically. You only need to define `w[1]`

in the input argument.The idea behind the maximum combination test now is:

If our first pair of weights

`w, 1-w`

(chosen anyhow) is not "optimal", choose a second pair of weights `w*, 1-w*`

which is more adapted to the real situation.If you were too optimistic in your planing of n2, i.e. have chosen n2 too low compared to what really happens in the sample size adaption, it would be wise to define w* lower than w.

You do that, but your choice (

`w in w[1]=0.999999, w* in w[2]=1e-6`

) is too extreme I think and not your intention I further think. The second pair of weights `w*=1e-6, 1-w*=0.999999`

here is for a situation were the p-values from the second stage nearly exclusively determine the overall outcome of the maximum combination test. The p-values from the first stage data are down-weighted with `w*=1e-6`

.Hope this sermon is not too confusing.

BTW: Choosing the weights "optimal" is for me a mystery. To do that, we had to know the outcomes of the two stages, but we don't have them until the study has been done. On the other hand we have to predefine them to gain strict TIE control. Hier beißt sich die Katze in den Schwanz.

—

Regards,

Detlew

Regards,

Detlew

### Complete thread:

- Finally: Exact TSD methods for 2×2 crossover designs Helmut 2018-04-21 17:17
- Exact TSD methods: Example Helmut 2018-04-21 20:33
- Finally: Exact TSD methods for 2×2 crossover designs ElMaestro 2018-04-21 20:49
- Flow chart (without details) Helmut 2018-04-21 21:41
- naive questions regarding new functions in Power2Stage mittyri 2018-04-28 15:54
- Some answers Helmut 2018-04-28 17:29
- Some more "answers" d_labes 2018-04-29 21:11
- clarification regarding user Power2Stage guides mittyri 2018-04-30 13:41

- naive questions regarding new functions in Power2Stage mittyri 2018-04-28 15:54

- Flow chart (without details) Helmut 2018-04-21 21:41
- Technicality: Weigths for the inverse normal approachd_labes 2018-04-25 14:19
- Selection of w and w* Helmut 2018-04-26 09:51
- Selection of w and w* d_labes 2018-04-26 20:02
- Now what? w & w* examples d_labes 2018-05-09 13:53
- Now what? w & w* examples Ben 2018-06-10 20:12
- Now what? w & w* examples Helmut 2018-06-11 13:57
- Now what? w & w* examples Ben 2018-06-12 19:14

- a bug in interim.tsd.in()? mittyri 2018-06-11 23:27
- a bug in interim.tsd.in()? Ben 2018-06-12 19:32
- Nonbinding futility rule d_labes 2018-06-13 16:59
- Bad weather? Helmut 2018-06-13 19:23
- NLYW? d_labes 2018-06-14 10:18

- Nonbinding futility rule Ben 2018-06-13 20:26
- Nonbinding futility rule d_labes 2018-06-14 10:47
- Nonbinding futility rule Ben 2018-06-15 17:58
- Binding / Nonbinding futility rule - alpha control d_labes 2018-06-16 19:42
- Binding / Nonbinding futility rule - alpha control Ben 2019-03-30 09:52

- Binding / Nonbinding futility rule - alpha control d_labes 2018-06-16 19:42

- Nonbinding futility rule Ben 2018-06-15 17:58

- Nonbinding futility rule d_labes 2018-06-14 10:47

- Bad weather? Helmut 2018-06-13 19:23

- Nonbinding futility rule d_labes 2018-06-13 16:59

- a bug in interim.tsd.in()? Ben 2018-06-12 19:32

- Now what? w & w* examples Helmut 2018-06-11 13:57

- Now what? w & w* examples Ben 2018-06-10 20:12

- Selection of w and w* Helmut 2018-04-26 09:51