Learn R Programming

survELtest (version 2.0.1)

intELtest: The integrated EL test

Description

intELtest gives a class of integrated EL statistics: $$\sum_{i=1}^{m}w_i\cdot \{-2\log R(t_i)\},$$ where \(R(t)\) is the EL ratio that compares the survival functions at each given time \(t\), \(w_i\) is the weight at each \(t_i\), and \( 0<t_1<\ldots<t_m<\infty\) are the (ordered) observed uncensored times at which the Kaplan--Meier estimate is positive and less than \(1\) for each sample.

Usage

intELtest(
  formula,
  data = NULL,
  group_order = NULL,
  t1 = 0,
  t2 = Inf,
  sided = 2,
  nboot = 1000,
  wt = "p.event",
  alpha = 0.05,
  seed = 1011,
  nlimit = 200
)

Arguments

formula

a formula object with a Surv object as the response on the left of the ~ operator and the grouping variable as the term on the right. The Surv object involves two variables: the observed survival and censoring times, and the censoring indicator, which takes a value of \(1\) if the observed time is uncensored and \(0\) otherwise. The grouping variable takes different values for different groups.

data

an optional data frame containing the variables in the formula: the observed survival and censoring times, the censoring indicator, and the grouping variable. If not found in data, the variables in the formula should be already defined by the user or in attached R objects. The default is the data frame with three columns of variables taken from the formula: column 1 contains the observed survival and censoring times, column 2 the censoring indicator, and column 3 the grouping variable.

group_order

a \(k\)-vector containing the values of the grouping variable, with the \(j\)-th element being the group hypothesized to have the \(j\)-th highest survival rates, \(j=1,\ldots,k\). The default is the vector of sorted grouping variables.

t1

the first endpoint of a prespecified time interval, if any, to which the comparison of the survival functions is restricted. The default value is \(0\).

t2

the second endpoint of a prespecified time interval, if any, to which the comparison of the survival functions is restricted. The default value is \(\infty\).

sided

\(2\) if two-sided test, and \(1\) if one-sided test. The default value is \(2\).

nboot

the number of bootstrap replications in calculating critical values for the tests. The default value is \(1000\).

wt

the name of the weight for the integrated EL statistics: "p.event", "dF", or "dt". The default is "p.event".

alpha

the pre-specified significance level of the tests. The default value is \(0.05\).

seed

the seed for the random number generator in R, for generating bootstrap samples needed to calculate the critical values for the tests. The default value is \(1011\).

nlimit

a number used to calculate nsplit= \(m\)/nlimit, the number of parts into which the calculation of the nboot bootstrap replications is split. The use of this variable can make computation faster when the number of time points \(m\) is large. The default value for nlimit is 200.

Value

intELtest returns a intELtest object, a list with 15 elements:

  • call the function call

  • teststat the resulting integrated EL statistics

  • critval the critical value based on bootstrap

  • pvalue the p-value of the test

  • formula the value of the input argument of intELtest

  • data the value of the input argument of intELtest

  • group_order the value of the input argument of intELtest

  • t1 the value of the input argument of intELtest

  • t2 the value of the input argument of intELtest

  • sided the value of the input argument of intELtest

  • nboot the value of the input argument of intELtest

  • wt the value of the input argument of intELtest

  • alpha the value of the input argument of intELtest

  • seed the value of the input argument of intELtest

  • nlimit the value of the input argument of intELtest

Methods defined for intELtest objects are provided for print and summary.

Details

There are three options for the weight \(w_i\):

  • (wt = "p.event") This default option is an objective weight, $$w_i=\frac{d_i}{n},$$ which assigns weight proportional to the number of events \(d_i\) at each observed uncensored time \(t_i\). Here \(n\) is the total sample size.

  • (wt = "dF") Inspired by the integral-type statistics considered in Barmi and McKeague (2013), another weigth function is $$w_i= \hat{F}(t_i)-\hat{F}(t_{i-1}),$$ for \(i=1,\ldots,m\), where \(\hat{F}(t)=1-\hat{S}(t)\), \(\hat{S}(t)\) is the pooled KM estimator, and \(t_0 \equiv 0\). This reduces to the objective weight when there is no censoring. The resulting \(I_n\) can be seen as an empirical version of the expected negative two times log EL ratio under \(H_0\).

  • (wt = "dt") Inspired by the integral-type statistics considered in Pepe and Fleming (1989), another weight function is $$w_i= t_{i+1}-t_i,$$ for \(i=1,\ldots,m\), where \(t_{m+1} \equiv t_{m}\). This gives more weight to the time intervals where there are fewer observed uncensored times, but can be affected by extreme observations.

References

  • H. Chang, I.W. McKeague, "Nonparametric testing for multiple survival functions with non-inferiority margins," Annals of Statistics, Vol. 47, No. 1, pp. 205-232, (2019).

  • M. S. Pepe and T. R. Fleming, "Weighted Kaplan-Meier Statistics: A Class of Distance Tests for Censored Survival Data," Biometrics, Vol. 45, No. 2, pp. 497-507 (1989). https://www.jstor.org/stable/2531492?seq=1#page_scan_tab_contents

  • H. E. Barmi and I.W. McKeague, "Empirical likelihood-based tests for stochastic ordering," Bernoulli, Vol. 19, No. 1, pp. 295-307 (2013). https://projecteuclid.org/euclid.bj/1358531751

See Also

hepatitis, supELtest, ptwiseELtest, nocrossings, print.intELtest, summary.intELtest

Examples

Run this code
# NOT RUN {
library(survELtest)
intELtest(survival::Surv(hepatitis$time, hepatitis$censor) ~ hepatitis$group)

## OUTPUT:
## Call:
## intELtest(formula = survival::Surv(hepatitis$time, hepatitis$censor) ~ 
##     hepatitis$group)
## 
## Two-sided integrated EL test statistic = 1.42, p = 0.007
# }

Run the code above in your browser using DataLab