Function gofcens computes the Kolmogorov-Smirnov, Cramér-von Mises, and Anderson-Darling statistics ans p-values for complete and right-censored data against eight possible distributions using bootstrapping.

# Default S3 method
gofcens(times, cens = rep(1, length(times)),
        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'
gofcens(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.

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

All p-values are calculated via bootstrapping methods. For the three hypothesis tests, the same data generated with the bootstrapping method are used.

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

When dealing with complete data, we recommend the use of functions ks.test of the stats package and cvm.test and ad.test of the goftest package.

Value

gofcens returns an object of class "gofcens".

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

Distribution

Null distribution.

Hypothesis

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

Test

Vector containing the values of the Kolmogovor-Smirnov (KS), Cramér-von Mises (CvM), and Anderson-Darling (AD) test statistics 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.

aic

The Akaike information criterion.

bic

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

BS

The number of bootstrap samples used.

References

J. A. Koziol and S. B. Green. A Cramér-von Mises statistic for randomly censored data. In: Biometrika, 63 (3) (1976), 465-474.

A. N. Pettitt and M. A. Stephens. Modified Cramér-von Mises statistics for censored data. In: Biometrika, 63 (2) (1976), 291-298.

Author

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

Warning

If the amount of data is large, the execution time of the function can be elevated. The parameter BS can limit the number of random censored samples generated and reduce the execution time.

See also

ks.test (Package stats), cvm.test (Package goftest), and ad.test (Package goftest) for complete data, and KScens for the Kolmogorov-Smirnov test for right-censored data, which returns the p-value.

Examples

if (FALSE) { # \dontrun{
# Complete data
set.seed(123)
gofcens(times = rweibull(100, 12, scale = 4), distr = "weibull", BS = 499)
print(gofcens(times = rweibull(100, 12, scale = 4), distr = "exponential"),
      outp = "table", print.infoBoot = TRUE)

# Censored data
data(colon)
set.seed(123)
colonsamp <- colon[sample(nrow(colon), 300), ]
gofcens(Surv(time, status) ~ 1, colonsamp, distr = "normal")
} # }