Program przeliczający mandaty do parlamentu

Program przeliczający mandaty do parlamentu
ShookTea
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 6 lat
  • Lokalizacja:Wrocław
  • Postów:629
0

Uwaga, mnóstwo tekstu

Ciekawe, czy komuś się będzie chciało to w ogóle czytać :/

Piszę to trochę po to, żeby zachęcić do jakiejkolwiek dyskusji i trochę po to, żeby pokazać, co spłodziłem.
Napisałem program, który dla jakichś danych (np. wyników wyborów do Sejmu) przeliczał ilość mandatów w parlamencie za pomocą różnych ordynacji wyborczych i szukał "tej najlepszej". Dane, jakie przechowuję, to lista wszystkich powiatów w Polsce oraz liczba głosów w każdym powiecie oddana na każdy komitet wyborczy. Grupuję je później w razie potrzeby w województwa lub okręgi wyborcze (zgodnie z istniejącymi granicami okręgów wyborczych) i sprawdzam, co by było, gdyby w 2015 roku obowiązywała inna ordynacja, a w przyszłości być może posprawdzam to też dla wyborów z innych lat.
(Jakby ktoś chciał podejrzeć kod lub sposób przedstawienia danych, to siedzi to wszystko na githubie: https://github.com/ShookTea/OrdynacjeWyborcze)

Zanim przejdę do wyników, bardzo ważny temat: dobra ordynacja wyborcza nie oznacza "taka, która sprawi, że partia, którą lubię wygra". Dobra ordynacja wyborcza to taka ordynacja, która zapewnia, że procentowo udział komitetów wyborczych w parlamencie będzie możliwie jak najbardziej zbliżony do procentowego poparcia w wyborach. Jakość danej ordynacji przeliczam więc sumując moduły różnic między % w parlamencie a % poparcia dla każdej partii.
Innymi słowy, jeżeli mamy n partii, a pX oraz wX oznacza % udziału partii X kolejno w parlamencie oraz wyborach, wówczas wzór na jakość ordynacji wygląda tak:
screenshot-20180212223719.png
A im mniejsza jest ta wartość, tym lepsza ordynacja. Dla porównania z późniejszymi wskazaniami, wynik błędu dla użytej faktycznie ordynacji (metoda d'Hondta z progiem 5%, 8% dla koalicji i mniejszościami narodowymi ignorującymi próg) wynosi 39.56 i jest to całkiem sporo. Jeżeli jakaś ordynacja zdobędzie mniejszy błąd, będzie to oznaczało, że jej sposób rozdzielenia mandatów lepiej odzwierciedla wyniki wyborów.

Kolejna rzecz: Ponieważ ważny jest %, a nie konkretna liczba, a tworzenie 460 okręgów wyborczych mi się nie uśmiecha (i moralnie uważałbym to za fałszowanie wyniku), sama wielkość Sejmu (tj. ilość posłów) może być zmienna. Jak jednak mówiłem, ważniejszy jest procent.

Najpierw zaczniemy od tego, co Kukizy lubią najbardziej, czyli

JOW

Spoiler: Kukiz'15 nie zdobywa ani jednego miejsca w Sejmie
Najpierw w ramach rozluźnienia: Co by było, gdyby cała Polska była jednym okręgiem wyborczym? Wówczas PiS, będąc na pierwszym miejscu z 37.58% głosów zdobywa wszystko, czyli aż jeden mandat do Sejmu i uzyskuje tam 100%. Błąd ze wzoru wyżej wynosi aż 124.85.
Gdybyśmy uznali za pojedynczy okręg wyborczy:

  • każde z 16 województw - PiS zdobywa 14 mandatów, PO - 2 (z pomorskiego i zachodniopomorskiego), E = 99.85.
  • każdy z 41 okręgów wyborczych - PiS zdobywa 33 mandaty, PO - 8, E = 85.83
  • każdy z 383 powiatów - PiS zdobywa 302 mandaty! (tj. ~79% Sejmu), PO - 80, PSL - 1 (powiat kępiński w Wielkopolsce), E = 82.55

Głównym problemem ze sposobem działania JOWów ("kto zdobędzie najwięcej głosów, ten wygrywa") jest to, że decyduje mniejszość - w hipotetycznym okręgu, w którym 5 partii zdobywa 100 głosów, a szósta 101, ta szósta wygrywa mimo posiadania ledwie 17% głosów.

Mieszany system proporcjonalny

Ten system działa na zasadzie oddawania dwóch głosów na raz - jeden na lokalnego reprezentanta oraz jeden na listę ogólnokrajową. Ze względu na brak takich danych założyłem, że ludzie głosowaliby i tu, i tu na tę samą listę wyborczą, i chyba za bardzo nie odbiegam od prawdy - osoby, które głosowałyby inaczej stanowiłyby raczej znaczną mniejszość populacji ;)

Istnieje wiele różnych sposobów na przeliczanie takich podwójnych głosów. Ja zostałem przy następującym: dla N okręgów wyborczych istnieje 2N miejsc w Sejmie. Połowa tych miejsc zajmowana jest na zasadzie identycznej, jak JOWy, z list lokalnych reprezentantów. Drugą połowę miejsc zajmuje się, patrząc na listę ogólnokrajową: kolejne miejsca przydzielamy partii mającej największe poparcie spośród tych, których % w parlamencie jest mniejszy, niż % poparcia. System ten został całkiem ładnie przedstawiony przez CGP Greya.

Znów dla rozluźnienia uznajmy, że Polska jest jednym wielkim okręgiem wyborczym. Tym razem jednak będzie za każdym razem dwa razy więcej mandatów, niż w JOWach... czyli 2. Jeden z nich dostaje PiS, a drugi największa z poszkodowanych partii, czyli PO. Błąd wynosi 76.67 i już teraz, z tak abstrakcyjnym scenariuszem, wyprzedza tradycyjne JOWy z podziałem na powiaty :D
Gdybyśmy uznali za pojedynczy okręg wyborczy:

  • każde z 16 województw - PiS - 14, PO - 8, .N - 3, K'15 - 3, ZL - 3, PSL - 1. Poziom błędu E = 22.51 i, znów z bardzo abstrakcyjnym podziałem na okręgi, wyprzedzamy faktyczny wynik z 2015 roku równy 39.56.
  • każdy z 41 okręgów wyborczych - PiS - 33, PO - 20, K'15 - 8, .N - 7, ZL - 6, PSL - 5, KORWiN - 3, błąd E = 11.64
  • każdy z 383 powiatów - PiS - 302, PO - 185, K'15 - 68, .N - 59, ZL - 58, PSL - 40, KORWiN - 37, Razem - 17.
    W tym ostatnim przypadku E=4.55. Jest to bardzo niski wynik - dzieląc to przez 11 zarejestrowanych komitetów otrzymujemy 0.41%, co oznacza, że średnio tyle każdy komitet stracił lub zyskał. Jest to bardzo dobry wynik i niższego nie udało mi się osiągnąć żadnym innym algorytmem.

Mam jeszcze metody D'Hondta, Sainte-Laguë i Hare'a-Niemeyera z różnymi kombinacjami progów wyborczych, wszystkie trzy były wykorzystywane w III RP (SL w 2001, HN w 1991, D'Hondt w pozostałych latach). Jeżeli kogoś zainteresują jakieś wyniki, to się tutaj podzielę, nie ma sensu, żebym pisał do nikogo :)


edytowany 2x, ostatnio: ShookTea
Zobacz pozostałe 24 komentarze
ShookTea
3) dokonujesz ukrytego założenia że preferencje wyborców stanowią 1:1 z ich głosami - nie ukrytego, napisałem o tym wyraźnie i wspomniałem, że to mało realne, ale zwyczajnie nie mam danych.
ShookTea
A poza tym, to możemy skończyć w sumie tę bezsensowną dyskusję. Dałem swoje założenia, ale to, że tobie nie pasują, mnie szczerze mówiąc nie obchodzi i żadne próby przekonania mnie nic nie zmienią :)
LS
Dyskusja nie jest bezsensowna - jeśli dla ciebie jest to nie wiem po co publikowałeś tego posta. Faktem jest że założyłem z początku że mieszany system to twój wynalazek bo poświęciłeś dużo miejsca jego opisowi zamiast po prostu zalinkować definicję albo przejść do omówienia wyników. Ale to już wyjaśniliśmy sobie :) Pytanie o dane to też moje przeoczenie bo uszedł mi uwagi pierwszy akapit a że okazji zajmuję się czymś innym, no cóż, bywa :)
LS
I teraz tak tak: jeśli twoim celem jest zbudowanie modelu który ma pokazać przy jakiej ordynacji % komitetów będzie zbliżony do rzeczywistego poparcia na podstawie głosowania według jednej ordynacji jest według mnie mało miarodajny - ot po prostu fajne ćwiczenie. Sensowniejsze było zastosowanie kalkulatora na podstawie wyników wyborów z różnych lat prowadzonych według różnych ordynacji (a w zasadzie różnych metod liczenia proporcjonalnego). Dopiero mając wyliczone takie porównanie moglibyśmy pokusić o wyeliminowanie czynnika zakłócającego w postaci strategii wyborczej.
LS
Bo to nie problem zbudować model który udowodni z góry założoną tezę ;)
Haskell
  • Rejestracja:prawie 10 lat
  • Ostatnio:12 miesięcy
  • Postów:4700
