Nothing
library(pROC)
data(aSAH)
test_that("cov with delong works", {
expect_equal(cov(r.wfns, r.ndka), -0.000532967856762438)
expect_equal(cov(r.ndka, r.s100b), -0.000756164938056579)
expect_equal(cov(r.s100b, r.wfns), 0.00119615567376754)
})
test_that("cov with obuchowski works", {
expect_equal(cov(r.wfns, r.ndka, method = "obuchowski"), -3.917223e-06)
expect_equal(cov(r.ndka, r.s100b, method = "obuchowski"), 0.0007945308)
expect_equal(cov(r.s100b, r.wfns, method = "obuchowski"), 0.0008560803)
})
test_that("cov works with auc and mixed roc/auc", {
expect_equal(cov(auc(r.wfns), auc(r.ndka)), -0.000532967856762438)
expect_equal(cov(auc(r.ndka), r.s100b), -0.000756164938056579)
expect_equal(cov(r.s100b, auc(r.wfns)), 0.00119615567376754)
})
test_that("cov with delong and percent works", {
expect_equal(cov(r.wfns.percent, r.ndka.percent), -5.32967856762438)
expect_equal(cov(r.ndka.percent, r.s100b.percent), -7.56164938056579)
expect_equal(cov(r.s100b.percent, r.wfns.percent), 11.9615567376754)
})
test_that("cov with delong, percent and mixed roc/auc works", {
expect_equal(cov(auc(r.wfns.percent), r.ndka.percent), -5.32967856762438)
expect_equal(cov(r.ndka.percent, auc(r.s100b.percent)), -7.56164938056579)
expect_equal(cov(auc(r.s100b.percent), auc(r.wfns.percent)), 11.9615567376754)
})
test_that("cov with obuchowski, percent and mixed roc/auc works", {
expect_equal(cov(auc(r.wfns.percent), r.ndka.percent, method = "obuchowski"), -0.03917223)
expect_equal(cov(r.ndka.percent, auc(r.s100b.percent), method = "obuchowski"), 7.9453082)
expect_equal(cov(auc(r.s100b.percent), auc(r.wfns.percent), method = "obuchowski"), 8.560803)
})
test_that("cov with different auc specifications warns", {
expect_warning(cov(r.wfns, r.ndka.percent))
expect_warning(cov(r.wfns.percent, r.ndka))
# Also mixing auc/roc
expect_warning(cov(auc(r.wfns), r.ndka.percent))
expect_warning(cov(r.wfns, auc(r.ndka.percent)))
expect_warning(cov(r.wfns, auc(r.ndka.percent)))
})
test_that("cov with delong, percent and direction = >", {
expect_equal(cov(r.ndka.percent, r.s100b.percent), -7.56164938056579)
})
test_that("cov with delong, percent, direction = > and mixed roc/auc", {
r1 <- roc(aSAH$outcome, -aSAH$ndka, percent=TRUE)
r2 <- roc(aSAH$outcome, -aSAH$s100b, percent=TRUE)
expect_equal(cov(r1, r2), -7.56164938056579)
expect_equal(cov(auc(r1), auc(r2)), -7.56164938056579)
expect_equal(cov(auc(r1), r2), -7.56164938056579)
expect_equal(cov(r1, auc(r2)), -7.56164938056579)
})
test_that("cov with bootstrap works", {
skip_slow()
skip_if(getRversion() < "3.6.0") # added sample.kind
RNGkind(sample.kind="Rejection")
set.seed(42)
expect_equal(cov(r.wfns, r.ndka, method = "bootstrap", boot.n = 100), -0.000648524)
expect_equal(cov(r.ndka.percent, r.s100b.percent, method = "bootstrap", boot.n = 100), -7.17528365)
expect_equal(cov(r.s100b.partial1, r.wfns.partial1, method = "bootstrap", boot.n = 100), 2.294465e-05)
expect_equal(cov(r.wfns, r.ndka, method = "bootstrap", boot.n = 100, boot.stratified = FALSE), -0.0007907488)
})
test_that("bootstrap cov works with mixed roc, auc and smooth.roc objects", {
skip_slow()
for (roc1 in list(r.s100b, auc(r.s100b), smooth(r.s100b), r.s100b.partial2, r.s100b.partial2$auc)) {
for (roc2 in list(r.wfns, auc(r.wfns), smooth(r.wfns), r.wfns.partial1, r.wfns.partial1$auc)) {
n <- round(runif(1, 3, 9)) # keep boot.n small
stratified <- sample(c(TRUE, FALSE), 1)
suppressWarnings( # All sorts of warnings are expected
obtained <- cov(roc1, roc2, method = "bootstrap",
boot.n = n, boot.stratified = stratified))
expect_is(obtained, "numeric")
expect_false(is.na(obtained))
}
}
})
test_that("bootstrap cov works with smooth and !reuse.auc", {
skip_slow()
skip_if(getRversion() < "3.6.0") # added sample.kind
# First calculate cov by giving full curves
roc1 <- smooth(roc(aSAH$outcome, aSAH$wfns, partial.auc = c(0.9, 1), partial.auc.focus = "sensitivity"))
roc2 <- smooth(roc(aSAH$outcome, aSAH$s100b, partial.auc = c(0.9, 1), partial.auc.focus = "sensitivity"))
suppressWarnings(RNGkind(sample.kind="Rejection"))
set.seed(42) # For reproducible CI
expected_cov <- cov(roc1, roc2, boot.n = 100)
expect_equal(expected_cov, -0.0000030024)
# Now with reuse.auc
set.seed(42) # For reproducible CI
obtained_cov <- cov(smooth(r.wfns), smooth(r.s100b), reuse.auc = FALSE,
partial.auc = c(0.9, 1), partial.auc.focus = "sensitivity",
boot.n = 100)
expect_equal(expected_cov, obtained_cov)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.