Learn R Programming

CopulaCenR (version 1.2.3)

ic_scmprisk_spTran_copula: Copula regression models with semi-parametric transformation margins for semi-competing risk data under interval-censoring and left-truncation

Description

Fits a copula model with semi-parametric transformation margins for semi-competing risk data under interval-censoring and left-truncation.

Usage

ic_scmprisk_spTran_copula(
  data,
  var_list,
  copula = "Copula2",
  l1 = 0,
  u1,
  m1 = 3,
  r1 = 1,
  l2 = 0,
  u2,
  m2 = 3,
  r2 = 1,
  method = "BFGS",
  iter = 1000,
  stepsize = 1e-05,
  control = list(),
  eta_ini = NULL
)

Value

a CopulaCenR object summarizing the model. Can be used as an input to general S3 methods including summary, print, coef, logLik, AIC, BIC.

Arguments

data

a data frame; must have id (subject id), Left (0 if left-censoring for non-terminal event), Right (Inf if right-censoring for non-terminal event), status (0 for right-censoring, 1 for interval-censoring or left-censoring of non-terminal event), timeD (observed terminal event), statusD (for terminal event), A (left truncation time, 0 if none), and covariates by column.

var_list

the list of covariates to be fitted into the copula model.

copula

Types of copula model, only Copula2 is supported at this stage.

l1

for non-terminal event, the left bound for all Left and Right endpoints of observed finite intervals; default is 0.

u1

for non-terminal event, the right bound for all Left and Right endpoints of observed finite intervals; has to be a finite value

m1

for non-terminal event, integer, degree of Berstein polynomials for both margins; default is 3

r1

for non-terminal event, postive transformation parameter for the semiparametric transformation marginal model.

l2

for terminal event, the left bound for all Left and Right endpoints of observed finite intervals; default is 0.

u2

for terminal event, the right bound for all Left and Right endpoints of observed finite intervals; has to be a finite value

m2

for terminal event, integer, degree of Berstein polynomials for both margins; default is 3

r2

for terminal event, postive transformation parameter for the semiparametric transformation marginal model.

method

optimization method (see ?optim); default is "BFGS"; also can be "Newton" (see ?nlm).

iter

number of iterations when method is "Newton"; default is 300.

stepsize

size of optimization step when method is "Newton"; default is 1e-5.

control

a list of control parameters for methods other than "Newton"; see ?optim.

eta_ini

a vector of initial values for copula parameters, default is NULL

Details

The input data must be a data frame. with columns id (sample id), Left (0 if left-censoring), Right (Inf if right-censoring), status (0 for right-censoring, 1 for interval-censoring or left-censoring), timeD (for terminal event), statusD,A (0 if no left truncation), and covariates. The function does not allow Left == Right.

The supported copula model in this version is "Copula2". The "Copula2" model is a two-parameter copula model that incorporates Clayton and Gumbel as special cases. The parametric generator functions of copula functions are list below:

The Two-parameter copula (Copula2) has a generator $$\phi_{\eta}(t) = \{1/(1+t^{\alpha})\}^{\kappa},$$ with \(\alpha \in (0,1], \kappa > 0\) and Kendall's \(\tau = 1-2\alpha\kappa/(2\kappa+1)\).

The marginal semiparametric transformation models are built based on Bernstein polynomials, which is formulated below:

$$S(t|Z) = \exp[-G\{\Lambda(t) e^{Z^{\top}\beta}\}],$$ where \(t\) is time, \(Z\) is covariate, \(\beta\) is coefficient and \(\Lambda(t)\) is an unspecified function with infinite dimensions. We approximate \(\Lambda(t)\) in a sieve space constructed by Bernstein polynomials with degree \(m\). By default, \(m=3\). In the end, all model parameters are estimated by the sieve estimators (Sun and Ding, In Press).

The \(G(\cdot)\) function is the transformation function with a parameter \(r > 0\), which has a form of \(G(x) = \frac{(1+x)^r - 1}{r}\), when \(0 < r \leq 2\) and \(G(x) = \frac{\log\{1 + (r-2)x\}}{r - 2}\) when \(r > 2\). When \(r = 1\), the marginal model becomes a proportional hazards model; when \(r = 3\), the marginal model becomes a proportional odds model. In practice, m and r can be selected based on the AIC value.

Optimization methods can be all methods (except "Brent") from optim, such as "Nelder-Mead", "BFGS", "CG", "L-BFGS-B", "SANN". Users can also use "Newton" (from nlm).

Examples

Run this code
# fit a Copula2-Semiparametric model
data("data_scmprisk")
copula2_sp <- ic_scmprisk_spTran_copula(data = data_scmprisk,
              var_list = c("x1"), copula = "Copula2",
              l1=0, u1 = 21, m1 = 3, r1 = 1,
              l2=0, u2 = 21, m2 = 3, r2 = 1,
              )
summary(copula2_sp)

Run the code above in your browser using DataLab