dsurvreg {survival}R Documentation

Distributions available in survreg.


Density, cumulative distribution function, quantile function and random generation for the set of distributions supported by the survreg function.


dsurvreg(x, mean, scale=1, distribution='weibull', parms)
psurvreg(q, mean, scale=1, distribution='weibull', parms)
qsurvreg(p, mean, scale=1, distribution='weibull', parms)
rsurvreg(n, mean, scale=1, distribution='weibull', parms)



vector of quantiles. Missing values (NAs) are allowed.


vector of quantiles. Missing values (NAs) are allowed.


vector of probabilities. Missing values (NAs) are allowed.


number of random deviates to produce


vector of location (linear predictor) parameters for the model. This is replicated to be the same length as p, q or n.


vector of (positive) scale factors. This is replicated to be the same length as p, q or n.


character string giving the name of the distribution. This must be one of the elements of survreg.distributions


optional parameters, if any, of the distribution. For the t-distribution this is the degrees of freedom.


Elements of q or p that are missing will cause the corresponding elements of the result to be missing.

The location and scale values are as they would be for survreg. The label "mean" was an unfortunate choice (made in mimicry of qnorm); a more correct label would be "linear predictor". Since almost none of these distributions are symmetric the location parameter is not actually a mean.

The survreg routines use the parameterization found in chapter 2 of Kalbfleisch and Prentice. Translation to the usual parameterization found in a textbook is not always obvious. For example, the Weibull distribution has cumulative distribution function F(t) = 1 - e^{-(\lambda t)^p}. The actual fit uses the fact that \log(t) has an extreme value distribution, with location and scale of \alpha, \sigma, which are the location and scale parameters reported by the survreg function. The parameters are related by \sigma= 1/p and \alpha = -\log(\lambda. The stats::dweibull routine is parameterized in terms of shape and scale parameters which correspond to p and 1/\lambda in the K and P notation. Combining these we see that shape = 1/\sigma and scale = \exp{alpha}.


density (dsurvreg), probability (psurvreg), quantile (qsurvreg), or for the requested distribution with mean and scale parameters mean and sd.


Kalbfleisch, J. D. and Prentice, R. L. (1970). The Statistical Analysis of Failure Time Data Wiley, New York.


Kalbfleisch, J. D. and Prentice, R. L., The statistical analysis of failure time data, Wiley, 2002.

See Also

survreg, Normal


# List of distributions available
## Not run: 
 [1] "extreme"     "logistic"    "gaussian"    "weibull"     "exponential"
 [6] "rayleigh"    "loggaussian" "lognormal"   "loglogistic" "t"          

## End(Not run)
# Compare results
all.equal(dsurvreg(1:10, 2, 5, dist='lognormal'), dlnorm(1:10, 2, 5))

# Hazard function for a Weibull distribution
x   <- seq(.1, 3, length=30)
haz <- dsurvreg(x, 2, 3)/ (1-psurvreg(x, 2, 3))
## Not run: 
plot(x, haz, log='xy', ylab="Hazard") #line with slope (1/scale -1)

## End(Not run)

# Estimated CDF of a simple Weibull
fit <- survreg(Surv(time, status) ~ 1, data=lung)
pp <- 1:99/100  
q1 <- qsurvreg(pp, coef(fit), fit$scale)
q2 <- qweibull(pp, shape= 1/fit$scale, scale= exp(coef(fit)))
all.equal(q1, q2)
## Not run: 
plot(q1, pp, type='l', xlab="Months", ylab="CDF")

## End(Not run)
# per the help page for dweibull, the mean is scale * gamma(1 + 1/shape)
c(mean = exp(coef(fit))* gamma(1 + fit$scale))

[Package survival version 3.6-4 Index]