Parlamentné voľby 2023 a lineárna algebra

"Experimentovanie so singulárnym rozkladom a najmenšími štvorcami"

Táto stránka slúži na ilustráciu metód lineárnej algebry, ktoré sa dajú úspešne (?) použiť pri analýze volebných dát (úspešnosť otestujeme v noci zo soboty na nedeľu). Prednostne je určená poslucháčom kurzu MAT-270 (a.k.a. MMN-321), EFM-121 (alebo MAT-120, MMN-120) na FMFI UK, ale môže byť zaujímavá aj pre iných návštevníkov.

Google spreadsheet tabuľka s modelom je TU.

Analýzou dostupných volebných dát z rokov 1992 až 2020 sa pokúsime získať informácie o zložení voličskej základne v SR. Populáciu voličov rozdelíme na rôzne faktory (alebo komponenty) a odhadneme ich zastúpenie v jednotlivých okresoch/obvodoch/obciach Slovenska. Počas volebnej noci z 30. 9. 2023 na 1. 10. 2023 bude Štatistický úrad v reálnom čase zverejňovať čiastkové volebné výsledky. Na základe takýchto čiastkových dát sa pokúsime odhadnúť ako sa z hľadiska volieb správali jednotlivé faktory (komponenty) a odhadnúť konečné výsledky skôr ako sa sčítanie skončí.

Cieľom tohto experimentovania nie je predpovedať výsledok volieb pred desiatou hodinou v sobotu 30. 9. 2023, ale predpovedať konečný výsledok na základe čiastkových dát lepšie ako obyčajným kumulovaním (toto bude robiť Štatistický úrad a budú o tom hovoriť rôzni ujovia v telke, lebo výsledky volieb sa očakávajú veľmi tesné).

Niečo podobné sme spravili v počas parlamentných volieb v roku 2012, prezidentských volieb v roku 2014, parlamentných volieb v roku 2016, prezidentských volieb v roku 2019 a parlamentných volieb v roku 2020. V roku 2012 bola chyba odhadu po spočítaní zhruba polovice hlasov v parlamentných voľbách (okolo 4:00 v noci) pre väčšinu strán menšia ako 0,1%, väčsšie odchýlky sme mali pre SMER, SMK a Most. Pri prezidentských voľbách šlo sčítanie rýchlejšie, dáta konvergovali už v priebehu prvých dvoch hodín (v prvom kole boli voľby predĺžené vo Veľkej Lomnici kôli výpadku elektriny, rovnako bolo predĺžené moratórium na výsledky). Vo voľbách 2016 dával model o 2:00 maximálnu odchýlku 0,79% pre SMER, o 3:00 0,45% pre SAS, o 4:30 0,25% opäť pre SAS (dôvodom boli veľké okrsky v Bratislave). V preziedntských voľbách 2019 opäť dáta skonvergovali do troch, resp. do dvoch hodín v druhom kole, od uzavretia volebných miestností. Vo voľbách v roku 2020 dával model pomerne presné výsledky od 2:30. Najväčšie odchýlky voči konečným výsledkom boli o 0,43% smerom nahor pre SMER a 0,17% smerom nadol pre koalíciu PS-Spolu.

Na stránke Štatistického Úradu SR sa dá dopátrať ku konzistentným dátam s výsledkami nasledujúcich celoštátnych volieb a referend: Parlament 1998, Parlament 2002, Parlament 2006, Parlament 2010, Parlament 2012, Parlament 2016, Parlament 2020, Prezident 1999, Prezident 2004, Prezident 2009, Prezident 2014, Prezident 2019, Europarlament 2004, Europarlament 2009, Europarlament 2014, Europarlament 2019, Referendum 2000 (predčasné voľby HZDS), Referendum 2003 (vstup do EÚ), Referendum 2004 (Predčasné voľby KOZ), Referendum 2010 (3 otázky SaS), Referendum 2015 (Aliancia za rodinu), Referendum 2023 (predčasné voľby SMER). V minulosti sme na základe žiadosti získali od ŠÚ SR aj dáta aj z parlamentných volieb v rokoch 1990, 1992 a 1994. Tieto dáta idú na úroveň obcí (tých je zhruba 2926, medzi voľbami sa čísla menia vzhľadom na občasné zlučovanie a rozdeľovanie obcí). Z parlamentných volieb v rokoch 2006, 2010, 2012, 2016, 2020 boli výsledky dostupné na úrovni okrskov spolu s preferenčnými hlasmi - krúžkami (pre 2006, 2010, 2012 ale už nie sú). To by sa dalo použiť pre podrobnejšiu analýzu volebného správania vo veľkých obciach, mestách a mestských častiach. Analýza takýchto dát by si však vyžadovala veľa práce navyše - počty, čísla a hranice okrskov sa medzi jednotlivými voľbami spravidla odlišujú, čím sa narúša historická konzistentnosť dát .

