Detektor Anomalii Wyborczych

Wyjaśnienie algorytmu flagującego na zweryfikowanych przez Sąd Najwyższy przykładach

Analizowana komisja: {{ selectedCommission.Gmina }} nr {{ selectedCommission.Nr_komisji }}

  • Powiat: {{ selectedCommission.Powiat }}
  • Województwo: {{ selectedCommission.Wojewodztwo }}
  • Siedziba: {{ selectedCommission.Siedziba }}
  • Uwaga po weryfikacji SN: {{ selectedCommission.Uwaga_po_weryfikacji }}

🚨 Status w algorytmie Defoliatora

Komisja BYŁA na liście podejrzanych wygenerowanej przez algorytm Defoliatora.

Algorytm wykrył anomalię - różnica między wynikiem symulowanym a rzeczywistym przekroczyła ustalone progi bezpieczeństwa (33.3% wzrost dla jednego kandydata przy jednoczesnym braku wzrostu dla drugiego).

✅ Status w algorytmie Defoliatora

Komisja NIE BYŁA na liście podejrzanych wygenerowanej przez algorytm Defoliatora.

Algorytm nie oflagował tej komisji, ponieważ różnice między wynikiem symulowanym a oryginalnym protokołem mieściły się w normie ustalonych progów bezpieczeństwa.

Wizualne porównanie wyników

Poniższy wykres ilustruje, jak blisko wyniku zweryfikowanego przez SN jest wynik mojej symulacji. Rażąca różnica między oryginalnym protokołem, a wynikiem symulowanym jest właśnie tym, co uruchomia alert algorytmu i powoduje, że komisja jest flagowana.

Rafał Trzaskowski
Karol Nawrocki
Oryginalny protokół
{{ summaryChart.original.rt_percent.toFixed(1) }}%
{{ summaryChart.original.kn_percent.toFixed(1) }}%
Wynik symulowany
{{ summaryChart.simulated.rt_percent.toFixed(1) }}%
{{ summaryChart.simulated.kn_percent.toFixed(1) }}%
Wynik po weryfikacji SN
{{ summaryChart.verified.rt_percent.toFixed(1) }}%
{{ summaryChart.verified.kn_percent.toFixed(1) }}%

Jak działa algorytm?

Algorytm symuluje "spodziewany" wynik drugiej tury na podstawie głosów z pierwszej tury i uśrednionych przepływów elektoratów (dane z badań UCE Research). Następnie porównuje wynik symulowany z rzeczywistym. Komisja jest flagowana jako "podejrzana", jeśli spełnione są dwa warunki jednocześnie:

  1. Jeden z kandydatów uzyskał wynik znacznie wyższy od symulowanego (np. o 33.3% lub więcej). W normie powinno być max 15% nadwyżki (wzrostu) wyniku względem symulacji czyli naturalny wzrost frekwencji. Wzrost o 33.3% jest silnym sygnałem, że coś się dzieje nienaturalnego.
  2. Wynik jego przeciwnika jest jednocześnie nie wyższy niż symulowany (równy lub niższy). W normie powinien być wzrost ze względu na naturalny bonus frekwencji. Tymczasem jest spadek? To też jest silny sygnał, że coś się dzieje nienaturalnego.

Poniżej możesz zobaczyć, jak ta logika stosuje się do wybranej komisji – najpierw w odniesieniu do błędnego protokołu, a potem do wyniku poprawionego po weryfikacji przez Sąd Najwyższy.

Krok 1: Symulacja przepływu głosów z I tury

Na podstawie wyników I tury w tej komisji, symulujemy przepływ głosów na kandydatów II tury.

Kandydat (I tura) Głosy I tura Przepływ do Rafała Trzaskowskiego (RT) Przepływ do Karola Nawrockiego (KN) Nie głosuje
{{ flow.candidate }} {{ flow.t1_votes }} {{ flow.to_rt.toFixed(1) }} ({{ flow.params.toTrzaskowski }}%) {{ flow.to_kn.toFixed(1) }} ({{ flow.params.toNawrocki }}%) {{ flow.no_vote.toFixed(1) }} ({{ flow.params.nieGlosuje }}%)
SUMA {{ simulation.totalT1Votes }} {{ simulation.simulated_rt.toFixed(1) }} {{ simulation.simulated_kn.toFixed(1) }} {{ simulation.totalNoVote.toFixed(1) }}

Krok 2: Porównanie i ocena

Porównanie z oryginalnym protokołem

Protokół Symulacja Różnica Różnica %
RT {{ analysisOriginal.rt_real }} {{ analysisOriginal.rt_sim }} {{ analysisOriginal.rt_diff.toFixed(0) }} {{ analysisOriginal.rt_diff_percent.toFixed(1) }}%
KN {{ analysisOriginal.kn_real }} {{ analysisOriginal.kn_sim }} {{ analysisOriginal.kn_diff.toFixed(0) }} {{ analysisOriginal.kn_diff_percent.toFixed(1) }}%
Ocena warunków algorytmu:
{{ analysisOriginal.display.label1 }}: {{ analysisOriginal.display.cond1 ? 'SPEŁNIONY' : 'NIESPEŁNIONY' }}
{{ analysisOriginal.display.label2 }}: {{ analysisOriginal.display.cond2 ? 'SPEŁNIONY' : 'NIESPEŁNIONY' }}
Ocena: {{ analysisOriginal.verdict }}

Porównanie z wynikiem po weryfikacji SN

Zweryfikowany Symulacja Różnica Różnica %
RT {{ analysisVerified.rt_real }} {{ analysisVerified.rt_sim }} {{ analysisVerified.rt_diff.toFixed(0) }} {{ analysisVerified.rt_diff_percent.toFixed(1) }}%
KN {{ analysisVerified.kn_real }} {{ analysisVerified.kn_sim }} {{ analysisVerified.kn_diff.toFixed(0) }} {{ analysisVerified.kn_diff_percent.toFixed(1) }}%
Ocena warunków algorytmu:
{{ analysisVerified.display.label1 }}: {{ analysisVerified.display.cond1 ? 'SPEŁNIONY' : 'NIESPEŁNIONY' }}
{{ analysisVerified.display.label2 }}: {{ analysisVerified.display.cond2 ? 'SPEŁNIONY' : 'NIESPEŁNIONY' }}
Ocena: {{ analysisVerified.verdict }}

Wczytywanie danych z pliku CSV...