AROC.kernel | R Documentation |
Estimates the covariate-adjusted ROC curve (AROC) using the nonparametric kernel-based method proposed by Rodriguez-Alvarez et al. (2011). The method, as it stands now, can only deal with one continuous covariate.
AROC.kernel(marker, covariate, group, tag.healthy, data, p = seq(0, 1, l = 101), B = 1000)
marker |
A character string with the name of the diagnostic test variable. |
covariate |
A character string with the name of the continuous covariate. |
group |
A character string with the name of the variable that distinguishes healthy from diseased individuals. |
tag.healthy |
The value codifying the healthy individuals in the variable |
data |
Data frame representing the data and containing all needed variables. |
p |
Set of false positive fractions (FPF) at which to estimate the covariate-adjusted ROC curve. |
B |
An integer value specifying the number of bootstrap resamples for the construction of the confidence intervals. By default 1000. |
Estimates the covariate-adjusted ROC curve (AROC) defined as
AROC≤ft(t\right) = Pr\{1 - F_{\bar{D}}(Y_D | X_{D}) ≤q t\},
where F_{\bar{D}}(\cdot|X_{D}) denotes the conditional distribution function for Y_{\bar{D}} conditional on the vector of covariates X_{\bar{D}}. In particular, the method implemented in this function estimates the outer probability empirically (see Janes and Pepe, 2008) and F_{\bar{D}}(\cdot|X_{\bar{D}}) is estimated assuming a nonparametric location-scale regression model for Y_{\bar{D}}, i.e.,
Y_{\bar{D}} = μ_{\bar{D}}(X_{\bar{D}}) + σ_{\bar{D}}(X_{\bar{D}})\varepsilon_{\bar{D}},
where μ_{\bar{D}} is the regression funcion, σ_{\bar{D}} is the variance function, and \varepsilon_{\bar{D}} has zero mean, variance one, and distribution function F_{\bar{D}}. As a consequence, and for a random sample \{(x_{\bar{D}i},y_{\bar{D}i})\}_{i=1}^{n_{\bar{D}}}
F_{\bar{D}}(y_{\bar{D}i} | X_{\bar{D}}= x_{\bar{D}i}) = F_{\bar{D}}≤ft(\frac{y_{\bar{D}i}-μ_{\bar{D}}(x_{\bar{D}i})}{σ_{\bar{D}}(x_{\bar{D}i})}\right).
Both the regression and variance functions are estimated using the Nadaraya-Watson estimator, and the bandwidth are selected using least-squares cross-validation. Implementation relies on the R
-package np
. No assumption is made about the distribution of \varepsilon_{\bar{D}}, which is empirically estimated on the basis of standardised residuals.
As a result, the function provides a list with the following components:
call |
The matched call. |
p |
Set of false positive fractions (FPF) at which the pooled ROC curve has been estimated |
ROC |
Estimated covariate-adjusted ROC curve (AROC), and 95% pointwise confidence intervals (if required) |
AUC |
Estimated area under the covariate-adjusted ROC curve (AAUC), and 95% pointwise confidence intervals (if required). |
bw.mean |
An object of class |
bw.var |
An object of class |
fit.mean |
An object of class |
fit.var |
An object of class |
Hayfield, T., and Racine, J. S.(2008). Nonparametric Econometrics: The np Package. Journal of Statistical Software 27(5). URL http://www.jstatsoft.org/v27/i05/.
Inacio de Carvalho, V., and Rodriguez-Alvarez, M. X. (2018). Bayesian nonparametric inference for the covariate-adjusted ROC curve. arXiv preprint arXiv:1806.00473.
Rodriguez-Alvarez, M. X., Roca-Pardinas, J., and Cadarso-Suarez, C. (2011). ROC curve and covariates: extending induced methodology to the non-parametric framework. Statistics and Computing, 21(4), 483 - 499.
AROC.bnp
, AROC.bsp
, AROC.sp
, AROC.kernel
, pooledROC.BB
or pooledROC.emp
.
library(AROC) data(psa) # Select the last measurement newpsa <- psa[!duplicated(psa$id, fromLast = TRUE),] # Log-transform the biomarker newpsa$l_marker1 <- log(newpsa$marker1) m2 <- AROC.kernel(marker = "l_marker1", covariate = "age", group = "status", tag.healthy = 0, data = newpsa, p = seq(0,1,l=101), B = 500) summary(m2) plot(m2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.