Putin kontra Python: aktywiści szukają fałszerstw wyborczych

Putin kontra Python: aktywiści szukają fałszerstw wyborczych

Rosyjscy aktywiści szukają fałszerstw (fot. Pixabay)
Rosyjscy aktywiści szukają fałszerstw (fot. Pixabay)
Kamil J. Dudek
08.07.2020 14:42

W Rosji niedawno odbyło się referendum w kwestii zmian w konstytucji. Wyniki, co być może nie jest szczególnym zaskoczeniem, okazały się bardzo korzystne dla obecnie urzędującego prezydenta federacji, ponieważ pozwalają one na znaczące przedłużenie jego urzędowania. Rolę tę pełni, z przerwami, już od 1999 roku Władimir Putin.

Wyniki referendum są podważane na arenie międzynarodowej i w kraju, a jako poszlaki przedstawiane są wnioski obserwatorów. Doczekano się jednak także znacznie bardziej szczegółowego opracowania, skonfrontowanego z publikacjami naukowymi.

Wyniki jako informacja publiczna

Surowe wyniki z okręgów wyborczych zostały udostępnione w internecie. Są to dane na których pracowała Komisja Wyborcza (Центральная избирательная комиссия). Dokonano ich wizualizacji za pomocą biblioteki NumPy. Jak pisze Арсений Хахалин (Arseny Khakhalin), asystent pracujący w Bard College, wizualizacja pokazuje klastry punktów danych w skupiskach charakterystycznych dla oszustw wyborczych.

https://github.com/khakhalin/Sketches/blob/master/ru_vote_2020/02_exact_percent_values.ipynb
https://github.com/khakhalin/Sketches/blob/master/ru_vote_2020/02_exact_percent_values.ipynb

Im wyższe poparcie dla pytań referendalnych, tym bardziej wyniki zmierzają do równych wartości procentowych, co w większej skali jest nierealistyczne. Ponadto, istnieją skupiska, w których bardzo wysoka frekwencja przekłada się na bardzo wysokie poparcie. Opracowanie statystyczne nieprawidłowości wyborczych (Klimek, Yegorov et al., 2012) dostarcza wytłumaczenia dla takich zjawisk. Układ bimodalny wskazuje na dosypywanie głosów lub dostarczanie kart wyborczych wyłącznie wybranym osobom (w zależności od trybu głosowania).

Statystyki wyborcze z innych państw, uwzględniające także głosowania na kontrowersyjne tematy oraz silną polaryzację wyborców, dostarczają mniej regularny rozrzut wyników niż głosowania podawane w wątpliwość. W przypadku referendum z lipca 2020, zastanawiająco regularny rozrzut pojawił się ponownie.

https://www.pnas.org/content/pnas/early/2012/09/20/1210722109.full.pdf
https://www.pnas.org/content/pnas/early/2012/09/20/1210722109.full.pdf

Fałszowanie wyników to trudne zadanie

Jest to, swoją drogą, kolejny dowód na to, że całkowite fałszowanie wyborów jest trudne. Nie da się "po prostu ogłosić wyników" bez liczenia, trudno jest zmyślić dane w sposób niewidoczny w statystykach i niemal niemożliwe jest takie dosypanie kart z głosami, by nikt nie zauważył (podczas wrzucania i podczas liczenia). Widać też bardzo wyraźnie, jak ważny jest dostęp do surowych danych, opublikowanych w otwartym i łatwym do przeszukiwania i oprogramowania formacie.

Dzięki takiej dostępności danych (gdzie obecna jest odpowiednia treść i forma) możliwy jest cyfrowy aktywizm i kontrola obywatelska. Surowe dane są możliwe do obrobienia i wizualizacji ze pomocą ogólnodostępnych narzędzi. Użyta biblioteka NumPy jest tak popularna, że znajduje się w repozytoriach pakietów większości dystrybucji Linuksa. Jest także, oczywiście, dostępna przez instalator pip, co zapewnia jej dostępność na przeróżnych dystrybucjach samego Pythona (w wersjach 2 i 3). Biblioteka wizualizacji Matplotlib jest pakowana do RPM/DEB znacznie rzadziej, ale również jest dostęna w pip (wymaga numpy, pyparse i cycler).

Debian/WSL (fot. Kamil Dudek)
Debian/WSL (fot. Kamil Dudek)

Python jest wieloplatformowy i łatwo rozpocząć z nim pracę. Są dostępne instalatory dla systemu Windows, większość Linuksów a także macOS zawiera Pythona od razu, domyślnie (wiele narzędzi systemowych jest napisanych właśnie w pythonie, np. yum). Python działa też bezproblemowo w WSL, więc jeżeli instalacja środowiska Pythona w Windows wygląda "nienaturalnie" i w czyimś odczuciu zbyt mocno ingeruje w system, nie pasując do niego za bardzo, można użyć też takiej drogi. Po odblokowaniu WSL, zainstalowaniu któregoś z Linuksów przez Microsoft Store można cieszyć się Linuksowym Pythonem pod Windows. Instalacja serwera X11 umożliwi także natywne wyświetlanie grafik. X serwer jest też wbudowany w WSL2, ale nie jest jeszcze szczególnie rozpowszechniony.

Nie tylko MATLAB

NumPy jest coraz częściej używany w obliczeniach naukowo-technicznych. Naturalnie, nie wyprze on na wielu polach legendarnego MATLAB-a, ale rosnąca liczba materiałów naukowych i źródeł doktoratów (np. w inżynierii materiałowej) wskazuje użyteczność Pythona i NumPy. Pozwala to nie wytaczać ciężkich dział za każdym razem, gdy trzeba coś policzyć. Doskonałym opracowaniem wprowadzającym do obliczeń naukowych z wykorzystaniem Pythona jest, dostępny w rozległych fragmentach na GitHubie, Python Data Science Handbook. Zawiera on także szereg przykładów do samodzielnego rozwiązania.

Python i X-server VcXsrv (Xming jest już płatny!) są dostępne w naszej bazie oprogramowania.

Programy

Zobacz więcej
Źródło artykułu:www.dobreprogramy.pl
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Wybrane dla Ciebie
Komentarze (25)