vus_mar {bcROCsurface} | R Documentation |
Estimation methods for volume under ROC surface (VUS) under MAR
Description
vus_mar
computes bias-corrected estimates of the volume under the ROC surface for evaluating the accuracy of a continuous diagnostic test.
Usage
vus_mar(
method = "full",
diag_test,
dise_vec,
veri_stat,
rho_est = NULL,
pi_est = NULL,
ci = TRUE,
ci_level = ifelse(ci, 0.95, NULL),
boot = FALSE,
n_boot = 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 |
diag_test |
a numeric vector containing the diagnostic test values. |
dise_vec |
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 |
veri_stat |
a binary vector containing the verification status (1 verified, 0 not verified). |
rho_est |
a result of a call to |
pi_est |
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 = |
n_boot |
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. |
trace |
a logical value. If |
Details
The function implements five bias-corrected estimation methods in To Duc et al. (2016, 2020) 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 estimators work under MAR assumption.
The standard error of the estimates are obtained through the function asy_var_vus
. In particular, the standard error of the FULL estimate is computed by bootstrap 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 for 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_mar
, the use of pre_data
might be needed to check the monotone ordering disease classes and to create the matrix format for disease status.
Value
vus_mar
returns an object of class inheriting from "vus_mar" class.
The function print.vus_mar
can be used to print a summary of the results.
An object of class "vus_mar" 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 |
n_boot |
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. (2020) Nonparametric estimation of ROC surfaces in presence of verification bias. REVSTAT-Statistical Journal, 18, 5, 697–720.
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
data(EOC)
head(EOC)
## Not run:
# FULL data estimator
dise_full <- pre_data(EOC$D.full, EOC$CA125)
dise_vec_full <- dise_full$dise_vec
vus_mar("full", diag_test = EOC$CA125, dise_vec = dise_vec_full)
## End(Not run)
## Not run:
# Preparing the missing disease status
dise_na <- pre_data(EOC$D, EOC$CA125)
dise_vec_na <- dise_na$dise_vec
dise_fact_na <- dise_na$dise
# FI estimator
rho_out <- rho_mlogit(dise_fact_na ~ CA125 + CA153 + Age, data = EOC,
test = TRUE)
vus_mar("fi", diag_test = EOC$CA125, dise_vec = dise_vec_na,
veri_stat = EOC$V, rho_est = rho_out)
# MSI estimator
vus_mar("msi", diag_test = EOC$CA125, dise_vec = dise_vec_na,
veri_stat = EOC$V, rho_est = rho_out)
# IPW estimator
pi_out <- psglm(V ~ CA125 + CA153 + Age, data = EOC, test = TRUE)
vus_mar("ipw", diag_test = EOC$CA125, dise_vec = dise_vec_na,
veri_stat = EOC$V, pi_est = pi_out)
# SPE estimator
vus_mar("spe", diag_test = EOC$CA125, dise_vec = dise_vec_na,
veri_stat = EOC$V, rho_est = rho_out, pi_est = pi_out)
# KNN estimator, K = 1, Mahalanobis distance
x_mat <- cbind(EOC$CA125, EOC$CA153, EOC$Age)
rho_maha_1nn <- rho_knn(x_mat = x_mat, dise_vec = dise_vec_na,
veri_stat = EOC$V, k = 1, type = "mahala")
vus_mar("knn", diag_test = EOC$CA125, dise_vec = dise_vec_na,
veri_stat = EOC$V, rho_est = rho_maha_1nn)
## End(Not run)