Learn R Programming

stapler (version 0.8.0)

staple_bin_mat: STAPLE on binary matrix

Description

STAPLE on binary matrix

Usage

staple_bin_mat(
  x,
  sens_init = 0.99999,
  spec_init = 0.99999,
  max_iter = 10000,
  tol = .Machine$double.eps,
  prior = "mean",
  verbose = TRUE,
  trace = 10,
  drop_all_same = FALSE
)

Value

List of output sensitivities, specificities, and vector of probabilities

Arguments

x

a nxr matrix where there are n raters and r elements rated

sens_init

Initialize parameter for sensitivity (p)

spec_init

Initialize parameter for specificity (q)

max_iter

Maximum number of iterations to run

tol

Tolerance for convergence

prior

Either "mean" or a vector of prior probabilities,

verbose

print diagnostic messages

trace

Number for modulus to print out verbose iterations

drop_all_same

drop all records where they are all the same. DO NOT use in practice, only for validation of past results

Examples

Run this code
n = 5
r = 1000
sens = c(0.8, 0.9, 0.8, 0.5, 0.8)
spec = c(0.9, 0.75, 0.99, 0.98, 0.92)
suppressWarnings(RNGversion("3.5.0"))
set.seed(20171120)
n_1 = 200
n_0 = r - n_1
truth = c(rep(0, n_0), rep(1, n_1))
pred_1 = rbinom(n = n, size = n_1, prob = sens)
pred_0 = rbinom(n = n, size = n_0, prob = spec)
pred_0 = sapply(pred_0, function(n) {
   sample(c(rep(0, n), rep(1, n_0 -n)))
})
pred_1 = sapply(pred_1, function(n) {
   sample(c(rep(1, n), rep(0, n_1 -n)))
})
pred = rbind(pred_0, pred_1)
true_sens = colMeans(pred[ truth == 1, ])
true_spec = colMeans(1-pred[ truth == 0, ])
x = t(pred)
staple_out = staple_bin_mat(x)
testthat::expect_equal(staple_out$sensitivity,
c(0.781593858553476, 0.895868301462594,
0.760514086161722, 0.464483444340873,
0.765239314719065))
staple_out_prior = staple_bin_mat(x, prior = rep(0.5, r))
testthat::expect_equal(staple_out_prior$sensitivity,
c(0.683572080864211, 0.821556768891859,
0.619166852992802, 0.389409921992467, 0.67042085955546))

Run the code above in your browser using DataLab