rc_scmprisk_sp_copula_pen: Penalized copula regression models with Cox semiparametric...

View source: R/rc_scmprisk_sp_copula_pen.R

rc_scmprisk_sp_copula_penR Documentation

Penalized copula regression models with Cox semiparametric margins for semi-competing risk data under right-censoring.

Description

Fits a penalized copula model with Cox semiparametric margins for semi-competing risk data under right-censoring.

Usage

rc_scmprisk_sp_copula_pen(
  data,
  var_list1,
  var_list2,
  m1,
  m2,
  initial,
  a,
  b,
  pen1,
  pen2,
  copula
)

Arguments

data

a data frame; must have id (subject id), ind (1,2 for two margins), obs_time, status (0 for right-censoring, 1 for event).

var_list1

the list of covariates to be fitted into the copula model for non-terminal event.

var_list2

the list of covariates to be fitted into the copula model for terminal event.

m1

integer, degree of Bernstein polynomials for non-terminal event; default is 3.

m2

integer, degree of Bernstein polynomials for terminal event; default is 3.

initial

a vector of initial values for all parameters, including phi1 and phi2 (two Bernstein polynomials parameters), beta1 and beta2 (regression coefficients in Cox margins), eta (copula parameters).

a

Tuning parameters in penalty function for non-terminal event.

b

Tuning parameters in penalty function for terminal event.

pen1

Types of penalty function for non-terminal event, including "NOPEN", "RIDGE", "BAR", "LASSO", "MCP", "SCAD".

pen2

Types of penalty function for terminal event, including "NOPEN", "RIDGE", "BAR", "LASSO", "MCP", "SCAD".

copula

Types of copula, including "Clayton", "Gumbel".

Value

parameter estimates and BIC

Source

Tao Sun, Weijie Liang, Gongzi Zhang, Danhui Yi, Ying Ding, Lihai Zhang (2023+). Penalized semiparametric copula method for semi-competing risks data: Application to hip fracture in elderly. JRSSC.

Examples

## Not run: 
data("data_sim_scmprisk_vs")
var_list = paste0('x',seq(1,5,1))
phi1_ini = c(0,0,0,0)
phi2_ini = c(0,0,0,0)
beta1_ini = c(0,0,0,0,0)
beta2_ini = c(0,0,0,0,0)
eta_ini = 1
initial = c(phi1_ini,phi2_ini,beta1_ini, beta2_ini, eta_ini)
# obtain initial parameter estimates by ridge penalty
fit0 = rc_scmprisk_sp_copula_pen(data=data_sim_scmprisk_vs,
                                 var_list1 = var_list, var_list2 = var_list,
                                 m1=3, m2=3, initial=initial,
                                 a=0.1, b=0.1, pen1='RIDGE', pen2='RIDGE',
                                 copula='Clayton')
est_ini = c(fit0$Est_phi1,fit0$Est_phi2,fit0$Est_beta1,fit0$Est_beta2,fit0$Est_eta)

fit = rc_scmprisk_sp_copula_pen(data=data_sim_scmprisk_vs,
                                var_list1 = var_list, var_list2 = var_list,
                                m1=3, m2=3, initial=est_ini,
                                a=0.2, b=0.2, pen1='MCP', pen2='MCP',
                                copula='Clayton')
fit$Est_beta1
fit$Est_beta2

## End(Not run)

CopulaCenR documentation built on Sept. 24, 2023, 1:08 a.m.