Prezidentské voľby 2019 a lineárna algebra

"Experimentovanie so singulárnym rozkladom"

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 EFM-160 (alebo MAT-160, MMN-160) 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.

Google spreadsheet tabuľka s modelom pre druhé kolo je TU.

Kedže sa dá očakávať pomerne rýchle sčítanie a výsledok by nemal byť tesný na stotiny percenta, zaujímavé bude hlavne to, kedy sa podarí rozbehnúť plynulé načítavanie dát zo ŠÚ SR. Resp. zaujať môžu rôzne bublinkové grafy, ktoré sa budú dať spraviť podľa želaní v diskusii.

Analýzou dostupných volebných dát z rokov 1992 až 2016 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 16. 3. 2019 na 17. 3. 2019 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 16. 3. 2019, 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). Niečo podobné sme spravili v počas parlamentných volieb v roku 2012, prezidentských volieb v roku 2014 a parlamentných volieb v roku 2016. 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).

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, Prezident 1999, Prezident 2004, Prezident 2009, Prezident 2014, Europarlament 2004, Europarlament 2009, Europarlament 2014, 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). 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 2920, 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 boli (zdá sa, že už nie sú) výsledky dostupné dokonca na úrovni okrskov (spolu s preferenčnými hlasmi - krúžkami), čo 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ú.

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 (snáď) zverejní na volebnej stánke Voľby prezidenta 2019 (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í, je možné, že bude 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/75), môžeme reprezentovať n-ticou čísel. Takto získame 2926 (49/75) vektorov v R^n. V prezidentských voľbách budeme mať n=15+2. Pätnásť zložiek zodpovedá jednotlivým kandidátom, zvyšné dve označujú počet zapísaný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 24 vektorov, z ktorých každý má 2926 (49/75) zložiek, teda leží v R^2926 (R^49/R^75). Vizualizovať takéto vektory v zásade možné je, dá sa to vidieť napríklad tu. 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^75) sú pre popísanie a pochopenie volebného správania najvhodnejšie? Aká informácia sa z tabuľky 17 x 2926 (17 x 49 / 17 x 75) 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^75), 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). 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. Výpočty pre obce sme nerealizovali kvôli neprístupnosti dát, ale pravdepodobne by boli schopné lepšie odhaliť vhodnosť/nevhodnosť metódy vzhľadom na dimenzionalitu problému.

Do vhodnej tabuľky Volebne data 1990 - 2018 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), 75 x xxx (okresy), 2927 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 2019 budeme priebežne vkladať údaje z jednotlivých obvodov, 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ých kandidátov.

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

Študenti aplikovanej informatiky spravili stránku, kde sa dajú pozrieť výsledky volieb na úrovni obcí z niektorých minulých volieb. (skript je pomalý, treba trpezlivosť a pomerne rýchle pripojenie)