mable.ic: Mable fit based on one-sample interval censored data

View source: R/mable-ph-model.r

mable.icR Documentation

Mable fit based on one-sample interval censored data

Description

Maximum approximate Bernstein/Beta likelihood estimation of density and cumulative/survival distributions functions based on interal censored event time data.

Usage

mable.ic(
  data,
  M,
  pi0 = NULL,
  tau = Inf,
  IC = c("none", "aic", "hqic", "all"),
  controls = mable.ctrl(),
  progress = TRUE
)

Arguments

data

a dataset either data.frame or an n x 2 matrix.

M

an positive integer or a vector (m0, m1). If M = m or m0 = m1 = m, then m is a preselected degree. If m0 < m1 it specifies the set of consective candidate model degrees m0:m1 for searching an optimal degree, where m1-m0>3.

pi0

Initial guess of \pi = F(\tau_n). Without right censored data, pi0 = 1. See 'Details'.

tau

right endpoint of support [0, \tau) must be greater than or equal to the maximum observed time

IC

information criterion(s) in addition to Bayesian information criterion (BIC). Current choices are "aic" (Akaike information criterion) and/or "qhic" (Hannan–Quinn information criterion).

controls

Object of class mable.ctrl() specifying iteration limit and other control options. Default is mable.ctrl.

progress

if TRUE a text progressbar is displayed

Details

Let f(t) and F(t) = 1 - S(t) be the density and cumulative distribution functions of the event time, respectively. Then f(t) on [0, \tau_n] can be approximated by f_m(t; p) = \tau_n^{-1}\sum_{i=0}^m p_i\beta_{mi}(t/\tau_n), where p_i \ge 0, i = 0, \ldots, m, \sum_{i=0}^mp_i = 1-p_{m+1}, \beta_{mi}(u) is the beta denity with shapes i+1 and m-i+1, and \tau_n is the largest observed time, either uncensored time, or right endpoint of interval/left censored, or left endpoint of right censored time. We can approximate S(t) on [0, \tau] by S_m(t; p) = \sum_{i=0}^{m+1} p_i \bar B_{mi}(t/\tau), where \bar B_{mi}(u), i = 0, \ldots, m, is the beta survival function with shapes i+1 and m-i+1, \bar B_{m,m+1}(t) = 1, p_{m+1} = 1 - \pi, and \pi = F(\tau_n). For data without right-censored time, p_{m+1} = 1-\pi=0. The search for optimal degree m is stoped if either m1 is reached or the test for change-point results in a p-value pval smaller than sig.level.

Each row of data, (l, u), is the interval containing the event time. Data is uncensored if l = u, right censored if u = Inf or u = NA, and left censored data if l = 0.

Value

a class 'mable' object with components

  • p the estimated p with degree m selected by the change-point method

  • mloglik the maximum log-likelihood at an optimal degree m

  • interval support/truncation interval (0, b)

  • M the vector (m0,m1), where m1 is the last candidate when the search stoped

  • m the selected optimal degree by the method of change-point

  • lk log-likelihoods evaluated at m \in \{m_0, \ldots, m_1\}

  • lr likelihood ratios for change-points evaluated at m \in \{m_0+1, \ldots, m_1\}

  • tau.n maximum observed time \tau_n

  • tau right endpoint of support [0, \tau)

  • ic a list containing the selected information criterion(s)

  • pval the p-values of the change-point tests for choosing optimal model degree

  • chpts the change-points chosen with the given candidate model degrees

  • convergence an integer code. 0 indicates successful completion(the iteration is convergent). 1 indicates that the maximum candidate degree had been reached in the calculation;

  • delta the final pval of the change-point for selecting the optimal degree m;

Author(s)

Zhong Guan <zguan@iusb.edu>

References

Guan, Z. (2019) Maximum Approximate Bernstein Likelihood Estimation in Proportional Hazard Model for Interval-Censored Data, arXiv:1906.08882 .

See Also

mable.group

Examples


 library(mable) 
 bcos=cosmesis
 bc.res0<-mable.ic(bcos[bcos$treat=="RT",1:2], M=c(1,50), IC="none")
 bc.res1<-mable.ic(bcos[bcos$treat=="RCT",1:2], M=c(1,50), IC="none")
 op<-par(mfrow=c(2,2),lwd=2)
 plot(bc.res0, which="change-point", lgd.x="right")
 plot(bc.res1, which="change-point", lgd.x="right")
 plot(bc.res0, which="survival", add=FALSE, xlab="Months", ylim=c(0,1), main="Radiation Only")
 legend("topright", bty="n", lty=1:2, col=1:2, c(expression(hat(S)[CP]),
               expression(hat(S)[BIC])))
 plot(bc.res1, which="survival", add=FALSE, xlab="Months", main="Radiation and Chemotherapy")
 legend("topright", bty="n", lty=1:2, col=1:2, c(expression(hat(S)[CP]),
               expression(hat(S)[BIC])))
 par(op)


mable documentation built on Aug. 24, 2023, 5:10 p.m.