1
ShookTea napisał(a):

Dobra ordynacja wyborcza to taka ordynacja, która zapewnia, że procentowo udział komitetów wyborczych w parlamencie będzie możliwie jak najbardziej zbliżony do procentowego poparcia w wyborach.

Ale skąd wzięło się założenie, że ludzie głosują na partie i programy, a nie na ludzi i wrażenie jakie robią? Dlaczego PO wygrało w 2011 roku wybory, pomimo tego, że w 2007 szli do wyborów z zupełnie innym i dużo bardziej liberalnym programem? Czy ludzie w ogóle znają program wyborczy partii, na którą głosują, czy raczej pamiętają tylko jak zaprezentował się lider partii na debacie albo co zrobił przez ostatnie 4-lata kierowany przez niego rząd?

Jeżeli założysz, że wyborcy głosują na ludzi, to nagle się okazuje, że JOW to super rozwiązanie. W okręgach JOW startują ludzie, twarze, kandydaci, a nie listy. O składzie i kolejności na liście wyborczej decyduje lider partii. W okręgach JOW kandydaci mają większą autonomię, po wejściu do Sejmu będą realizować postulaty ludzi, którzy na niego głosowali i sfinansowali jego kampanię poprzez dobrowolne datki, a nie będą musieli słuchać lidera, który im coś każe, pod groźbą wyrzucenia z partii i skreślenia z listy.


