hazards.fun {BFI} | R Documentation |
Compute the estimated (baseline/cumulative) hazard and (baseline) survival functions
Description
For a given vector of times, hazards.fun
computes the estimated baseline hazard, cumulative baseline hazard, hazard, baseline survival, and survival functions. It can be used for prediction on a new sample.
Usage
hazards.fun(time,
z = NULL,
p,
theta_hat,
basehaz = c("weibul", "exp", "gomp", "poly", "pwexp"),
q_max,
timax)
Arguments
time |
the vector containing the time values for which the hazard rate is computed. If the argument |
z |
a new observation vector of length |
p |
the number of coefficients. It is taken equal to the number of elements of the argument |
theta_hat |
a vector contains the values of the estimated parameters. The first |
basehaz |
a character string representing one of the available baseline hazard functions; |
q_max |
a value represents the order of the exponentiated polynomial baseline hazard function. This argument should only be used when |
timax |
a value represents the minimum (or maximum) value of the maximum times observed in the different centers. This argument should only be used when |
Details
hazards.fun
computes the estimated baseline hazard, cumulative baseline hazard, hazard, baseline survival, and survival functions at different time points specified in the argument time
.
The function hazards.fun()
can be used for prediction purposes with new sample. The arguments time
and z
should be provided for the new data.
Value
hazards.fun
returns a list containing the following components:
bhazard |
the vector of estimates of the baseline hazard function at the time points given by the argument |
cbhazard |
the vector of estimates of the cumulative baseline hazard function at the time points specified in the argument |
bsurvival |
the vector of estimates of the baseline survival function at the time points given by the argument |
hazard |
the vector of estimates of the hazard function at the time points given by the argument |
chazard |
the vector of estimates of the cumulative hazard function at the time points specified in the argument |
survival |
the vector of estimates of the survival function at the time points given by the argument |
Author(s)
Hassan Pazira
Maintainer: Hassan Pazira hassan.pazira@radboudumc.nl
References
Pazira H., Massa E., Weijers J.A.M., Coolen A.C.C. and Jonker M.A. (2024). Bayesian Federated Inference for Survival Models, arXiv. <https://arxiv.org/abs/2404.17464>
See Also
Examples
# Setting a seed for reproducibility
set.seed(1123)
##-------------------------
## Simulating Survival data
##-------------------------
n <- 40
p <- 7
Original_data <- data.frame(matrix(rnorm((n+1) * p), (n+1), p))
X <- Original_data[1:n,]
X_new <- Original_data[(n+1),]
# Simulating survival data from Exponential distribution
# with a predefined censoring rate of 0.2:
Orig_y <- surv.simulate(Z = Original_data, beta = rep(1,p), a = exp(1),
cen_rate = 0.2, gen_data_from = "exp")$D[[1]][,1:2]
y <- Orig_y[1:n,]
y_new <- Orig_y[(n+1),]
time_points <- seq(0, max(y$time), length.out=20)
#------------------------
# Weibull baseline hazard
#------------------------
Lambda <- inv.prior.cov(X, lambda = c(0.5, 1), family = 'survival', basehaz = 'weibul')
fit_weib <- MAP.estimation(y, X, family = 'survival', Lambda = Lambda,
basehaz = "weibul")
# reltive risk is 1:
hazards.fun(time = time_points, p = p, theta_hat = fit_weib$theta_hat,
basehaz = "weibul")
#-------------------------
# Gompertz baseline hazard
#-------------------------
fit_gomp <- MAP.estimation(y, X, family = 'survival', Lambda = Lambda,
basehaz = "gomp")
# different time points
hazards.fun(time=1:max(y*2), p = p, theta_hat = fit_gomp$theta_hat,
basehaz = "gomp")
##----------------------------
## Prediction for a new sample
##----------------------------
## Exponentiated polynomial (poly) baseline hazard:
Lambda <- inv.prior.cov(X, lambda = c(0.5, 1), family = 'survival', basehaz = "poly")
fit_poly <- MAP.estimation(y, X, family = 'survival', Lambda = Lambda,
basehaz = "poly")
hazards.fun(time = y_new$time, z = X_new, theta_hat = fit_poly$theta_hat,
basehaz = "poly", q_max = fit_poly$q_l)
## Piecewise Exponential (pwexp) baseline hazard:
Lambda <- inv.prior.cov(X, lambda = c(0.5, 1), family = 'survival', basehaz = "pwexp")
fit_pw <- MAP.estimation(y, X, family='survival', Lambda=Lambda, basehaz="pwexp",
min_max_times = max(y))
hazards.fun(time = y_new$time, z = X_new, theta_hat = fit_pw$theta_hat,
basehaz = "pwexp", timax = max(y))