# Probability of false positives

This utility calculates the expected probability of numbers of false positive results to a test for a given sample size and test specificity, assuming the sample is from an uninfected population. It answers the question: 'For a given sample size and test specificity, and assuming that all animals are uninfected, what is the probability that there will be 1, 2, 3 etc false positives ?'. It also answers the related questions: 'What is the probability of x (1, 2, 3, etc) or more false positive results? and What is the probability of x (1, 2, 3, etc) or less false positive results?'

Inputs are the sample size tested and the test specificity.

Outputs are a table and graph of probabilities associated with each of the likely number of false positive results.

No example available
No references available
```				######################################
# Program to calculate numbers of false positives
######################################
rm(list = ls())

test<- ifelse(length(commandArgs()) < 3, TRUE, FALSE)
fpath<- ifelse(test, "webRootUrl", "rtoolsPath")

source(paste(fpath, "R/HTMLStream.R", sep = ""))
source(paste(fpath, "R/epitools_functions.r", sep = ""))

# extract command arguments
a1<- type.convert(a0[8:9])

# cat(a0)
# cat(a1)
digits<- 4
p<- a1
n<- a1
names(a1)<- c("Probability of true result (specificity)", "Sample size")
filename <- digest(Sys.time())
tmp.path<- paste(fpath, "tmp/", sep = "")
tmp.file<- paste(fpath, "tmp/", filename, sep = "")
sinkfile<- paste(fpath, "tmp/", filename, ".txt", sep="")   # fpath,
graphfile<- paste(fpath, "tmp/", filename, ".png", sep="")

# table of inputs
inputs<- array("", dim = c(length(a1), 1))
inputs[1:2, 1]<- a1
rownames(inputs)<- names(a1)

results<- array(0, dim = c(n+1, 4))
colnames(results)<- c("Number of false positives (x)", "P(pos=x)", "P(pos<= x)", "P(pos>=x)")
results1<- results
results[,1]<- 0:n
results[,2]<- dbinom(0:n, n, (1-p))
results[1,3]<- results[1,2]
results[1,4]<- 1
for(i in 1:n+1) {
results[i,3]<- results[i-1,3] + results[i,2]
results[i,4]<- results[i-1,4] - results[i-1,2]
}
results<- round(results, digits)
results1[,2:4]<- format(results[,2:4], scientific = F)
results1[,1]<- results[,1]
max<- match(0, results[,4])+1

# graph results
Title<-"Probability of varying numbers of false +ve"
OpenGraphOutput(graphfile, pointsize = 12, ht = 6, wd = 8)
cols<- c("darkblue", "darkgreen", "red", "magenta", "brown", "purple")
plot(x = results[1:max,1], y = results[1:max,2], ylim = c(0,1), xlab = colnames(results),
ylab= "Probability", main=Title, col = cols, type = "o", pch=3)
lines(x = results[1:max,1], y = results[1:max,3], col = cols, type = "o", pch=8)
lines(x = results[1:max,1], y = results[1:max,4], col = cols, type = "o", pch=4)
legend("right", colnames(results)[2:4], col = cols[1:3], pch = c(3, 8, 4), cex = 0.8)
sink(sinkfile)
CloseGraphOutput("R")
sink()

# write to html and file