psm
.
If getting predictions for more than one observation,
times
must
be specified. For a model without predictors, no input data are
specified.
## S3 method for class 'psm': survest(fit, newdata, linear.predictors, x, times, fun, loglog=FALSE, conf.int=0.95, what=c("survival","hazard","parallel"), ...) ## S3 method for class 'survest.psm': print(x, ...)
psm
survest.cph
. One of
newdata
,
linear.predictors
,
x
must be given.
linear.predictors
includes the intercept.
If
times
is omitted, predictions are made at 200 equally spaced points
between 0 and the maximum failure/censoring time used to fit the model.
x
can also be a result from
survest.psm
.
what="hazard"
or
some abbreviation of
"hazard"
to compute hazard rates.
what="parallel"
assumes that the length of
times
is the number of
subjects (or one), and causes
survest
to estimate the
i^{th} subject's survival probability at the i^{th} value of
times
(or at the scalar value of
times
).
what="parallel"
is used by
val.surv
for example.
TRUE
to transform survival estimates and confidence limits using
log-log
Confidence intervals are based on asymptotic normality of the linear predictors. The intervals account for the fact that a scale parameter may have been estimated jointly with beta.
survest.cph
. If the model has no predictors, predictions are
made with respect to varying time only, and the returned object
is of class
"survfit"
so the survival curve can be plotted
with survplot.survfit. If
times
is omitted, the
entire survival curve or hazard from
t=0,...,fit$maxtime
is estimated, with
increments computed to yield 200 points where
fit$maxtime
is the
maximum survival time in the data used in model fitting. Otherwise,
the
times
vector controls the time points used.
Frank Harrell
Department of Biostatistics
Vanderbilt University
f.harrell@vanderbilt.edu
# Simulate data from a proportional hazards population model n <- 1000 set.seed(731) age <- 50 + 12*rnorm(n) label(age) <- "Age" cens <- 15*runif(n) h <- .02*exp(.04*(age-50)) dt <- -log(runif(n))/h label(dt) <- 'Follow-up Time' e <- ifelse(dt <= cens,1,0) dt <- pmin(dt, cens) units(dt) <- "Year" S <- Surv(dt,e) f <- psm(S ~ lsp(age,c(40,70))) survest(f, data.frame(age=seq(20,80,by=5)), times=2) #Get predicted survival curve for 40 year old survest(f, data.frame(age=40)) #Get hazard function for 40 year old survest(f, data.frame(age=40), what="hazard")$surv #still called surv