vus: Estimation methods for volume under ROC surface (VUS)

Description Usage Arguments Details Value References Examples

View source: R/bcvusMAR.R

Description

vus computes bias-corrected estimates of the volume under the ROC surface for evaluating the accuracy of a continuous diagnostic test.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
vus(
  method = "full",
  T,
  Dvec,
  V,
  rhoEst = NULL,
  piEst = NULL,
  ci = TRUE,
  ci.level = ifelse(ci, 0.95, NULL),
  BOOT = FALSE,
  nR = ifelse(ci, 250, NULL),
  parallel = FALSE,
  ncpus = ifelse(parallel, detectCores()/2, NULL),
  trace = TRUE
)

Arguments

method

name of bias-corrected estimation method to be used for estimating the VUS in presence of verification bias. See ROCs for more details.

T

a numeric vector containing the diagnostic test values. NA values are not admitted.

Dvec

a n * 3 binary matrix with the three columns, corresponding to three classes of the disease status. In row i, 1 in column j indicates that the i-th subject belongs to class j, with j = 1, 2, 3. A row of NA values indicates a non-verified subject.

V

a binary vector containing the verification status (1 verified, 0 not verified).

rhoEst

a result of a call to rhoMLogit of rhoKNN to fit the disease model.

piEst

a result of a call to psglm to fit the verification model.

ci

a logical value. If TRUE (default), computes an confidence interval of VUS and tests the null hypothesis H0: VUS = 1/6.

ci.level

an confidence level to be used for constructing the confidence interval; default 0.95.

BOOT

a logical value. Default = FALSE. If set to TRUE, a bootstrap resampling is employed to estimate the asymptotic variance of bias-corrected VUS estimates. See asyVarVUS.

nR

the number of bootstrap replicates, which is used for FULL or KNN estimator, or option BOOT = TRUE. Usually this will be a single positive integer.

parallel

a logical value. If TRUE, a parallel computing is employed to the bootstrap resampling process.

ncpus

number of processes to be used in parallel computing. Default is a half of available cores.

trace

a logical value. If TRUE, tracing information on the progress of the estimation is produced.

Details

The function implements five bias-corrected estimation methods in To Duc et al. (2016, 2018) for estimating VUS of a three-class continuous diagnostic test in presence of verification bias. The estimators are full imputation (FI), mean score imputation (MSI), inverse probability weighted (IPW), semiparametric efficient (SPE) and K nearest-neighbor (KNN), see ROCs. These esitmators work under MAR assumption.

The standard error of the estimates are obtained through the function asyVarVUS. In particular, the standard error of the FULL estimate is computed by bootrap resampling method or by Jackknife approach proposed in Guangming et al. (2013). For the bias-corrected estimates, the standard errors are computed by using asymptotic theory (with respect to FI, MSI, IPW and SPE estimator) or bootstrap resampling method (with respect to KNN estimator). A confidence interval of VUS also is given. A logit transformation is also applied for obtaining the confidence interval.

The default value of the number of bootstrap replicates is 250.

Note that, before apply the functions vus, the use of preDATA might be needed to check the monotone ordering disease classes and to create the matrix format for disease status.

Value

vus returns an object of class inheriting from "vus" class.

The function print.vus can be used to print a summary of the results.

An object of class "vus" is a list containing at least the following components:

vus.fit

the estimate of VUS.

std

the standard error, obtained by using asymptotic theory or bootstrap resampling method.

call

the matched call.

t.stat

t-statistic.

p.val_norm

p-value correspond to normal-test.

ci.norm

the confidence interval of VUS by using normal approximation.

ci.logit

the confidence interval of VUS via logit transform.

ci.level

the confidence level used.

BOOT

the value of BOOT.

nR

the number of bootstrap replicates used.

In addition, the name of method used to estimate VUS also is given as the attribute of vus.fit.

References

To Duc, K., Chiogna, M. and Adimari, G. (2018) Nonparametric estimation of ROC surfaces in presence of verification bias. REVSTAT Statistical Journal. Accepted.

To Duc, K., Chiogna, M. and Adimari, G. (2016) Bias-corrected methods for estimating the receiver operating characteristic surface of continuous diagnostic tests. Electronic Journal of Statistics, 10, 3063-3113.

Guangming, P., Xiping, W. and Wang, Z. (2013) Non-parameteric statistical inference for $P(X < Y < Z)$. Sankhya A, 75, 1, 118-138.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
data(EOC)
head(EOC)


## Not run: 
# FULL data estimator
Dfull <- preDATA(EOC$D.full, EOC$CA125)
Dvec.full <- Dfull$Dvec
vus("full", T = EOC$CA125, Dvec = Dvec.full)

## End(Not run)

## Not run: 
# Preparing the missing disease status
Dna <- preDATA(EOC$D, EOC$CA125)
Dfact.na <- Dna$D
Dvec.na <- Dna$Dvec
# FI estimator
rho.out <- rhoMLogit(Dfact.na ~ CA125 + CA153 + Age, data = EOC, test = TRUE)

vus("fi", T = EOC$CA125, Dvec = Dvec.na, V = EOC$V, rhoEst = rho.out)

# MSI estimator
vus("msi", T = EOC$CA125, Dvec = Dvec.na, V = EOC$V, rhoEst = rho.out)

# IPW estimator
pi.out <- psglm(V ~ CA125 + CA153 + Age, data = EOC, test = TRUE)
vus("ipw", T = EOC$CA125, Dvec = Dvec.na, V = EOC$V, piEst = pi.out)

# SPE estimator
vus("spe", T = EOC$CA125, Dvec = Dvec.na, V = EOC$V, rhoEst = rho.out, piEst = pi.out)

# KNN estimator, K = 1, Mahalanobis distance
XX <- cbind(EOC$CA125, EOC$CA153, EOC$Age)
rho.maha.1nn <- rhoKNN(X = XX, Dvec = Dvec.na, V = EOC$V, K = 1, type = "mahala")
vus("knn", T = EOC$CA125, Dvec = Dvec.na, V = EOC$V, rhoEst = rho.maha.1nn)

## End(Not run)

bcROCsurface documentation built on Sept. 8, 2021, 5:09 p.m.