Learn R Programming

elec (version 0.1.2.2)

tri.audit.sim: tri.audit.sim

Description

This is a SIMULATION FUNCTION, and is not used for actual auditing of elections.

Usage

tri.audit.sim(
  Z,
  n,
  p_d = 0.1,
  swing = 5,
  return.type = c("statistics", "taints", "precinct"),
  seed = NULL,
  PID = "PID",
  ...
)

Arguments

Z

elec.data object.

n

Sample size to draw.

p_d

The probability of a precinct having an error.

swing

The size of the error, in votes.

return.type

What kind of results to return: "statistics","taints", or "precinct"

seed

Random seed to use.

PID

Column name of column holding unique precinct IDs

Extra arguments passed to tri.sample

Value

List of taints found in such a circumstance OR precincts selected with relevant attributes (including simulated errors, if asked) OR the number of non-zero taints and the size of largest taint.

Details

Given a matrix of votes, calculate the weights for all precincts and then draw a sample (using tri.sample). Then, assuming that p\_d percent of the precincts (at random) have error, and the errors are due to vote miscounts of size 'swing', conduct a simulated ``audit'', returning the found descrepancies.

See Also

elec.data for the object that holds vote data. See tri.calc.sample for computing sample sizes for trinomial bound audits.

Examples

Run this code
# NOT RUN {

  data(santa.cruz)
  Z = elec.data(santa.cruz, C.names=c("leopold","danner"))
  Z$V$e.max = maximumMarginBound( Z )
  ## Sample from fake truth, see how many errors we get.
  tri.audit.sim( Z, 10,  p_d=0.25, swing=10, return.type="precinct" )

  ## what does distribution look like?
  res = replicate( 200, tri.audit.sim( Z, 10,  p_d=0.25, swing=10 ) )
  apply(res,1, summary) 
  hist( res[2,], main="Distribution of maximum size taint" )

# }

Run the code above in your browser using DataLab