Okrskové komisie po sčítaní hlasov a spísaní volebnej zápisnice oznámia výsledok volieb vo svojom okrsku Štatistickému úradu. Ten ich zverejní na volebnej stánke Parlamentné voľby 2023 (táto stránka môže byť počas volebnej noci preťažená a spadnúť, počas posledných pár volieb však už bola stabilná). Keďže formát, v akom budú údaje zverejňované sa medzi voľbami mení, stávalo sa, že bolo potrebné ich priebežné manuálne sťahovanie a ukladanie vo formáte vhodnom na ďaľšie spracovanie.

Ak chceme matematicky popísať volebné správanie, rýchlo narazíme na problém mnohorozmernosti, resp. množstvo dát, ktoré sa na pozorovateľa zvalí môže byť ohromujúce.

Výsledok volieb v každej obci (obvode/okrese), tých je cca. 2926 (49/79), môžeme reprezentovať n-ticou čísel. Takto získame 2926 (49/79) vektorov v R^n. V parlamentných voľbách budeme mať n=25+3. Dvadsaťpäť zložiek zodpovedá jednotlivým stranám, zvyšné tri označujú počet zapísaných voličov, zúčastnených voličov a platných hlasov. Predstaviť si, uchopiť alebo analzyovať túto konfiguráciu je pravdepodobne nad ľudské sily. Ak sa obmedzíme na menšiu časť dát (napr. účasť, výsledky pre jednotlivé strany alebo pre viacero strán spoločne) relatívne rozumne sa dajú zobraziť štvorrozmerné dáta. (obvody, obce - obrázky pochádzajú z I. kola prezidentských volieb v roku 2014)

Alternatívne sa na volebné výsledky možno pozrieť po "stranách" - takto by sme získali 28 vektorov, z ktorých každý má 2926 (49/79) zložiek, teda leží v R^2926 (R^49/R^79). Vizualizovať takéto vektory v zásade možné je, dá sa to vidieť napríklad na mapách volebnej podpory. Numerickú hodnotu zložky vektora reprezentujeme graficky (farbou, krúžkom, intenzitou farby a pod.) a umiestnime na mapu. Pri takomto pohľade si môžeme všimnúť rôzne pozoruhodnosti. Napríklad konzistentne zvláštne správanie sa voličov v obci Sútor (2002 HZD, 2006 HZD, 2010 SMK, 2012 SDKÚ, 2014 Šimko) si v tabuľke všimne málokto, na mape však pri prezeraní si jednotlivých dát udrie do očí.

Lineárna algebra nám však hovorí, že štandardná báza nie je vždy nutne najlepšia, a vhodnou zmenou súradníc sa dá získať lepší vhľad do dát. Otázky potom sú: "Ktoré bázy R^n, resp. R^2926 (R^49/R^79) sú pre popísanie a pochopenie volebného správania najvhodnejšie? Aká informácia sa z tabuľky 28 x 2926 (28 x 49 / 28 x 79) dá nahliadnuť, abstrahovať a prípadne zobraziť? Je vhodné použitie spektrálnych metód (vlastné hodnoty, PCA, faktorová analýza)? Existuje báza R^2926 (R^49 / R^79), ktorá je univerzálne vhodná pre všetky voľby a obsahuje v sebe informáciu o 'vzorcoch volebného správania'? Ako ju nájsť, alebo overiť, že sme takú našli?"

Dobrým nástrojom na analýzu maticových dát je Singulárny rozklad (SVD), preto sa od začiatku núkal ako prirodzený kandidát. Výpočty v rokoch 2012, 2014 (I. kolo), 2016 boli založené na singulárnom rozklade matice historických dát (po obvodoch), od prezidentských volieb 2019 sme zrealizovali výpočty aj po okresoch. Výsledky odhadov možno posúdiť v príslušných tabuľkách a komentároch - stĺpce Q zodpovedajú novej báze R^49, resp. R^79. Výpočty pre obce sme nerealizovali v priamom prenose kvôli neprístupnosti dát, ale v bakalárskej práci M. Kosztolányi spravil simuláciu volebnej noci 2020 a ukázalo sa, že metóda konvergovala v mnohorozmernom prípade rýchlejšie a uspokojivé výsledky sa dali čakať už po spracovaní 5-10% v\'ysledkov (t.j. cca. 300-600 okrskov).

Do vhodnej tabuľky Volebne data 1990 - 2023 si dáme dostupné dáta z niekoľkých predchádzajúcich volieb získané zo Štatistického úradu, vznikne viacero veľkolepých matíc X typu 49 x xxx (obvody), 79 x xxx (okresy), 2926 x xxx (obce).

V nejakom softvéri (Octave, R, Mathematica) nájdeme ich singulárny rozklad, singulárne hodnoty, singulárne vektory. Výsledky predbežnej analýzy budú niekde tu: súbory k voľbám.

Do tabuľky Voľby 2023 budeme priebežne vkladať údaje z jednotlivých obvodov a okresov a obcí, z ktorých pripravené vzorce (metóda najmenších štvorcov), budú priebežne počítať odhady parametrov a celkových volebných výsledkov: celkovej účasti voličov, hlasov pre jednotlivé strany.

"Under construction and developement", sledujte priebežne novinky.

Študenti aplikovanej informatiky spravili stránku, kde sa dali zobraziť v mape výsledky volieb na úrovni obcí z niektorých minulých volieb. Zdá sa, že už nefunguje.