[EM] Modeling elections
Blake Cretney
blake at condorcet.org
Wed May 1 18:54:30 PDT 2002
I've recently been experimenting with modeling elections. I'm
particularly interested in models that take the view that there is a
right answer, with voters varying in their ability to see the best
solution. This is quite different than looking at the election as an
opportunity for each person to express the utility of an option to them,
in the hopes of maximizing perceived utility.
Anyway, I approached the problem in an admittedly simplistic way. I
established 1 as being the ideal. Each of 101 voters and 10 candidates
were randomly assigned a value less than 1. I assigned these numbers
based on the left side of a normal distribution. That is, I created a
normal distribution with a mean of 1, and a standard deviation of .5,
and ignored all values above 1. I used a normal distribution on the
assumption that voters tend to be drawn toward better solutions.
All votes are sincere in my model. I assumed that people would prefer
the candidate whose assigned value was closest to their own. And when
ranking, people would rank the closer candidates above those further
away. When "approving" of candidates for an approval election, voters
approved of all candidates that were closer than the average for that voter.
I compared Borda, Plurality, Approval, Random Candidate, and Condorcet.
After randomly constructing a population of voters and candidates, I
was able to find a winner according to each method. That winning
candidate has a value equal to its desirability. The higher this value,
the better the method was doing.
Here's some example data. The simulation was run for 10,000 rounds, the
score is the average value of the winning candidate. I wouldn't pay
much attention to anything after the first two digits.
plurality 0.645185742888
approval 0.631756074554
borda 0.683807453742
random 0.597920774971
condorcet 0.664473653125
Borda does the best. All methods do better than random. One reason
Borda does well is because the model assumes that the candidates (as
well as the voters) are skewed to the good. Since Borda encourages the
running of candidates, and since there are in fact more good candidates,
it isn't surprising that Borda comes out well. To test this, I ran an
example where the standard deviation of the candidate values, but not
the voter values, is changed to 1. This still skews candidates toward
good, but it creates a much greater tail to the curve, which will result
in more low and negatively valued candidates.
plurality 0.739428387791
approval 0.358133016904
borda 0.620321020809
random 0.204792214674
condorcet 0.662755661463
Condorcet is affected the least. Borda drops behind Condorcet.
Plurality does much better, since the vote rich area at the top of the
curve is split between fewer candidates. Approval and random both
suffer greatly from the change. Next I tried selecting candidate values
from an even distribution between 0 and 1.
plurality 0.755861511252
approval 0.556967014313
borda 0.628313630398
random 0.499027658001
condorcet 0.661973160665
Here's one last one. I went back to the normal distribution, but set
the candidate standard deviation to 0.25, resulting in a candidate field
superior to the voters.
plurality 0.540424844931
approval 0.767877868695
borda 0.747518871757
random 0.788082777819
condorcet 0.668325197385
Not surprisingly, random candidate becomes the best.
Anyway, I hope I didn't make any errors. If anyone is interested in my
Python code, I'll post it on my web site. I have a feeling not everyone
is going to agree with the assumptions of my model, so let the debate begin.
---
Blake Cretney (vote.sourceforge.net)
----
For more information about this list (subscribe, unsubscribe, FAQ, etc),
please see http://www.eskimo.com/~robla/em
More information about the Election-Methods
mailing list