## Better 0.95 or 0.90 [Power / Sample Size]

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.

Cheers,
Helmut Schütz

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