BRAGA

01 Arbeit01-02

Rekonstruktion von Entscheidungs­analysen

Die Präsidentschaftswahl 2018 in Paraguay, rekonstruiert als drei verbundene Entscheidungsmodule (Wählersegmentierung, Budgetallokation und Umfrage-Tracking) aus dem, was eine Kampagne Anfang 2018 sehen konnte.

Entwurf · Freigabe ausstehendEntscheidungsanalytikFunktionsfähigVeröffentlicht 7. Mai 20266 Min. LesezeitRepository
+3,70 PP
Verifizierter Vorsprung, TSJE
61,25 %
Wahlbeteiligung, TSJE
50.000
Synthetische Wahlberechtigte, 14 Wochen
Inhalt
  1. 01Fragestellung
  2. 02Daten
  3. 03Methode
  4. 04Ergebnis
  5. 05Grenzen
  6. 06Entscheidung
  7. 07Entstehung
Zusammenfassung

Drei verbundene Module laufen durchgängig auf 50.000 synthetischen Wahlberechtigten, die an die verifizierten Eckdaten der Departamentos angepasst sind: Bei einem Budgetrahmen von 6 Mio. USD erzielt der Allokator rund 54,77 % mehr linearisierte Proxy-Kontakte als eine über die Departamentos gleichmäßige Verteilung, und das Unsicherheitsband des Trackers zu 95 % erfasste die zurückgehaltene Umfrage in 3 von 6 getesteten Wellen. Jedes Modul wird nur so weit berichtet, wie seine eigene Prüfung reicht: Der Gewinn gilt als Solver-Vergleich auf synthetischer Reichweite, die Tracking-Kurve als Retrodiktion, und nichts hier behauptet, dass Analytik den verifizierten Vorsprung von 3,70 Prozentpunkten verursacht hat.

Fragestellung

Wie lässt sich mit nur acht öffentlichen Umfragen, aggregierten Zensusdaten und einem festen Budget ein landesweites Rennen verfolgen, Geld über das ganze Land verteilen und dabei ehrlich ausweisen, was tatsächlich bekannt ist? Die Rekonstruktion arbeitet mit dem, was eine Kampagne Anfang 2018 sehen konnte, und argumentiert auf ein öffentlich bekanntes Ergebnis hin: Laut den Endergebnissen des Wahlgerichts (TSJE) gewann Mario Abdo Benítez die Präsidentschaftswahl mit einem Vorsprung von 3,70 Prozentpunkten (46,43 % gegenüber 42,73 %) bei einer Wahlbeteiligung von 61,25 %. Die Vergleichseinheiten sind linearisierte Proxy-Kontakte bei festem Budget, gemessen an einer über die Departamentos (Verwaltungsbezirke) gleichmäßigen Verteilung, und für den Tracker zurückgehaltene Umfragewellen.

Daten

Die öffentlichen Eckdaten sind verifiziert: die Wahlergebnisse des TSJE, aggregierte Zensusdaten der DGEEC, die Haushaltserhebung 2018 des INE zur Nutzung von Internet und WhatsApp sowie acht veröffentlichte Tracking-Umfragen. Alle einzelnen Wählerinnen und Wähler sind synthetisch. Ein Wählerdatensatz mit 50.000 Einträgen wird per Raking (iterative Gewichtung an vorgegebene Randverteilungen) an die verifizierten Eckdaten der Departamentos angepasst (Wahlbeteiligung, Geschlecht, ländlicher Anteil, Sprache), sodass keine reale Person abgebildet ist, die Aggregate aber weiterhin stimmen.

Eingaben
Öffentliche Eckdaten
Endergebnisse des TSJE · Zensusaggregate der DGEEC · Haushaltserhebung 2018 des INE · acht veröffentlichte Tracking-Umfragen
Wählerdatensatz
50.000 synthetische Einträge, angepasst an Wahlbeteiligung, Geschlecht, ländlichen Anteil und Sprache je Departamento
Zeitfenster
14 Wochen · Seed 42 (Startwert des Zufallsgenerators)
Modul A
der synthetische Wählerdatensatz · eine Holdout-Stichprobe von 15.000 Wahlberechtigten
Modul B
2.772 Zeilen: 18 Departamentos × 11 Kanäle × 14 Wochen · ein Budgetrahmen von 6 Mio. USD
Modul C
die acht veröffentlichten Umfragen · das verifizierte Ergebnis

