Nykyistä eduskuntavaalijärjestelmää on pidetty äänikynnyksen(kin) osalta ongelmallisena. Pienimpien puolueiden on vaikea saada ääntään kuuluviin koska ihmiset eivät äänestä puoluetta joka ei todennäköisesti saa ehdokasta läpi. Toisaalta ns. piilotettu äänikynnys voi olla korkea. Tämän korjaamiseksi äänestysalueita onkin muokattu.
En ole ihan varma miten paljon äänestämiseen vaikuttaa äänen mahdollinen hukkaan meno, mutta lauantai päivän ratoksi kehittelin omaa muunnosta d’Hondtista. Tätä ei ole kauhean pitkälle mietitty, mutta laitan kuitenkin näkyviin koska luulen ensimmäisen vastalauseen olevan että se on liian vaikea ymmärtää sillä käytetäänhän siinä peräti rationaalilukuja! Kertooko tuollainen luulo enemmän kirjoittajan arroganssista, Suomalaisen koulutuksen tilasta vai matematiikan kertakaikkisesta vaikeudesta ja hyödyttömyydestä jääköön lukijan arvioitavaksi.
Systeemin idea on jakaa vaaleissa ääniä, ei paikkoja. Esimerkiksi Varsinais-Suomessa jossa valitaan 17 kansanedustajaa jaettaisiinkin 17 ääntä joilla voi äänestää täysistunnossa. Ensimmäiset 17 henkilöä käyttämään näitä ääniä valittaisiin aivan kuten nytkin. Mutta tämän lisäksi jokaiselta listalta (vaaliliitto, puolue, valitsijahenkilöyhdistykset) jolta yhtään ehdokasta ei päässyt läpi valittaisiin sen listan eniten ääniä saanut ehdokas.
Kaikki valitut eivät kuitenkaan olisi saman arvoisia. Ne jotka valittaisiin 17 ensimmäisen ulkopuolelta saisivat äänestää vain osuudella jonka heidän vertailulukunsa on koko äänimäärästä. Huomaa että listan ensimmäisen vertailuluku on sama kuin koko listan äänimäärä. Siis jos:
Si = summa listan äänimäärästä
V = vaalipiirin paikkamäärä
T = vaalipiirin annetut äänet
Ei = Extra edustajan äänivalta
niin,
Ei = Si*V/T
Jotta vaalipiirin äänimäärä säilyy vähennetään extra-edustajien saama äänivalta varsinaisilta valituilta. Taulukossa 1. on näytetty esimerkkinä käytetyn Varsinais-Suomen edustajat ja heidän äänivaltansa esitetyllä systeemillä laskettuna.
n | Ääniä | Nimi | Puolue | Liitto | vertailuluku | Äänivalta |
1 | 10639 | Orpo Petteri | KOK | KOK ja RKP | 68434 | 0,95950384 |
2 | 9549 | Elomaa ‘Kike’ Ritva | PS | PS | 50742 | 0,95950384 |
3 | 10480 | Saarikko Annika | KESK | KESK | 42680 | 0,95950384 |
4 | 6704 | Eloranta Eeva-Johanna | SDP | SDP | 41005 | 0,95950384 |
5 | 9819 | Wallin Stefan | RKP | KOK ja RKP | 34217 | 0,95950384 |
6 | 15154 | Andersson Li | VAS | VAS | 27048 | 0,95950384 |
7 | 6839 | Tavio Ville | PS | PS | 25371 | 0,95950384 |
8 | 9168 | Kanerva Ilkka | KOK | KOK ja RKP | 22811,33 | 0,95950384 |
9 | 8815 | Niinistö Ville | VIHR | VIHR | 22808 | 0,95950384 |
10 | 5944 | Kiviranta Esko | KESK | KESK | 21340 | 0,95950384 |
11 | 6048 | Taimela Katja | SDP | SDP | 20502,5 | 0,95950384 |
12 | 7121 | Virolainen Anne-Mari | KOK | KOK ja RKP | 17108,5 | 0,95950384 |
13 | 5574 | Lohela Maria | PS | PS | 16914 | 0,95950384 |
14 | 4909 | Ala-Nissilä Olavi | KESK | KESK | 14226,67 | 0,95950384 |
15 | 4621 | Sirén Saara-Sofia | KOK | KOK ja RKP | 13686,8 | 0,95950384 |
16 | 5890 | Kantola Ilkka | SDP | SDP | 13668,33 | 0,95950384 |
17 | 5021 | Lapintie Annika | VAS | VAS | 13524 | 0,95950384 |
18 | 1717 | Auvinen Ville | KD | KD | 6324 | 0,40818124 |
19 | 647 | Vesti Jetro | Piraattip. | Piraattip. | 2091 | 0,13496315 |
20 | 192 | Eskola Päivi | IP | IP | 903 | 0,05828394 |
21 | 164 | Niskanen Kalle | SKP | SKP ja KTP | 728 | 0,04698861 |
22 | 264 | Leppäjoki Kari | Muut | Muut | 264 | 0,01703982 |
23 | 64 | Uutela Markus | STP | STP | 184 | 0,01187624 |
24 | 87 | Tulonen Antti | Muutos2011 | Muutos2011 | 172 | 0,0111017 |
summa | 16,99999998 | |||||
vars summa | 16,31156528 | |||||
extra summa | 0,6884347 |
Taulukko 1. “Ehdotetulla” systeemillä lasketut edustajat ja heidän äänivaltansa.
Summa riveiltä nähdään että kaikkiaan extroille meni noin 0,7 ääntä. Jos muut vaalipiirit ovat vastaavia jaettaisiin tällä systeemillä noin 10 ääntä eri tavoin kuin vaaleissa nyt jaettiin. Kannattaa myös huomata että kaikki puolueet eivät tässäkään saaneet yhtään äänivaltaa, sillä vaaliliitossa ollut KTP jäi ilman.
Voisiko tälläinen järjestelmä toimia oikeasti? Uskoisin että vaalien osalta kyllä. Eduskunnan täysistunnon osalta kyllä. Hauskaa säätämistä tulisi kun mietitäisiin miten erilaisia valiokuntia rakennettaisiin erilaisin äänivalloin varustettujen edustajien kesken.
Eduskunnan äänestyksen ovat pääosin (?) avoimia, jolloin mahdollisuuksia etä-äänestämiseen ja osallistumiseen voitaisiin kehittää. Tällöin hyvin pienellä äänivallalla varustetut edustajat voisivat olla paikalla vain silloin kun siihen on erityistä tarvetta. Nuukemmat haluaisivat ehkä myös porrastaa palkkioita ja korvauksia äänivallan mukaan.
Olisiko äänten osista sitten mitään iloa? Yhtään ääntä ei menisi hukkaan, ainakaan jos ei lähtisi mukaan vaaliliittoihin. Tämä voisi muuttaa vaaliliittojen kannattavuutta. Kaikkien ehdokkaita asettaneiden olisi mahdollista päästä mukaan vallan sisäpiiriin, ainakin sen ulkoreunalle, sillä osallistuminen päätöksentekoon sisäpuolelta avaa näkymiä joita rannalle jääneillä ei ole.
Lisäksi tämän esimerkin valossa 10 ääntä erikäsissä voi vaikuttaa hallituksen muodostukseen ja siihen miten luottamuslauseäänestyksissä käy.
Mainittakoon lopuksi vielä, että aiheesta lienee ihan oikeaa tutkimustakin johon en ole tutustunut. Kannattaa ehkä googlata.
[code language=”r”]
### play with d’Hondt
## ——– calculate traditional d’Hont as used in Finland
dHondt <- function(votes, n.of.seats){
#votes with columns Nimi, Puolue, Ääniä
#Calculate votes per party
electoral.alliance=unique(votes$Liitto)
DD=data.frame()
for (i in electoral.alliance){
total.votes=sum(votes[votes$Liitto==i,]$Ääniä)
party=votes[votes$Liitto==i, c("Ääniä","Nimi","Puolue","Liitto")]
party=arrange(party, desc(Ääniä))
for (k in 1:length(party$Nimi)){
party$comparison[k]=total.votes/k
}
DD=rbind(DD, party)
}
DD
}
## —— modify d’Hondt to have no threshold
dHondt.no.threshold <- function(tulos, n.of.seats){
require(dplyr)
electoral.alliance=unique(tulos$Liitto)
total.votes=sum(tulos$Ääniä)
got.atleast.1=arrange(tulos, desc(comparison))[1:n.of.seats,] #these got elected
not.elected.alliances=anti_join(tulos, got.atleast.1, by="Liitto") # none from these alliances got elected
electoral.alliance=unique(not.elected.alliances$Liitto)
extra.elected=data.frame()
comparison.max=numeric() #find maximum comparison numbers
for (i in electoral.alliance){ #find the best comparison number for each alliance
party=tulos[tulos$Liitto==i, c("Ääniä","Nimi","Puolue","Liitto","comparison")]
comparison.max[i]=max(party$comparison)
extra.elected=rbind(party[party$comparison==max(party$comparison),], extra.elected)
}
extra.elected$Ääni=extra.elected$comparison/total.votes*n.of.seats #set the voting power according to mod
got.atleast.1$Ääni=1-sum(extra.elected$Ääni)/n.of.seats
D=arrange(rbind(got.atleast.1, extra.elected), desc(comparison))
D
}
[/code]