Function chisqcens computes the general chi-squared test statistic for right-censored data introduced by Kim (1993) and the respective p-value using bootstrapping.

# Default S3 method
chisqcens(times, cens = rep(1, length(times)), M,
          distr = c("exponential", "gumbel", "weibull", "normal",
                    "lognormal", "logistic", "loglogistic", "beta"),
          betaLimits=c(0, 1), igumb = c(10, 10), BS = 999,
          params0 = list(shape = NULL, shape2 = NULL,
                         location = NULL, scale = NULL), tol = 1e-04, ...)
# S3 method for class 'formula'
chisqcens(formula, data,...)

Arguments

times

Numeric vector of times until the event of interest.

cens

Status indicator (1, exact time; 0, right-censored time). If not provided, all times are assumed to be exact.

M

Number indicating the number of cells that will be considered.

distr

A string specifying the name of the distribution to be studied. The possible distributions are the exponential ("exponential"), the Weibull ("weibull"), the Gumbel ("gumbel"), the normal ("normal"), the lognormal ("lognormal"), the logistic ("logistic"), the loglogistic ("loglogistic"), and the beta ("beta") distribution.

betaLimits

Two-components vector with the lower and upper bounds of the Beta distribution. This argument is only required, if the beta distribution is considered.

igumb

Two-components vector with the initial values for the estimation of the Gumbel distribution parameters.

BS

Number of bootstrap samples.

params0

List specifying the parameters of the theoretical distribution. By default, parameters are set to NULL and estimated with the maximum likelihood method. This argument is only considered, if all parameters of the studied distribution are specified.

tol

Precision of survival times.

formula

A formula with a numeric vector as response (which assumes no censoring) or Surv object.

data

Data frame for variables in formula.

...

Additional arguments.

Details

The function implements the test introduced by Kim (1993) and returns the value of the test statistic.

The cell boundaries of the test are obtained via the quantiles, which are based on the Kaplan-Meier estimate of the distribution function. In the presence of right-censored data, it is possible that not all quantiles are estimated, and in this case, the value of M provided by the user is reduced.

The parameter estimation is acomplished with the fitdistcens function of the fitdistrplus package.

The precision of the survival times is important mainly in the data generation step of the bootstrap samples.

Value

chisqcens returns an object of class "chisqcens".

An object of class "chisqcens" is a list containing the following components:

Distribution

Null distribution.

Hypothesis

Parameters under the null hypothesis (if params0 is provided).

Test

Vector containing the value of the test statistic (Statistic) and the estimated p-value (p-value).

Estimates

Vector with the maximum likelihood estimates of the parameters of the distribution under study.

StdErrors

Vector containing the estimated standard errors.

CellNumber

Vector with two values: the original cell number introduced by the user and the final cell number used.

aic

The Akaike information criterion.

bic

The so-called BIC or SBC (Schwarz Bayesian criterion).

BS

The number of bootstrap samples used.

References

J. H. Kim. Chi-Square Goodness-of-Fit Tests for Randomly Censored Data. In: The Annals of Statistics, 21 (3) (1993), 1621-1639.

Author

K. Langohr, M. Besalú, M. Francisco, A. Garcia, G. Gómez.

Examples

# Complete data
set.seed(123)
chisqcens(times = rgumbel(100, 12, scale = 4), M = 8, distr = "gumbel",
          BS = 99)
#> Distribution: gumbel 
#> 
#> Chi-squared Test results:
#> Statistic   p-value 
#>     7.031     0.250 
#> 
#> Parameter estimates (se):
#> location          scale             
#> 11.734 (0.398)     3.788 (0.292)     
#> 
#> Cell numbers:
#> Original    Final 
#>        8        8 
#> 
#> AIC: 585.771 
#> BIC: 590.982 
#> 
print(chisqcens(times = rlogis(100, 20, scale = 3), M = 8, distr = "loglogistic",
          BS = 105), print.AIC = FALSE, print.infoBoot = TRUE)
#> Distribution: loglogistic 
#> 
#> Chi-squared Test results:
#> Statistic   p-value 
#>    10.055     0.104 
#> 
#> Parameter estimates (se):
#> shape             scale             
#> 5.02 (0.427)     19.362 (0.654)     
#> 
#> Cell numbers:
#> Original    Final 
#>        8        8 
#> 
#> BIC: 675.925 
#> 
#> Number of bootstrap samples: 105 
#> 

if (FALSE) { # \dontrun{
# Censored data
set.seed(123)
colonsamp <- colon[sample(nrow(colon), 300), ]
chisqcens(Surv(time, status) ~ 1, colonsamp, M = 6, distr = "normal")
} # }