dsurvreg | R Documentation |
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)
x |
vector of quantiles.
Missing values ( |
q |
vector of quantiles.
Missing values ( |
p |
vector of probabilities.
Missing values ( |
n |
number of random deviates to produce |
mean |
vector of location (linear predictor) parameters for the model.
This is replicated to be the same length as |
scale |
vector of (positive) scale factors.
This is replicated to be the same length as |
distribution |
character string giving the name of the distribution. This must be one
of the elements of |
parms |
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.
survreg
,
Normal
# List of distributions available
names(survreg.distributions)
## 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))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.