# Herd or population sensitivity for varying unit sensitivity

## Input Values

This utility calculates cluster (herd ) or population-level sensitivity when individual unit sensitivity varies. It is useful for example when different units are tested with tests with different sensitivities for some reason, or when cluster-sensitivity varies among herds when calculating overall population-level sensitivity.

If the population size is not specified the binomial method is used, otherwise the hypergeometric approximation is used.

### Inputs

Inputs are:

• design prevalence, as either a proportion or as an integer number of units;
• population size, if known;
• prior confidence of freedom; and
• 2 columns of data, including a header row. The first column is an identifier for each unit tested and the second is the sensitivity (test or herd) for that unit.

### Outputs

Outputs from the analysis include:

• Herd or population-level sensitivity for the given data; and
• Confidence of freedom of the herd or population from disease (at the specified design prevalences.

No example available
No references available
```				######################################
# Program to calculate Seh/SSe for verying unit sensitivity
######################################
# uses RSurveillance package

rm(list = ls())

# cat("Test:",length(commandArgs()))
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
# 1 = design prevalence, 2 = dp.a format (0=proportion, 1=number),
# 3 = no herds specified,
# 4 = prior probability of freedom,
a1<- type.convert(a0[8:10])
# cat(a1)

dp.a<- a1
dp.a.int<- ifelse(dp.a < 1, F, T)
n.herds<- a1
prior.pfree<- a1
heading<- "Cluster or population sensitivity for varying unit sensitivity"
digits<- 4

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,
# cat("", data.file)
data.file<- ifelse(test, paste(fpath, "docs/VaryingSeDemo.txt", sep = ""), a0[length(a0)])              #test name
dat<- read.csv(data.file)       # first clumn = unit id, 2nd = sensitivity
# cat(colnames(dat))
# cat(dat[,1])

# check for valid sample size
if (nrow(dat) > n.herds & n.herds > 0) {
cat("Sample size exceeds Population size. Please try again.")
quit()
}

# set up table of inputs
inputs<- array("", dim = c(length(a1), 1))
rownames(inputs)<- c("Design prevalence",
"Population size", "Prior confidence of freedom")
inputs[1, 1]<- ifelse(dp.a.int, paste(dp.a, " unit(s)"), paste(dp.a*100, "%", sep = ""))
inputs[2, 1]<- ifelse(n.herds <= 0, "Unknown", n.herds)
inputs[3, 1]<- a1

n.herds<- ifelse(n.herds <= 0, NA, n.herds)
# cat(dat[1,2])
SSe<- sep.var.se(N=n.herds, se=na.omit(dat[,2]), pstar=dp.a)

# Calculate probability of freedom
PFree<- pfree.1(SSe, p.intro = 0, prior.pfree)
# PFree<- pfree.1(SSe, prior.pfree)
results<- rbind(nrow(dat), round(mean(dat[,2]), digits), round(SSe, digits), round(PFree, digits))
rownames(results)<- c("Number of units sampled", "Mean unit sensitivity", "Cluster/population sensitivity", "Confidence of freedom")
colnames(results)<- ""

# write to html and file