Learn R Programming

survival (version 2.37-4)

dsurvreg: Distributions available in survreg.

Description

Density, cumulative probability, and quantiles for the set of distributions supported by the survreg function.

Usage

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

Arguments

x
vector of quantiles. Missing values (NAs) are allowed.
q
vector of quantiles. Missing values (NAs) are allowed.
p
vector of probabilities. Missing values (NAs) are allowed.
mean
vector of means. This is replicated to be the same length as p or q.
scale
vector of (positive) scale factors. This is replicated to be the same length as p or q.
distribution
character string giving the name of the distribution. This must be one of the elements of survreg.distributions
parms
optional parameters, if any, of the distribution. For the t-distribution this is the degrees of freedom.

Value

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

References

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

Details

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

The mean and scale values are as they would be for survreg. In particular, if the distribution is one that involves a transformation, then they are the mean and scale of the transformed distribution. For example, the Weibull distribution is fit using the Extreme value distribution along with a log transformation. Letting $F(t) = 1 - \exp[-(at)^p]$ be the cumulative distribution of the Weibull, the mean corresponds to $-\log(a)$ and the scale to $1/p$ (Kalbfleish and Prentice, section 2.2.2).

See Also

survreg, Normal

Examples

Run this code
# List of distributions available
names(survreg.distributions)
[1] "extreme"     "logistic"    "gaussian"    "weibull"     "exponential"
 [6] "rayleigh"    "loggaussian" "lognormal"   "loglogistic" "t"
# 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))
plot(x, haz, log='xy', ylab="Hazard") #line with slope (1/scale -1)

Run the code above in your browser using DataLab