I am confused about some maths in the help for calculating sample size for time to event data in the PS Sample Size calculator.

One of the fields you need to enter is the m1 paramter, which is listed in the help as 'the median survival time on control treatment'. The help goes on to say

"If you do not have a direct estimate of m1, proceed as follows. Let p be the probability that a control subject survives until some time t. Then we can estimate m1 by"

$m1 = t\log_e(1/2)/log_e(p)$

So for a toy problem say we have a trial with a 2-year maximum follow-up, 6 month uniform enrollment period, hazard of 0.1 per 1-person year for the treatment group, hazard of 0.2 per 1-person year for the control group, drop out hazard 0.1. per 1-person year, alpha of 0.025 (1 sided), power of 0.9 (default, beta = 0.1).

Based on the above equation the median survival time for the control m1, subbing 2 for t and 0.2 for p should be

$m1 = 2\log_e(1/2)/log_e(0.2) = 2*log(0.5)/log(0.2) = 2*-0.69/-1.61 = 0.86$

However in the nSurvival function from the gsDesign package in R, which should perform the same analysis when we run the function like so

ss <- nSurvival(lambda1 = 0.2, ## hazard rate placebo
                lambda = 0.1,  ## hazard rate treatment
                eta = 0.1,     ## equal dropout rate for both groups
                Ts = 2,        ## maximum study duration
                Tr = 0.5,      ## accrual duration
                sided = 1,
                alpha = 0.025,
                ratio = 1) 


We get the following output

Fixed design, two-arm trial with time-to-event
outcome (Lachin and Foulkes, 1986).
Study duration (fixed):          Ts=2
Accrual duration (fixed):        Tr=0.5
Uniform accrual:              entry="unif"
Control median:      log(2)/lambda1=3.5
Experimental median: log(2)/lambda2=6.9
Censoring median:        log(2)/eta=6.9
Control failure rate:       lambda1=0.2
Experimental failure rate:  lambda2=0.1
Censoring rate:                 eta=0.1
Power:                 100*(1-beta)=90%
Type I error (1-sided):   100*alpha=2.5%
Equal randomization:          ratio=1
Sample size based on hazard ratio=0.5 (type="rr")
Sample size (computed):           n=430
Events required (computed): nEvents=91

Especially notice the line of the output that states the control median as log(2)/lambda1 where lambda1 is the hazard in the control group (i.e 0.2). The value for this equation is 3.5. Very different from my value of 0.86. However, when I enter this value of 3.5 into the m1 field in the PS software it returns an estimated required sample size of n=201 for each arm, 402 in total, quite similar to the estimate from the gsDesign package.

So my question is where am I going wrong when I calculate the median survival time for the control subject based on the PS equation? Why am I getting such different results (0.86 vs 3.5) and why are the two equations different in gsDesign and the PS software?


1 Answer 1


The method for estimating median survival (based on an underlying exponential survival curve) specifies:

Let p be the probability that a control subject survives until some time t. (Emphasis added)

You expect only a "hazard of 0.2 per 1-person year for the control group." Yet you did the following:

subbing 2 for t and 0.2 for p

which is inconsistent with the method in two ways.

First, the probability of survival to 1 year is 0.8, not 0.2. Second, you used 2 years for the time, while that's the the estimated survival for 1 year. It's not surprising that your estimate of median survival was less than 1 year, contrary to your assumption of 80% survival at 1 year.

I get a median survival of 3.1 years based on yourstated assumptions. Quick rough sanity check: at 0.8 survival per year, survival over three years should be approximately $0.8^3 = 0.51$.

  • $\begingroup$ Thanks @EdM. Bringing me peace of mind as usual. What's your take on the two different equations for median survival time in the control group in the two different packages: PS calculator $m1=t\log_e(1/2)/log_e(p)$ vs gsDesign packages $log(2)/lambda1$. Is one more 'correct' than the other? They arrive at two different figures, 3.1 vs 3.5 respectively $\endgroup$
    – llewmills
    Commented Aug 16, 2022 at 20:12
  • 1
    $\begingroup$ The difference is in which assumption about control survival rate you are making. The $\lambda$ value for the second method is the rate constant for an exponential decay. If you know that value, then the second method is OK. If your rate constant is 0.2 per year, however, then you end up with about 82% survival at one year (in R: 1-pexp(1,0.2)), not 80%, as the number at risk decreases over time during the year. If you have an estimate for survival at a particular time, rather than an estimate for the rate constant, then the first is OK. $\endgroup$
    – EdM
    Commented Aug 16, 2022 at 20:36
  • $\begingroup$ Argh @EdM my head is spinning a bit. Helps if I restate it in my own words. So the second equation (returned by gsDesign: $log(2)/lambda1$) is what you use to estimate median survival time when you know the rate of decay in survival, whereas the first equation (used by the PS power calculator: $t\log_e(1/2)/log_e(p)$) is what you use for estimating median survival time within the interval between a single time point and the start of the measurement period when you know the survival rate at that time point? Is that right? I extrapolated the last part. $\endgroup$
    – llewmills
    Commented Aug 17, 2022 at 2:04
  • 1
    $\begingroup$ @llewmills yes, that's right. $\endgroup$
    – EdM
    Commented Aug 17, 2022 at 12:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.