| ic_spTran_copula {CopulaCenR} | R Documentation |
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()
)
Arguments
data |
a data frame; must have |
var_list |
the list of covariates to be fitted into the copula model. |
l |
the left bound for all |
u |
the right bound for all |
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 |
iter |
number of iterations when |
stepsize |
size of optimization step when method is |
hes |
default is |
control |
a list of control parameters for methods other than |
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).
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.
Source
Tao Sun, Yi Liu, Richard J. Cook, Wei Chen and Ying Ding (2019).
Copula-based Score Test for Bivariate Time-to-event Data,
with Application to a Genetic Study of AMD Progression.
Lifetime Data Analysis 25(3), 546-568.
Tao Sun and Ying Ding (In Press).
Copula-based Semiparametric Regression Model for Bivariate Data
under General Interval Censoring.
Biostatistics. DOI: 10.1093/biostatistics/kxz032.
Examples
# 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)