Better 0.95 or 0.90 [Power / Sample Size]

posted by Helmut Homepage – Vienna, Austria, 2017-12-29 16:18 (1154 d 12:04 ago) – Posting: # 18127
Views: 28,209

Hi kms,

» » In this case, why they assume GMR=1.10 instead of the "normal" 0.95/1.05.
»
» This was […] a very rare case, but in General GMR would be taken as 0.95/1.05 as you said, but the power remains same as 95% to 99%

Similar same. ;-)

CV 0.20, GMR 1.10, target 80%, n 32 (power 81.01%), no dropouts expected

1e+05 simulated studies with “post hoc” power of
  ≥ target    : 54.04%
  ≥ achieved  : 51.57%
  ≥ 0.90      : 26.98%
  [0.95, 0.99]: 10.41%
  ≥ 0.95      : 12.50%


CV 0.20, GMR 1.05, target 80%, n 18 (power 80.02%), no dropouts expected

1e+05 simulated studies with “post hoc” power of
  ≥ target    : 48.45%
  ≥ achieved  : 48.41%
  ≥ 0.90      : 25.26%
  [0.95, 0.99]:  9.72%
  ≥ 0.95      : 12.92%


I still don’t understand what you wrote above:
» […] always it is coming in the interval 95 to 99 and some times 100

BTW, power curves are not symmetric in raw scale but in log-scale (see this post). If you are not – very – confident about the sign of ∆, I recommend to use GMR=1–∆ in order to be on the safe side. By this, power is preserved for GMR=1/(1–∆) as well. If you use GMR=1+∆, power for GMR=1–∆ will be insufficient:

cat(paste0("\u2206 with unknown sign: ", 100*delta, "%",
    "\n  based on GMR = 1 \u2013 \u2206 = ",
    sprintf("%5.4f", 1-delta), "      : n ",
    plan.1[["Sample size"]],
    "\n  based on GMR = 1 + \u2206 = ",
    sprintf("%5.4f", 1+delta), "      : n ",
    plan.2[["Sample size"]],
    "\n  based on GMR = 1 / (1 + \u2206) = ",
    sprintf("%5.4f", 1/(1+delta)), ": n ",
    plan.3[["Sample size"]],
    "\n  based on GMR = 1 / (1 \u2013 \u2206) = ",
    sprintf("%5.4f", 1/(1-delta)), ": n ",
    plan.4[["Sample size"]],
    "\n\nTrue GMR = ", sprintf("%5.4f", 1-delta),
    "\n  n ", plan.2[["Sample size"]], ", power ",
    sprintf("%4.2f%%", 100*power.TOST(CV=CV, theta0=1-delta,
    n=plan.2[["Sample size"]])),
    "\n  n ", plan.1[["Sample size"]], ", power ",
    sprintf("%4.2f%%", 100*plan.1[["Achieved power"]]),
    "\nTrue GMR = ", sprintf("%5.4f", 1/(1+delta)),
    "\n  n ", plan.3[["Sample size"]], ", power ",
    sprintf("%4.2f%%", 100*plan.3[["Achieved power"]]),
    "\n  n ", plan.1[["Sample size"]], ", power ",
    sprintf("%4.2f%%", 100*power.TOST(CV=CV, theta0=1/(1+delta),
    n=plan.1[["Sample size"]])),
    "\nTrue GMR = ", sprintf("%5.4f", 1+delta),
    "\n  n ", plan.2[["Sample size"]], ", power ",
    sprintf("%4.2f%%", 100*plan.2[["Achieved power"]]),
    "\n  n ", plan.1[["Sample size"]], ", power ",
    sprintf("%4.2f%%", 100*power.TOST(CV=CV, theta0=1+delta,
    n=plan.1[["Sample size"]])),
    "\nTrue GMR = ", sprintf("%5.4f", 1/(1-delta)),
    "\n  n ", plan.4[["Sample size"]], ", power ",
    sprintf("%4.2f%%", 100*plan.4[["Achieved power"]]),
    "\n  n ", plan.2[["Sample size"]], ", power ",
    sprintf("%4.2f%%", 100*power.TOST(CV=CV, theta0=1/(1-delta),
    n=plan.2[["Sample size"]])), "\n"))

∆ with unknown sign: 10%
  based on GMR = 1 – ∆ = 0.9000      : n 38
  based on GMR = 1 + ∆ = 1.1000      : n 32
  based on GMR = 1 / (1 + ∆) = 0.9091: n 32
  based on GMR = 1 / (1 – ∆) = 1.1111: n 38

True GMR = 0.9000

  n 32, power 75.17%
  n 38, power 81.55%
True GMR = 0.9091
  n 32, power 81.01%
  n 38, power 86.76%
True GMR = 1.1000
  n 32, power 81.01%
  n 38, power 86.76%
True GMR = 1.1111
  n 38, power 81.55%

  n 32, power 75.17%


In simple words, for ∆ 10% assume a GMR of 0.90 (which will preserve power for GMR up to 1.1111) and for ∆ 5% a GMR of 0.95 (covers up to 1.0526·).
If you assume a GMR of 1.10 power will be preserved only down to 0.9090 and with 1.05 down to 0.9524 – not to 0.90 or 0.95 as many probably expect.

Dif-tor heh smusma 🖖
Helmut Schütz
[image]

The quality of responses received is directly proportional to the quality of the question asked. 🚮
Science Quotes

Complete thread:

Activity
 Admin contact
21,356 posts in 4,458 threads, 1,493 registered users;
online 4 (0 registered, 4 guests [including 3 identified bots]).
Forum time: Friday 04:23 CET (Europe/Vienna)

Those who make no mistakes are making the biggest mistakes of all 
they are attempting nothing new.    Anthony de Mello

The Bioequivalence and Bioavailability Forum is hosted by
BEBAC Ing. Helmut Schütz
HTML5