Jedes Artefakt trägt ein epistemisches Etikett (verifiziert, kalibriert, simuliert oder illustrativ), und das Register dieser Etiketten ist Teil des Repositorys. Das Etikett wandert mit der Zahl.

Methode

Die drei Module laufen als eine Pipeline, von A über B zu C, mit einer erzwungenen Übergabe der Allokation zwischen ihnen:

  1. Modul A, Segmentierung und Wahlbeteiligung. Die synthetischen Wahlberechtigten werden in Segmente gruppiert, und ihre Wahlbeteiligungsneigung wird geschätzt.
  2. Modul B, Allokation. Ein gemischt-ganzzahliges lineares Programm verteilt das Budget auf Departamentos, Kanäle und Wochen.
  3. Modul C, Umfrage-Tracking. An die acht Umfragen wird eine Tracking-Kurve angepasst, aus der anschließend Szenarien gerechnet werden.

Bei jedem Modul steht, was es belegen kann und was nicht.

Modul A: Segmentierung und Wahlbeteiligung

K-Means mit sechs Segmenten auf der synthetischen Population, ergänzt um eine nach Platt kalibrierte Wahlbeteiligungsneigung (Propensity). Die Segmente müssen zwei Schwellen bestehen, den Silhouettenkoeffizienten und den Bootstrap-ARI (Adjusted Rand Index über Bootstrap-Stichproben); die Neigung wird über ihren Brier-Score (den mittleren quadratischen Fehler der vorhergesagten Wahrscheinlichkeiten) auf einer Holdout-Stichprobe (zurückgehaltenen Testmenge) von 15.000 Wahlberechtigten bewertet.

  • Belegbar. Sechs Segmente, die beide Schwellen bestehen, und eine nach Platt kalibrierte Wahlbeteiligungsneigung, bewertet an 15.000 zurückgehaltenen synthetischen Wahlberechtigten.
  • Nicht belegbar. Dass das Modell generalisiert. Es erreicht zudem eine AUC (Fläche unter der ROC-Kurve) von rund 0,89, die bewusst nicht hervorgehoben wird: Die Merkmale der Neigung teilen Kalibrierungsanker mit der Zielgröße, daher misst die AUC, wie gut das Raking wiederhergestellt wurde, nicht, wie gut das Modell generalisiert.

Modul B: Allokation

Ein gemischt-ganzzahliges lineares Programm (MILP, Mixed-Integer Linear Program), formuliert in PuLP und gelöst mit CBC, über 2.772 Zeilen: 18 Departamentos × 11 Kanäle × 14 Wochen. Es rechnet unter einem Budget, Reichweitenobergrenzen, einer Wechselkursebene und einer Mindestabdeckung von 80 %, maximiert einen linearisierten Persuasion-Proxy (eine Ersatzgröße für Überzeugungswirkung) und wird über eine FastAPI-Anwendung bereitgestellt.

  • Belegbar. Ein Solver-Vergleich (ein Vergleich von Ergebnissen des Optimierers) auf synthetischer Reichweite: wie viele linearisierte Proxy-Kontakte eine Allokation gegenüber einer anderen erzeugt.
  • Nicht belegbar. Ein historischer Effekt der Kampagne von 2018.

Modul C: Umfrage-Tracking

Ein Gauß’scher Random Walk (Zufallspfad) mit House Effects (der systematischen Abweichung einzelner Umfrageinstitute), in PyMC an die acht Umfragen angepasst, danach stratifizierte Monte-Carlo-Szenarien mit standardmäßig 10.000 Ziehungen.

Retrodiktion

Eine Anpassung, die auf das bekannte Ergebnis konditioniert. Die Tracking-Kurve ist eine solche: Sie konditioniert auf das verifizierte Ergebnis und kann daher nicht als Prognose gelesen werden.

  • Belegbar. Eine Retrodiktion des Rennens durch die acht Umfragen.
  • Nicht belegbar. Eine Prognose oder Prognosefähigkeit.

