R: Estimating 2-D Hazard Function Using Smoothing Splines

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 `id.basis` is specified.
`seed` | Seed to be used for the random generation of "knots." Ignored when `id.basis` is specified.
`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: `"marginal"` or `"weibull"`.

### 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)

[Package gss version 2.2-2 Index]