sshzd2d {gss} | R Documentation |
Estimating 2-D Hazard Function Using Smoothing Splines
Description
Estimate 2-D hazard function using smoothing spline ANOVA models.
Usage
sshzd2d(formula1, formula2, symmetry=FALSE, data, alpha=1.4,
weights=NULL, subset=NULL, id.basis=NULL, nbasis=NULL, seed=NULL,
prec=1e-7, maxiter=30, skip.iter=FALSE)
sshzd2d1(formula1, formula2, symmetry=FALSE, data, alpha=1.4,
weights=NULL, subset=NULL, rho="marginal",
id.basis=NULL, nbasis=NULL, seed=NULL, prec=1e-7, maxiter=30,
skip.iter=FALSE)
Arguments
formula1 |
Description of the hazard model to be fit on the first axis. |
formula2 |
Description of the hazard model to be fit on the second axis. |
symmetry |
Flag indicating whether to enforce symmetry of the two axes. |
data |
Data frame containing the variables in the model. |
alpha |
Parameter defining cross-validation scores for smoothing parameter selection. |
weights |
Optional vector of counts for duplicated data. |
subset |
Optional vector specifying a subset of observations to be used in the fitting process. |
id.basis |
Index of observations to be used as "knots." |
nbasis |
Number of "knots" to be used. Ignored when
|
seed |
Seed to be used for the random generation of "knots."
Ignored when |
prec |
Precision requirement for internal iterations. |
maxiter |
Maximum number of iterations allowed for internal iterations. |
skip.iter |
Flag indicating whether to use initial values of theta and skip theta iteration in marginal hazard estimation. |
rho |
Choice of rho function for sshzd2d1: |
Details
The 2-D survival function is expressed as
S(t1,t2)=C(S1(t1),S2(t2))
, where S1(t1)
, S2(t2)
are marginal survival functions and C(u1,u2)
is a 2-D copula.
The marginal survival functions are estimated via the marginal
hazards as in sshzd
, and the copula is estimated
nonparametrically by calling sscopu2
.
When symmetry=TRUE
, a common marginal survial function
S1(t)=S2(t) is estimated, and a symmetric copula is estimated such
that C(u1,u2)=C(u2,u1)
.
Covariates can be incorporated in the marginal hazard models as in
sshzd
, including parametric terms via partial
and frailty terms via random
. Arguments formula1
and
formula2
are typically model formulas of the same form as the
argument formula
in sshzd
, but when
partial
or random
are needed, formula1
and
formula2
should be lists with model formulas as the first
elements and partial
/random
as named elements; when
necessary, variable configurations (that are done via argument
type
in sshzd
) should also be entered as named
elements of lists formula1
/formula2
.
When symmetry=TRUE
, parallel model formulas must be
consistent of each other, such as
formula1=list(Surv(t1,d1)~t1*u1,partial=~z1,random=~1|id1) |
formula2=list(Surv(t2,d2)~t2*u2,partial=~z2,random=~1|id2)
|
where pairs t1
-t2
, d2
-d2
respectively
are different elements in data
, pairs u1
-u2
,
z1
-z2
respectively may or may not be different
elements in data
, and factors id1
and id2
are typically the same but at least should have the same levels.
Value
sshzd2d
and sshzd2d1
return a list object of class
"sshzd2d"
.
hzdrate.sshzd2d
can be used to evaluate the estimated
2-D hazard function. survexp.sshzd2d
can be used to
calculate estimated survival functions.
Note
sshzd2d1
executes faster than sshzd2d
, but often at
the cost of performance degradation.
The results may vary from run to run. For consistency, specify
id.basis
or set seed
.
Author(s)
Chong Gu, chong@stat.purdue.edu
References
Gu, C. (2015), Hazard estimation with bivariate survival data and copula density estimation. Journal of Computational and Graphical Statistics, 24, 1053-1073.
Examples
## THE FOLLOWING EXAMPLE IS TIME-CONSUMING
## Not run:
data(DiaRet)
## Common proportional hazard model on the margins
fit <- sshzd2d(Surv(time1,status1)~time1+trt1*type,
Surv(time2,status2)~time2+trt2*type,
data=DiaRet,symmetry=TRUE)
## Evaluate fitted survival and hazard functions
time <- cbind(c(50,70),c(70,70))
cova <- data.frame(trt1=as.factor(c(1,1)),trt2=as.factor(c(1,0)),
type=as.factor(c("juvenile","adult")))
survexp.sshzd2d(fit,time,cov=cova)
hzdrate.sshzd2d(fit,time,cov=cova)
## Association between margins: Kendall's tau and Spearman's rho
summary(fit$copu)
## Clean up
rm(DiaRet,fit,time,cova)
dev.off()
## End(Not run)