I have an accelerated failure time model in SAS LIFEREG that I’d like to plot. Because SAS is to profoundly bad at graphing, I’d like to actually re-generate the data for the curves in R and plot them there. SAS puts out a scale (in the case of the exponential distribution fixed to 1), an intercept, and a regression coefficient for being in the exposed or unexposed population.
There’s two curves, one for the exposed and one for the unexposed population. One of the models is an exponential distribution, and I’ve produced the data and graph like so:
intercept <- 5.00
effect<- -0.500
data<- data.frame(time=seq(0:180)-1)
data$s_unexposed <- apply(data,1,function(row) exp(-(exp(-intercept))*row[1]))
data$s_exposed <- apply(data,1,function(row) exp(-(exp(-(intercept+effect))*row[1])))
plot(data$time,data$s_unexposed, type="l", ylim=c(0,1) ,xaxt='n',
xlab="Days since Infection", ylab="Percent Surviving", lwd=2)
axis(1, at=c(0, 20, 40, 60, 80, 100, 120, 140, 160, 180))
lines(data$time,data$s_exposed, col="red",lwd=2)
legend("topright", c("ICU Patients", "Non-ICU Patients"), lwd=2, col=c("red","black") )
Which gives me this:

Not the prettiest graph ever, but I don’t really know my way around ggplot2 enough to spruce it up. But more importantly, I have a second set of data that comes from a Log Normal distribution, rather than an exponential, and my attempts to generate the data for that have failed utterly – the incorporation of the cdf for the normal distribution and the like puts it beyond my R skills.
Anyone able to point me in the right direction, using the same numbers, and a scale parameter of 1?
The survival function at time t for a log-normal model can be represented in R with
1 - plnorm(), whereplnorm()is the log-normal cumulative distribution function. To illustrate, we’ll first put your plot into a function for convenience:Next, we’ll specify the coefficients, variables, and models, and then generate the survival probabilities for the exponential and log-normal models:
Finally, we can plot the survival probabilities:
And the resulting figures:
Note that
is the same as
which is the Φ in the canonical equation for the log-normal survival function: S(t) = 1 − Φ((ln(t) − µ) / σ)
As I’m sure you know, there are a number of R packages that can handle accelerated failure time models with left, right, or interval censoring, as listed in the survival task view, in case you happen to develop a preference for R over SAS.