| vus {bcROCsurface} | R Documentation |
vus computes bias-corrected estimates of the volume under the ROC surface for evaluating the accuracy of a continuous diagnostic test.
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))
method |
name of bias-corrected estimation method to be used for estimating the VUS in presence of verification bias. See |
T |
a numeric vector containing the diagnostic test values. |
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 |
V |
a binary vector containing the verification status (1 verified, 0 not verified). |
rhoEst |
a result of a call to |
piEst |
a result of a call to |
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 = |
nR |
the number of bootstrap replicates, which is used for FULL or KNN estimator, or option |
parallel |
a logical value. If |
ncpus |
number of processes to be used in parallel computing. Default is a half of available cores. |
The function implements five bias-corrected estimation methods in To Duc et al. (2016) 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 asymptotic variance is computed by using asymptotic theory (with respect to FI, MSI, IPW and SPE estimator) or bootstrap resampling method (with respect to FULL and KNN estimator) via the function asyVarVUS. 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.
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 |
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.
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.
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)
# 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)
## Not run:
# 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)