Learn R Programming

CopulaCenR (version 1.2.3)

ic_spTran_copula: Copula regression models with semiparametric margins for bivariate interval-censored data

Description

Fits a copula model with semiparametric margins for bivariate interval-censored data.

Usage

ic_spTran_copula(
  data,
  var_list,
  l = 0,
  u,
  copula = "Copula2",
  m = 3,
  r = 3,
  method = "BFGS",
  iter = 300,
  stepsize = 1e-06,
  hes = TRUE,
  control = list()
)

Value

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

Arguments

data

a data frame; must have id (subject id), ind (1,2 for two units in each subject), Left (0 if left-censoring), Right (Inf if right-censoring), status (0 for right-censoring, 1 for interval-censoring or left-censoring), and covariates by column.

var_list

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

l

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

u

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

copula

Types of copula model.

m

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

r

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 = "Newton"; default is 300.

stepsize

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

hes

default is TRUE for hessian calculation; if LRT is desired, can set hes = FALSE to save time.

control

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

Details

The input data must be a data frame. with columns id (sample id), ind (1,2 for the two units from the same id), Left (0 if left-censoring), Right (Inf if right-censoring), status (0 for right-censoring, 1 for interval-censoring or left-censoring), and covariates. The function does not allow Left == Right.

The supported copula models are "Clayton", "Gumbel", "Frank", "AMH", "Joe" and "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 Clayton copula has a generator $$\phi_{\eta}(t) = (1+t)^{-1/\eta},$$ with \(\eta > 0\) and Kendall's \(\tau = \eta/(2+\eta)\).

The Gumbel copula has a generator $$\phi_{\eta}(t) = \exp(-t^{1/\eta}),$$ with \(\eta \geq 1\) and Kendall's \(\tau = 1 - 1/\eta\).

The Frank copula has a generator $$\phi_{\eta}(t) = -\eta^{-1}\log \{1+e^{-t}(e^{-\eta}-1)\},$$ with \(\eta \geq 0\) and Kendall's \(\tau = 1+4\{D_1(\eta)-1\}/\eta\), in which \(D_1(\eta) = \frac{1}{\eta} \int_{0}^{\eta} \frac{t}{e^t-1}dt\).

The AMH copula has a generator $$\phi_{\eta}(t) = (1-\eta)/(e^{t}-\eta),$$ with \(\eta \in [0,1)\) and Kendall's \(\tau = 1-2\{(1-\eta)^2 \log (1-\eta) + \eta\}/(3\eta^2)\).

The Joe copula has a generator $$\phi_{\eta}(t) = 1-(1-e^{-t})^{1/\eta},$$ with \(\eta \geq 1\) and Kendall's \(\tau = 1 - 4 \sum_{k=1}^{\infty} \frac{1}{k(\eta k+2)\{\eta(k-1)+2\}}\).

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(AREDS)
copula2_sp <- ic_spTran_copula(data = AREDS, copula = "Copula2",
              l = 0, u = 15, m = 3, r = 3,
              var_list = c("ENROLLAGE","rs2284665","SevScaleBL"))
summary(copula2_sp)

Run the code above in your browser using DataLab