Ergebnis

Jede zentrale Zahl steht in einer einzigen numerischen Referenztabelle (Source of Truth), die die kontinuierliche Integration (CI) prüft. Die Ergebnisse folgen Modul für Modul.

Segmentierung

Beide Schwellen werden bestanden, und die Wahlbeteiligungsneigung erreicht auf der Holdout-Stichprobe von 15.000 Wahlberechtigten einen Brier-Score von 0,1185.

Maß Wert Schwelle
Silhouettenkoeffizient 0,2562 0,22
Bootstrap-ARI 0,4304 0,40

Allokation

Bei einem Budgetrahmen von 6 Mio. USD erzeugt das MILP rund 54,77 % mehr linearisierte Proxy-Kontakte als eine über die Departamentos gleichmäßige Verteilung. Das ist ein Solver-Vergleich auf synthetischer Reichweite, kein historischer Effekt der Kampagne von 2018.

Tracking

Die einzige echte Out-of-Sample-Prüfung (Prüfung an Daten, die nicht in die Anpassung eingehen) wird ungeschönt berichtet. Wird der Tracker mit jeweils einer zurückgehaltenen realen Umfragewelle neu angepasst und das Wahlergebnis nachweislich ausgeschlossen, erfasste das Band zu 95 % die zurückgehaltene Umfrage in 3 von 6 getesteten Wellen, bei einem Brier-Score von 0,31 für das Vorzeichen des Vorsprungs.

Abb. 01-02-1 · Out-of-Sample-Prüfung

Das Band zu 95 % erfasste die zurückgehaltene Umfrage in 3 von 6 Wellen.

Getestet6
Erfasst3
Anzahl realer Umfragewellen auf einer Skala von 0–6, jede Welle einzeln zurückgehalten, bei ausgeschlossenem Wahlergebnis; n = 6 getestete Wellen.
Quelle: Neuanpassungen von Modul C, Projekt-Repository.

Acht Umfragen sind bei Weitem zu wenige, um Prognosefähigkeit zu beanspruchen, und das Projekt beansprucht sie nicht.

Ergebnis · Solver-Vergleich in Modul B, Neuanpassungen in Modul C

Die drei Module laufen durchgängig; der Allokationsgewinn von rund 54,77 % ist ein Solver-Vergleich auf synthetischer Reichweite, und das Band des Trackers zu 95 % erfasste die zurückgehaltene Umfrage in 3 von 6 getesteten Wellen.

Grenzen

Was diese Arbeit nicht belegt:

  • Kausaler Effekt. Ein Vergleich mit und ohne Analytik lässt sich hier nicht verifizieren.
  • Individuelles Verhalten. Die aggregierte Kalibrierung synthetischer Wahlberechtigter bedeutet nicht, dass reales Verhalten wiederhergestellt wurde.
  • Kampagnenökonomie. Modul B optimiert linearisierte Kontakte, nicht die geprüfte Buchhaltung der Kampagne 2018 oder angepasste Wirkungskurven (Response Curves).
  • Voller Maßstab. Die Pipeline rechnet mit 50.000 Wahlberechtigten über 14 Wochen; das vollständige Wählerverzeichnis mit 4,26 Mio. Personen ist eine Designreferenz.

Entscheidung

Jedes Modul wird nur so weit berichtet, wie seine eigene Prüfung reicht: die Segmente als Anpassung an synthetische Wahlberechtigte, der Allokationsgewinn als Solver-Vergleich auf synthetischer Reichweite und die Tracking-Kurve als Retrodiktion. Die Rekonstruktion behauptet nicht, dass Analytik den Vorsprung von 3,70 Prozentpunkten verursacht hat. Das öffentliche Ergebnis ist der Anker; zu zeigen, was das Modell stützen kann und was nicht, ist der Zweck der Arbeit.

