Better 0.95 or 0.90 [Power / Sample Size]

posted by Helmut Homepage – Vienna, Austria, 2017-12-29 17:18 (2302 d 10:08 ago) – Posting: # 18127
Views: 33,109

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 🖖🏼 Довге життя Україна! [image]
Helmut Schütz
[image]

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

Complete thread:

UA Flag
Activity
 Admin contact
22,987 posts in 4,824 threads, 1,669 registered users;
70 visitors (0 registered, 70 guests [including 7 identified bots]).
Forum time: 04:27 CEST (Europe/Vienna)

The only way to comprehend what mathematicians mean by Infinity
is to contemplate the extent of human stupidity.    Voltaire

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