Description Usage Arguments Details Value References See Also Examples

`ROCs.tcf`

is used to obtain bias-corrected estimates of the true class fractions (TCFs) for evaluating the accuracy of a continuous diagnostic test for a given cut point *(c_1, c_2)*, with *c_1 < c_2*.

`ROCs`

provides bias-corrected estimates of the ROC surfaces of the continuous diagnostic test by using TCF.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ```
ROCs.tcf(method = "full", T, Dvec, V = NULL, rhoEst = NULL, piEst = NULL, cps)
ROCs(
method = "full",
T,
Dvec,
V,
A = NULL,
rhoEst = NULL,
piEst = NULL,
ncp = 100,
plot = TRUE,
ellipsoid = FALSE,
cpst = NULL,
level = 0.95,
sur.col = c("gray40", "green"),
BOOT = FALSE,
nR = 250,
parallel = FALSE,
ncpus = ifelse(parallel, detectCores()/2, NULL),
...
)
``` |

`method` |
a estimation method to be used for estimating the true class fractions in presence of verification bias. See 'Details'. |

`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 |

`cps` |
a cut point |

`A` |
a vector/matrix of dimension n * q containing the values of the covariate(s). If the method is |

`ncp` |
the dimension of cut point grid. It is used to determine the cut points (see 'Details'). Default 100. |

`plot` |
if |

`ellipsoid` |
a logical value. If TRUE, adds an ellipsoidal confidence region for TCFs at a specified cut point to current plot of ROC surface. |

`cpst` |
a specified cut point, which used to construct the ellipsoid confidence region. If |

`level` |
an confidence level to be used for constructing the ellipsoid confidence region; default 0.95. |

`sur.col` |
color to be used for plotting ROC surface and ellipsoid. |

`BOOT` |
a logical value. Default = |

`nR` |
the number of bootstrap replicates, which is used for FULL estimator, or option |

`parallel` |
a logical value. If |

`ncpus` |
number of processes to be used in parallel computing. Default is half of of available cores. |

`...` |
optional arguments to be passed to |

In a three-class diagnostic problem, quantities used to evaluate the accuracy of a diagnostic test are the true class fractions (TCFs). For a given pair of cut points *(c_1, c_2)* such that *c_1 < c_2*, subjects are classified into class 1 (*D_1*) if *T < c_1*; class 2 (*D_2*) if *c_1 ≤ T < c_2*; class 3 (*D_3*) otherwise. The true class fractions of the test *T* at *(c_1, c_2)* are defined as

*TCF_1(c_1) = P(T < c_1| D_1 = 1) = 1 - P(T ≥ c_1| D_1 = 1),*

*TCF_2(c_1, c_2) = P(c_1 ≤ T < c_2| D_2 = 1) = P(T ≥ c_1| D_2 = 1) - P(T ≥ c_2| D_2 = 1),*

*TCF_3(c_2) = P(T > c_2| D_3 = 1) = P(T ≥ c_2| D_3 = 1). *

The receiver operating characteristic (ROC) surface is the plot of *TCF_1*, *TCF_2* and *TCF_3* by varying the cut point *(c_1, c_2)* in the domain of the diagnostic test. The cut points *(c_1, c_2)* are produced by designing a cut point grid with `ncp`

dimension. In this grid, the points satisfying *c_1 < c_2* are selected as the cut points. The number of the cut points are obtained as *ncp(ncp - 1)/2*, for example, the default is 4950.

These functions implement the bias-corrected estimators in To Duc et al (2016a, 2016b) for estimating TCF of a three-class continuous diagnostic test in presence of verification bias. The estimators work under MAR assumption. Five methods are provided, namely:

Full imputation (FI): uses the fitted values of the disease model to replace the true disease status (both of missing and non-missing values).

Mean score imputation (MSI): replaces only the missing values by the fitted values of the disease model.

Inverse probability weighted (IPW): weights each observation in the verification sample by the inverse of the sampling fraction (i.e. the probability that the subject was selected for verification).

Semiparametric efficient (SPE): replaces the true disease status by the double robust estimates.

K nearest-neighbor (KNN): uses K nearest-neighbor imputation to obtain the missing values of the true disease status.

The argument `method`

must be selected from the collection of the bias-corrected methods, i.e., `"full"`

, `"fi"`

, `"msi"`

, `"ipw"`

, `"spe"`

and `"knn"`

.

The ellipsoidal confidence region of TCFs at a given cut point can be constructed by using a normal approximation and plotted in the ROC surface space. The confidence level (default) is 0.95.

Note that, before using the functions `ROCs`

and `ROCs.tcf`

, the use of `preDATA`

might be needed to check the monotone ordering disease classes and to create the matrix format for disease status.

`ROCs`

returns a list, with the following components:

`vals` |
the estimates of TCFs at all cut points. |

`cpoint` |
the cut points are used to construct the ROC surface. |

`ncp` |
dimension of the cut point grid. |

`cpst` |
the cut points are used to construct the ellipsoidal confidence regions. |

`tcf` |
the estimates of TCFs at the cut points |

`message` |
an integer code or vector. 1 indicates the ellipsoidal confidence region is available. |

`ROCs.tcf`

returns a vector having estimates of TCFs at a cut point when `cps`

is a vector with two elements, or a list of estimates of TCFs at `m`

cut points when `cps`

is a `m*2`

matrix. In addition, some attributes called `theta`

, `beta`

, `cp`

and `name`

are given. Here, `theta`

is a probability vector, with 3 element, corresponding to the disease prevalence rates of three classes. `beta`

is also a probability vector having 4 components, which are used to compute TCFs, see To Duc el al. (2016a, 2016b) for more details. `cp`

is the specified cut point that is used to estimate TCFs. `name`

indicates the method used to estimate TCFs. These attributes are required to compute the asymptotic variance-covariance matrix of TCFs at the given cut point.

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

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

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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | ```
data(EOC)
head(EOC)
## Not run:
# FULL data estimator
Dfull <- preDATA(EOC$D.full, EOC$CA125)
Dvec.full <- Dfull$Dvec
if(requireNamespace("webshot2", quietly = TRUE)){
ROCs("full", T = EOC$CA125, Dvec = Dvec.full, ncp = 30, ellipsoid = TRUE,
cpst = c(-0.56, 2.31))
}
## End(Not run)
## Not run:
# Preparing the missing disease status
Dna <- preDATA(EOC$D, EOC$CA125)
Dvec.na <- Dna$Dvec
Dfact.na <- Dna$D
# FI estimator
rho.out <- rhoMLogit(Dfact.na ~ CA125 + CA153 + Age, data = EOC, test = TRUE)
if(requireNamespace("webshot2", quietly = TRUE)){
ROCs("fi", T = EOC$CA125, Dvec = Dvec.na, V = EOC$V, rhoEst = rho.out, ncp = 30)
}
# Plot ROC surface and add ellipsoid confidence region
if(requireNamespace("webshot2", quietly = TRUE)){
ROCs("fi", T = EOC$CA125, Dvec = Dvec.na, V = EOC$V, rhoEst = rho.out, ncp = 30,
ellipsoid = TRUE, cpst = c(-0.56, 2.31))
}
# MSI estimator
if(requireNamespace("webshot2", quietly = TRUE)){
ROCs("msi", T = EOC$CA125, Dvec = Dvec.na, V = EOC$V, rhoEst = rho.out, ncp = 30,
ellipsoid = TRUE, cpst = c(-0.56, 2.31))
}
# IPW estimator
pi.out <- psglm(V ~ CA125 + CA153 + Age, data = EOC, test = TRUE)
if(requireNamespace("webshot2", quietly = TRUE)){
ROCs("ipw", T = EOC$CA125, Dvec = Dvec.na, V = EOC$V, piEst = pi.out, ncp = 30,
ellipsoid = TRUE, cpst = c(-0.56, 2.31))
}
# SPE estimator
if(requireNamespace("webshot2", quietly = TRUE)){
ROCs("spe", T = EOC$CA125, Dvec = Dvec.na, V = EOC$V, rhoEst = rho.out, ncp = 30,
piEst = pi.out, ellipsoid = TRUE, cpst = c(-0.56, 2.31))
}
# 1NN estimator
XX <- cbind(EOC$CA125, EOC$CA153, EOC$Age)
K.opt <- CVknn(X = XX, Dvec = Dvec.na, V = EOC$V, type = "mahala", plot = TRUE)
rho.1nn <- rhoKNN(X = XX, Dvec = Dvec.na, V = EOC$V, K = K.opt, type = "mahala")
if(requireNamespace("webshot2", quietly = TRUE)){
ROCs("knn", T = EOC$CA125, Dvec = Dvec.na, V = EOC$V, rhoEst = rho.1nn, ncp = 30,
ellipsoid = TRUE, cpst = c(-0.56, 2.31))
}
## Compute TCFs at three cut points
cutps <- rbind(c(0,0.5), c(0,1), c(0.5,1))
ROCs.tcf("spe", T = EOC$CA125, Dvec = Dvec.na, V = EOC$V, rhoEst = rho.out, ncp = 30,
piEst = pi.out, cps = cutps)
## End(Not run)
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.