Funktionsfähig: Die drei Module laufen durchgängig. Es ist eine Portfolio-Rekonstruktion, kein produktives Kampagnensystem. Das Repository enthält den Code, die Fallstudie und die Validierungsprüfungen (Gates).

Entstehung

339 Commits und 75 gemergte Pull-Requests an 34 Tagen zwischen 7. Mai 2026 und 27. Okt. 2026. Merge-Commits und Bots sind nicht gezählt; Zeiten in Wiener Zeit.

Abb. 01-02-B1 · KalenderDer dichteste Tag war der 15. Juli 2026 mit 46 Commits.
MaiJuniJuliAug.Sep.Okt.MoMiFrSo7. Mai 2026 · 48. Mai 2026 · 19. Mai 2026 · 010. Mai 2026 · 111. Mai 2026 · 1512. Mai 2026 · 4413. Mai 2026 · 1514. Mai 2026 · 1315. Mai 2026 · 1016. Mai 2026 · 017. Mai 2026 · 018. Mai 2026 · 019. Mai 2026 · 020. Mai 2026 · 221. Mai 2026 · 022. Mai 2026 · 023. Mai 2026 · 024. Mai 2026 · 025. Mai 2026 · 026. Mai 2026 · 727. Mai 2026 · 028. Mai 2026 · 029. Mai 2026 · 030. Mai 2026 · 031. Mai 2026 · 01. Juni 2026 · 02. Juni 2026 · 03. Juni 2026 · 04. Juni 2026 · 05. Juni 2026 · 06. Juni 2026 · 07. Juni 2026 · 08. Juni 2026 · 49. Juni 2026 · 110. Juni 2026 · 011. Juni 2026 · 2412. Juni 2026 · 313. Juni 2026 · 2614. Juni 2026 · 1715. Juni 2026 · 416. Juni 2026 · 1117. Juni 2026 · 218. Juni 2026 · 019. Juni 2026 · 020. Juni 2026 · 021. Juni 2026 · 022. Juni 2026 · 023. Juni 2026 · 024. Juni 2026 · 025. Juni 2026 · 026. Juni 2026 · 027. Juni 2026 · 028. Juni 2026 · 029. Juni 2026 · 030. Juni 2026 · 01. Juli 2026 · 02. Juli 2026 · 03. Juli 2026 · 04. Juli 2026 · 05. Juli 2026 · 06. Juli 2026 · 07. Juli 2026 · 08. Juli 2026 · 09. Juli 2026 · 1110. Juli 2026 · 1211. Juli 2026 · 012. Juli 2026 · 013. Juli 2026 · 1114. Juli 2026 · 2015. Juli 2026 · 4616. Juli 2026 · 217. Juli 2026 · 118. Juli 2026 · 219. Juli 2026 · 320. Juli 2026 · 021. Juli 2026 · 022. Juli 2026 · 023. Juli 2026 · 024. Juli 2026 · 025. Juli 2026 · 026. Juli 2026 · 027. Juli 2026 · 028. Juli 2026 · 029. Juli 2026 · 030. Juli 2026 · 031. Juli 2026 · 01. Aug. 2026 · 02. Aug. 2026 · 03. Aug. 2026 · 04. Aug. 2026 · 05. Aug. 2026 · 06. Aug. 2026 · 07. Aug. 2026 · 08. Aug. 2026 · 09. Aug. 2026 · 010. Aug. 2026 · 011. Aug. 2026 · 012. Aug. 2026 · 013. Aug. 2026 · 014. Aug. 2026 · 015. Aug. 2026 · 016. Aug. 2026 · 017. Aug. 2026 · 018. Aug. 2026 · 019. Aug. 2026 · 020. Aug. 2026 · 021. Aug. 2026 · 022. Aug. 2026 · 023. Aug. 2026 · 024. Aug. 2026 · 025. Aug. 2026 · 026. Aug. 2026 · 027. Aug. 2026 · 028. Aug. 2026 · 029. Aug. 2026 · 030. Aug. 2026 · 031. Aug. 2026 · 01. Sep. 2026 · 02. Sep. 2026 · 03. Sep. 2026 · 04. Sep. 2026 · 05. Sep. 2026 · 06. Sep. 2026 · 07. Sep. 2026 · 08. Sep. 2026 · 09. Sep. 2026 · 010. Sep. 2026 · 011. Sep. 2026 · 012. Sep. 2026 · 013. Sep. 2026 · 014. Sep. 2026 · 015. Sep. 2026 · 016. Sep. 2026 · 117. Sep. 2026 · 418. Sep. 2026 · 019. Sep. 2026 · 020. Sep. 2026 · 021. Sep. 2026 · 122. Sep. 2026 · 023. Sep. 2026 · 024. Sep. 2026 · 025. Sep. 2026 · 026. Sep. 2026 · 027. Sep. 2026 · 028. Sep. 2026 · 029. Sep. 2026 · 030. Sep. 2026 · 01. Okt. 2026 · 02. Okt. 2026 · 03. Okt. 2026 · 04. Okt. 2026 · 05. Okt. 2026 · 06. Okt. 2026 · 07. Okt. 2026 · 08. Okt. 2026 · 09. Okt. 2026 · 010. Okt. 2026 · 011. Okt. 2026 · 1412. Okt. 2026 · 013. Okt. 2026 · 014. Okt. 2026 · 015. Okt. 2026 · 016. Okt. 2026 · 017. Okt. 2026 · 018. Okt. 2026 · 019. Okt. 2026 · 020. Okt. 2026 · 021. Okt. 2026 · 022. Okt. 2026 · 023. Okt. 2026 · 024. Okt. 2026 · 025. Okt. 2026 · 026. Okt. 2026 · 327. Okt. 2026 · 401–234–56–910–1516–2728–46

