View source: R/ic_scmprisk_spTran_copula.R
| ic_scmprisk_spTran_copula | R Documentation |
Fits a copula model with semi-parametric transformation margins for semi-competing risk data under interval-censoring and left-truncation.
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
)
data |
a data frame; must have |
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 |
u1 |
for non-terminal event, the right bound for all |
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 |
u2 |
for terminal event, the right bound for all |
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 |
stepsize |
size of optimization step when method is |
control |
a list of control parameters for methods other than |
eta_ini |
a vector of initial values for copula parameters, default is NULL |
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).
a CopulaCenR object summarizing the model.
Can be used as an input to general S3 methods including
summary, print, coef,
logLik, AIC, BIC.
Tao Sun, Yunlong Li, Zhengyan Xiao, Ying Ding, Xiaojun Wang (2022). Semiparametric copula method for semi-competing risks data subject to interval censoring and left truncation: Application to disability in elderly. Statistical Methods in Medical Research (Accepted).
# 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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.