# Mean survival time for a log-normal survival function

I've found plenty of formulas showing how to find the mean survival time for an exponential or Weibull distribution, but I'm having considerably less luck for log-normal survival functions.

Given the following survival function:

$$S(t) = 1 - \phi \left[ {{{\ln (t) - \mu } \over \sigma }} \right]$$

How does one find the mean survival time. As I understand it, $\sigma$ is the estimated scale parameter, and that exp($\beta$) from a parametric survival model is $\mu$. While I think I can manipulate it symbolically to get t all by itself after setting S(t) = 0.5, what's especially stumping me is how to handle $\phi$ in something like R when it actually comes down to inputting all the estimates and obtaining a mean time.

Thus far, I've been generating the survival function (and associated curves), like so:

beta0 <- 2.00
beta1 <- 0.80
scale <- 1.10

exposure <- c(0, 1)
t <- seq(0, 180)
linmod <- beta0 + (beta1 * exposure)
names(linmod) <- c("unexposed", "exposed")

## Generate s(t) from lognormal AFT model

s0.lnorm <- 1 - pnorm((log(t) - linmod["unexposed"]) / scale)
s1.lnorm <- 1 - pnorm((log(t) - linmod["exposed"]) / scale)

## Plot survival
plot(t,s0.lnorm,type="l",lwd=2,ylim=c(0,1),xlab="Time",ylab="Proportion Surviving")
lines(t,s1.lnorm,col="blue",lwd=2)


Which yields the following:

-
I guess you mean "median survival time" rather than "mean survival time". The median survival time is easily found to be $t_{\textrm{med}} = exp(\mu)$. –  ocram Aug 4 '12 at 11:24
@ocram - Well, that was...easy. Convert that to an answer and I'll accept. Out of curiosity however, why do you assume I mean "median" rather than "mean"? –  EpiGrad Aug 4 '12 at 14:10
If you meant mean and not median then you don't set S(t)=0.5. The lognormal is a highly skewed distribution and the mean and median differ. The mean survival time is more complicated than the median. –  Michael Chernick Aug 4 '12 at 14:22
@EpiGard: I assumed "median" rather than "mean" for the reason pointed out by Michael C. ;-) I am going to convert my comment to an answer. –  ocram Aug 4 '12 at 15:44
The mean survival time is not very complicated. See my answer. (The various moments are also relatively easily calculated.) –  Mark Adler Aug 4 '12 at 22:25

The median survival time, $t_{\textrm{med}}$, is the solution of $S(t) = \frac{1}{2}$; in this case, $t_{\textrm{med}} = \exp(\mu)$. This is because $\Phi(0) = \frac{1}{2}$ when $\Phi$ denotes the cumulative distribution function of a standard normal random variable.

When $\mu = 3$, the median survival time is around $20.1$ as depicted in the picture below.

-
The mean survival time is most easily found by expressing it in terms of the moment generating function of a normal random variable evaluated at $t = 1$. –  cardinal Aug 4 '12 at 20:19

The R rms package can help:

require(rms)
f <- psm(Surv(dtime, event) ~ ..., dist='lognormal')
m <- Mean(f)
m   # see analytic form
m(c(.1,.2)) # evaluate mean at linear predictor values .1, .2
m(predict(f, expand.grid(age=10:20, sex=c('male','female'))))
# evaluates mean survival time at combinations of covariate values

-
Likely quite helpful for the future, but the actual survival data itself isn't in R - it's on the list to translate at some point, but right now it's just to coefficients, with everything else done in SAS. –  EpiGrad Aug 4 '12 at 14:07
You'll find the survival analysis capabilities of R to be ahead of those in SAS. –  Frank Harrell Aug 4 '12 at 14:30
Agreed - hence 'on the list to translate', but I don't know R nearly as well, and while this bit is easy, the extended parts of the project are considerably more complicated, and have existing implementations in SAS. –  EpiGrad Aug 4 '12 at 14:37
In case someone really does want the mean survival time as originally asked, it's $e^{\mu+{\sigma^2\over 2}}$. (In fact, the original poster should carefully consider whether they want the mean or the median for their use of the resulting number. For the example given with $\sigma=1.1$, the mean is almost twice the median.)