Zaglądali do kufrów, zaglądali do waliz, nie zajrzeli do d**y - tam miałem socjalizm. Czesław Miłosz
ShookTea
Gdzie ja ci dałem takie założenie? :O
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:mniej niż minuta
0

Zanim przejdę do wyników, bardzo ważny temat: dobra ordynacja wyborcza nie oznacza "taka, która sprawi, że partia, którą lubię wygra". Dobra ordynacja wyborcza to taka ordynacja, która zapewnia, że procentowo udział komitetów wyborczych w parlamencie będzie możliwie jak najbardziej zbliżony do procentowego poparcia w wyborach. Jakość danej ordynacji przeliczam więc sumując moduły różnic między % w parlamencie a % poparcia dla każdej partii.

To nie jest dobra ordynacja, jeżeli w wyniku niej może dostać się poseł który dostał mniej głosów niż inny, ale o mandacie zadecydowały wyniki poszczególnych partii.
Raczej przynależność do tej czy innej partii (komitetu wyborczego) nie powinien mieć znaczenia przy liczeniu głosów.
I wcale nie oznacza to od razu jednomandatowych okręgów. Przecież mogą być dwumandatowe, trójmandatowe itp.

Ale tak naprawdę każda ordynacja ma jakieś problemy.

edytowany 1x, ostatnio: Azarien
ShookTea
Ale zwykle głosując na kogoś jednocześnie głosujesz na komitet, z którym ten ktoś startuje.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.