rmaniv / jury-theorems

0 stars 0 forks source link

jury-theorems

Jury theorems are interested in the probability of correctness - the probability that the majority decision coincides with the objective truth. Typical jury theorems make two kinds of claims on this probability:

  1. Growing Reliability: the probability of correctness is larger when the group is larger.
  2. Crowd Infallibility: the probability of correctness goes to 1 when the group size goes to infinity.

Claim 1 is often called the non-asymptotic part and claim 2 is often called the asymptotic part of the jury theorem.

Obviously, these claims are not always true, but they are true under certain assumptions on the voters. Different jury theorems make different assumptions.

Source: Wikipedia

Condorcet's Jury Theorem (CJT)

Condorcet's jury theorem makes the following three assumptions:

  1. Unconditional Independence: the voters make up their minds independently. In other words, their opinions are independent random variables.
  2. Unconditional Competence: the probability that the opinion of a single voter coincides with the objective truth is larger than 1/2 (i.e., the voter is smarter than a random coin-toss).
  3. Uniformity: all voters have the same probability of being correct.

The jury theorem of Condorcet says that these three assumptions imply Growing Reliability and Crowd Infallibility.

Source: Wikipedia

In the theorems package, condorcet.py simulates the CJT. The montecalro function estimates the probability of reaching a majority decision that is correct using a vectorized implementation of the Monte Carlo simulation. It performs 1 million trials and counts the of trials in which the majority reached the correct decision. The deterministic function performs a summation of binomial probabilities for all combinations in which more voters are making the correct decision than not.

$$ P = \sum_{r = \left\lfloor \frac{n}{2} \right\rfloor + 1}^{n} \binom{n}{r} p^r (1 - p)^{n-r} $$

In this equation:

The plot function generates a graph of the probability of a correct majority decision as a function of an independent voter's probability of being correct. Users have the option to employ either the Monte Carlo simulation or the deterministic approach.

Figure: Condorcet Jury Theorem plots with the Monte Carlo simulation (left) and the deterministic approach (right).

View condorcet.py

A summary of other jury theorems (from Wikipedia) that I'll simulate soon:

Correlated votes (weakening the unconditional independence assumption)

Diverse capabilities (weakening the uniformity assumption)

to be added...

Stay tuned! I'm actively working on expanding this repository with more jury theorems.