n = 339 Commits. Farbe: Commits pro Tag, sieben Stufen von 1 bis 46; ein leeres Feld hatte keinen. Der Zeiger auf einem Feld zeigt die Zahl.
Quelle: Git-Historie von RafaelBraga-Kribitz/decision-analytics-reconstruction, Standardzweig, Stand 27. Okt. 2026.

Abb. 01-02-B2 · WocheDie dichteste Stunde der Woche: Mittwoch, 18:00–19:00 Uhr, 23 Commits.
0003060912151821MoDiMiDoFrSaSoMo 00:00 · 0Mo 01:00 · 0Mo 02:00 · 0Mo 03:00 · 0Mo 04:00 · 0Mo 05:00 · 0Mo 06:00 · 0Mo 07:00 · 0Mo 08:00 · 0Mo 09:00 · 0Mo 10:00 · 0Mo 11:00 · 1Mo 12:00 · 4Mo 13:00 · 1Mo 14:00 · 2Mo 15:00 · 4Mo 16:00 · 0Mo 17:00 · 1Mo 18:00 · 5Mo 19:00 · 8Mo 20:00 · 3Mo 21:00 · 3Mo 22:00 · 1Mo 23:00 · 5Di 00:00 · 10Di 01:00 · 10Di 02:00 · 3Di 03:00 · 3Di 04:00 · 0Di 05:00 · 0Di 06:00 · 0Di 07:00 · 0Di 08:00 · 0Di 09:00 · 1Di 10:00 · 2Di 11:00 · 1Di 12:00 · 4Di 13:00 · 2Di 14:00 · 1Di 15:00 · 5Di 16:00 · 14Di 17:00 · 5Di 18:00 · 4Di 19:00 · 2Di 20:00 · 8Di 21:00 · 5Di 22:00 · 3Di 23:00 · 4Mi 00:00 · 0Mi 01:00 · 0Mi 02:00 · 0Mi 03:00 · 0Mi 04:00 · 0Mi 05:00 · 0Mi 06:00 · 0Mi 07:00 · 1Mi 08:00 · 0Mi 09:00 · 1Mi 10:00 · 0Mi 11:00 · 3Mi 12:00 · 5Mi 13:00 · 7Mi 14:00 · 4Mi 15:00 · 0Mi 16:00 · 2Mi 17:00 · 7Mi 18:00 · 23Mi 19:00 · 13Mi 20:00 · 0Mi 21:00 · 0Mi 22:00 · 0Mi 23:00 · 0Do 00:00 · 0Do 01:00 · 0Do 02:00 · 0Do 03:00 · 0Do 04:00 · 0Do 05:00 · 0Do 06:00 · 0Do 07:00 · 0Do 08:00 · 1Do 09:00 · 5Do 10:00 · 14Do 11:00 · 9Do 12:00 · 4Do 13:00 · 0Do 14:00 · 1Do 15:00 · 2Do 16:00 · 4Do 17:00 · 8Do 18:00 · 2Do 19:00 · 3Do 20:00 · 0Do 21:00 · 0Do 22:00 · 4Do 23:00 · 1Fr 00:00 · 1Fr 01:00 · 3Fr 02:00 · 2Fr 03:00 · 0Fr 04:00 · 0Fr 05:00 · 0Fr 06:00 · 0Fr 07:00 · 0Fr 08:00 · 0Fr 09:00 · 2Fr 10:00 · 1Fr 11:00 · 1Fr 12:00 · 4Fr 13:00 · 0Fr 14:00 · 1Fr 15:00 · 0Fr 16:00 · 0Fr 17:00 · 2Fr 18:00 · 2Fr 19:00 · 1Fr 20:00 · 2Fr 21:00 · 0Fr 22:00 · 1Fr 23:00 · 4Sa 00:00 · 2Sa 01:00 · 3Sa 02:00 · 1Sa 03:00 · 6Sa 04:00 · 7Sa 05:00 · 0Sa 06:00 · 0Sa 07:00 · 0Sa 08:00 · 0Sa 09:00 · 0Sa 10:00 · 0Sa 11:00 · 0Sa 12:00 · 0Sa 13:00 · 1Sa 14:00 · 1Sa 15:00 · 0Sa 16:00 · 0Sa 17:00 · 0Sa 18:00 · 1Sa 19:00 · 4Sa 20:00 · 0Sa 21:00 · 0Sa 22:00 · 1Sa 23:00 · 1So 00:00 · 2So 01:00 · 0So 02:00 · 0So 03:00 · 0So 04:00 · 0So 05:00 · 0So 06:00 · 0So 07:00 · 2So 08:00 · 1So 09:00 · 0So 10:00 · 0So 11:00 · 0So 12:00 · 0So 13:00 · 0So 14:00 · 0So 15:00 · 7So 16:00 · 0So 17:00 · 3So 18:00 · 6So 19:00 · 2So 20:00 · 5So 21:00 · 5So 22:00 · 1So 23:00 · 101–2345–67–910–1516–23

