The SemiParamBernsteinDepCS package
provides a semiparametric Bayesian regression framework using Bernstein
polynomial baseline models for analyzing dependent current status data.
The methodology accommodates proportional hazards (PH) and proportional
odds (PO) regression models paired with Archimedean copulas (Gumbel,
Frank, and Clayton) to capture dependence between event time and
observation/censoring time.
For full mathematical details, see Sharma and Balakrishnan (2026) doi:10.1080/02664763.2026.2701921.
We generate a sample dataset under a Proportional Hazards (PH) model with a Gumbel copula:
library(SemiParamBernsteinDepCS)
set.seed(2026)
sim_data <- sim_bernstein_depcs(
n = 100,
model_type = "PH",
copula = "gumbel",
beta_Y = c(0.5, -0.3),
beta_T = c(-0.2, 0.4)
)
head(sim_data)
#> time status delta x1 x2
#> 1 0.3647 1 0 0.4165 0.9730
#> 2 0.5764 1 0 -0.8638 -0.3951
#> 3 1.1980 1 1 0.1114 -0.1822
#> 4 0.2923 1 1 -0.0678 -0.8893
#> 5 0.4110 1 0 -0.5333 0.7967
#> 6 0.0836 1 0 -2.0129 0.4495We fit the semiparametric Bayesian regression model using
fit_semiparam_bernstein_depcs():
fit_ph <- fit_semiparam_bernstein_depcs(
formula_Y = delta ~ x1 + x2,
formula_T = time ~ x1 + x2,
data = sim_data,
model_type = "PH",
copula = "gumbel",
order_m = 2,
n_iter = 400,
n_burn = 100,
seed = 42
)
print(fit_ph)
#> Semiparametric Bayesian Regression Model for Dependent Current Status Data
#> =========================================================================
#> Model Type : PH
#> Copula Family: gumbel
#> Bernstein Deg: Y=2, T=2
#> Observations : 100
#> MCMC Draws : 300 (Burn-in: 100 , Thin: 1 )
#> Accept Rate : 0.34
#> DIC : 251.743
#>
#> Posterior Means of Regression Parameters & Dependence:
#> beta_Y_x1 beta_Y_x2 beta_T_x1 beta_T_x2 S_Y S_T alpha tau
#> 0.1776 -0.0139 -0.1989 0.4990 5.1480 3.6114 3.7782 0.7332Extract posterior means, standard deviations, and 95% HPD credible intervals:
summary(fit_ph)
#> Posterior Summaries (95% HPD Credible Intervals):
#> =========================================================
#> Mean SD Median HPD_lower_95 HPD_upper_95
#> beta_Y_x1 0.1776 0.1136 0.1838 -0.0398 0.3545
#> beta_Y_x2 -0.0139 0.1580 -0.0308 -0.3005 0.2788
#> beta_T_x1 -0.1989 0.1290 -0.2039 -0.3909 0.0125
#> beta_T_x2 0.4990 0.1401 0.4745 0.1915 0.7492
#> S_Y 5.1480 0.7118 5.1329 3.7276 6.6884
#> S_T 3.6114 0.6400 3.5443 2.2856 4.6717
#> alpha 3.7782 0.3405 3.7321 3.2362 4.4555
#> tau 0.7332 0.0242 0.7321 0.6910 0.7756
#>
#> Model Selection Metrics:
#> Log-Likelihood (at posterior mean): -119.041
#> Effective number of parameters pD : 6.831
#> DIC : 251.743Compute predicted marginal survival curves and HPD bounds for new covariate values:
pred_res <- predict(fit_ph, times = seq(0.1, 2.5, length.out = 20))
head(pred_res$predictions_Y)
#> time mean median lower upper
#> 1 0.1000000 0.9596390 0.9608597 0.9409836 0.9728335
#> 2 0.2263158 0.8987311 0.8997490 0.8610672 0.9251443
#> 3 0.3526316 0.8290643 0.8298560 0.7766280 0.8647276
#> 4 0.4789474 0.7533395 0.7548100 0.6896208 0.8001646
#> 5 0.6052632 0.6743036 0.6753224 0.6091754 0.7394365
#> 6 0.7315789 0.5945808 0.5929988 0.5199709 0.6618729The package includes the benchmark pbc_depcs
dataset: