A Rational Voting System

EDIT (02/26/2020): after posting this article on some voting theory related subreddits, I received several criticisms and suggestions for improvement. For example, one that I had already contemplated for the RRCV algorithm, is to subtract MAD only from the results of the two finalists.

note: this is not intended to be a primer on voting theory, if you are new to the subject you can start here.

Stalin once (supposedly) said that “He who casts the votes determines nothing; he who counts the votes determines everything “ But he was being insufficiently cynical. He who chooses the voting system may determine just as much as the other two players.

-Scott Alexander-

In the course of our life, we rarely spend time contemplating the consequences of what we do, thinking that our actions has zero-weight on the world around us.
We are plain wrong.

Voting is one of the most important and transformative acts a human being can do, we must not take it lightly or naively, after all, as one sage put it “people must understand that they are voting for their own quality of life […] and potentially for the next great war or even for the end of the world“.

In my country (as unfortunately in many others) the electoral system is of the First-past-the-post type, with all the limitations and problems that we sadly know very well.
This voting system has led to a terminal recursion of government crisis and new elections, a sempiternal cycle of popular despair, economic recession and bureaucratic stagnation.
I am not saying that all of our government’s problems would be solved by an electoral reform, but certainly many would be.

For some time I have been a fervent supporter of an electronic voting system, preferably based on a blockchain, which can only be accessed by passing a test. However, this model has many weaknesses; first of all, the blockchain needs incentives to perform the validation task… but also by eliminating the blockchain and by implementing everything on a government website, the criticalities remain:
Who chooses the questions of the test decides the results of the elections.
An impartial organization of philosophers and psychologists should be established and made sure that they only choose questions that do not require specific education nor ideological orientations to be answered but only basic logic skills.
Furthermore, if a nation has 50 million voters, 50 million different tests would have to be generated to avoid online copying.
All these are hard bureaucratic problems and a lot of time and money should be invested in them.
In addition, there is the ethical question of whether a test is right when it comes to universal suffrage.
Over time I have acquired more and more knowledge on the field called voting theory and I have understood that all this is not absolutely necessary, we already have very valid, easy to implement, theoretical alternatives, for example Approval Voting and Ranked Choice Voting.

Based on the reports of the Center for Election Science, Approval Voting seems to be, in general, the best method (i.e. the one with the highest upsides/downsides ratio).
Personally my preference gradients would also tend towards that but I’m afraid that, in a nation and population like mine, Approval will soon turn into FPTP.
The reasons for this are disparate but mainly it is for this psychological property: my fellow countrymen often denote a total, almost religious loyalty to a certain political leader, regardless of what his political abilities and those of his opponents are. People often only have eyes for one individual and to hell with everyone else.
Since Approval does not prevent people to vote for just one candidate, there are no defense mechanisms that skim this fanaticism and prevent the conversion of an excellent system into a bad one.

This possibility is slightly more mitigated in the RCV and I think it can be leveled even more with a few simple tricks. The following is my personal reflection on a possible starting point for improving RCV.

Razionalistic Ranked Choice Voting (RRCV)

I firmly believe that one of the goals we should all set ourselves is to become more rational agents. There is a criminal lack of rationality in this world.
People should be educated from an early age to think critically, and one way to do this might be to have children do what superforcasters do on a daily basis: bet with them on possible real-world events. This system could prove to be an excellent form of reinforcement learning designed to shape rational minds from an early age (I would really like to see more psychological experiments in this regard).

Starting from this simple assumption, I thought of a ranked electoral system, where each candidate is assigned a number from 1 to 99, where that number represents the probability that the voter attributes to the specific candidate to be an ideal person for covering that role, based on the voter personal preferences and knowledge of the world.
For each candidate, the arithmetic average of the votes is then calculated and the mean absolute deviation (MAD) is subtracted from this result. MAD is a good indicator of the convergence of preferences, the more rational the voters are, the lower MAD will affect the final result.

Here is an excel example of a vote with 4 candidates and 8 voters:

As you can see, in this case Candidate C Wins as his [AVR – MAD] is the highest.

Why also introduce MAD in the calculation? Wasn’t the average enough?
I believe that MAD is a key indicator as it shows us the consistency between people’s preference gradients.
As Aumann’s Theorem teaches us, the more two agents are rational and have common knowledge of the world (in the Bayesian sense), the less they will find points of disagreement.

By giving the possibility to insert numbers from 1 to 99 (instead of the classic 1-5 or 1-10 of the RCV) and encouraging voters to think on a probabilistic basis (what is the probability that this candidate does a good job), more information on the knowledge of voters is likely to be obtained, which translates into greater justice and impartiality on the part of the framework.
This algorithm can be further improved for example by making it mandatory to assign at least 3 different numbers throughout the ballot card.
In this case the fanatics who would like to assign 99 to their favorite and 1 to all the others are skimmed, also favoring the statistics underlying the procedure.

Below is a working Python code that simulates an RRCV toy-model election with 8 candidates and one million voters:

import numpy as np

def Rrcv(candidates):
average = []
for c in candidates:
mean = np.mean(c[1])
average.append([c[0], mean – np.mean(np.absolute(c[1] – mean))])
average = Sort(average, 1)
print(“Final Results:”)
print(average)
print(“WINNER IS:”)
print(average[0])


def Sort(sub_li, column):
sub_li.sort(key = lambda x: x[column])
return sub_li[::-1]

if __name__ == “__main__”:   
A = [‘A’,np.random.randint(100, size=1000000)]   
B = [‘B’,np.random.randint(100, size=1000000)]   
C = [‘C’,np.random.randint(100, size=1000000)]   
D = [‘D’,np.random.randint(100, size=1000000)]   
E = [‘A’,np.random.randint(100, size=1000000)]   
F = [‘B’,np.random.randint(100, size=1000000)]   
G = [‘C’,np.random.randint(100, size=1000000)]   
H = [‘D’,np.random.randint(100, size=1000000)]

candidates = [A, B, C, D, E, F, G, H]
 print(“CANDIDATES:”)   
print(candidates)   Rrcv(candidates)

Conclusion: to finish I would like to stress the fact that my aim is not to prove that this voting system is the best, in fact it is likely to be subjected to weaknesses that I have not noticed yet.
The purpose of this post was to bring people’s attention on the possibilities we have in this field (at the current state it is as if we used horses to move with cars available) and to propose some ideas for further improvement of the best options we already have.


Leave a Comment

Your email address will not be published. Required fields are marked *