n = 339 Commits. Farbe: Commits pro Stunde, sieben Stufen von 1 bis 23; ein leeres Feld hatte keinen. Der Zeiger auf einem Feld zeigt die Zahl.
Quelle: Git-Historie von RafaelBraga-Kribitz/decision-analytics-reconstruction, Standardzweig, Stand 27. Okt. 2026.

Abb. 01-02-B3 · Geschriebene Zeilen

34 Zeilen Tests auf 100 Zeilen Code.

Code45.123
Tests15.251
Doku35.927
CI & Setup2.686
Hinzugefügte Zeilen, n = 98.987. Daten, generierte Dateien, Abbildungen, Notebooks und Lockfiles sind nicht gezählt.
Quelle: Git-Historie von RafaelBraga-Kribitz/decision-analytics-reconstruction, Standardzweig, Stand 27. Okt. 2026.

#wahlkampagnen#segmentierung#optimierung#bayessches-tracking

Fragen zu diesem Projekt oder eine Rolle, in die diese Art von Arbeit passt?

Tastaturkürzel

Einzelne Tasten; ohne Wirkung beim Tippen in ein Feld oder mit gehaltener Cmd-, Strg- oder Alt-Taste.

0
Startseite
1 2 3 4
Arbeit, Schreiben, Werkzeuge, Über
j / k
Nächster / vorheriger Abschnitt dieser Seite
n / p
Nächstes / vorheriges Projekt oder Essay
u
Eine Ebene höher
l
English
t
Hell- oder Dunkelmodus
?
Diese Liste
Esc
Schließen