Fits a copula model with semiparametric margins for bivariate interval-censored data.
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()
)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.
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.
the list of covariates to be fitted into the copula model.
the left bound for all Left and Right endpoints of observed finite intervals;
default is 0.
the right bound for all Left and Right endpoints of observed finite intervals;
has to be a finite value
Types of copula model.
integer, degree of Berstein polynomials for both margins; default is 3
postive transformation parameter for the semiparametric transformation marginal model.
optimization method (see ?optim); default is "BFGS";
also can be "Newton" (see ?nlm).
number of iterations when method = "Newton";
default is 300.
size of optimization step when method is "Newton";
default is 1e-6.
default is TRUE for hessian calculation;
if LRT is desired, can set hes = FALSE to save time.
a list of control parameters for methods other than "Newton";
see ?optim.
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).
# 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