WahlBilanz.de News.Daten.Wissenswertes. Informationen zum 18. Deutschen Bundestag. Wer hat was wann und wie entschieden? Wieso?

Sag »Hallo« zu deinem Wal!

Dein Wal

Du hast den Wal auf DeinWal.de

„Hallo Wal!“ – oder so ähnlich.. Denn dein Wal ist seit gestern online! :)

Dein Wal ist dir bestimmt schonmal über den Weg gelaufen, also was soll das eigentlich?

Das „Problem“

Wen soll ich wählen? Diese Fragen stellen sich viele Leute, vor jeder Wahl. Wie kann ich herausfinden, welche Partei in meinem Sinne agiert?

Wir haben im Vorfeld viele Leute gefragt: „Wie entscheidest du, welche Partei du im September wählen wirst?“. Die Antworten waren typischer Weise „Wahlprogramme“, „Wahl-O-Mat“ oder „Medien“.

In Wahlprogrammen formulieren die Parteien ihre Ziele für die anstehende Legislaturperiode. Diese Programme sind jedoch lang und schwer zu vergleichen. Eine weitere nützliche Ressource ist der Wahl-O-Mat, der vielen Wählern bei der Entscheidungsfindung hilft. Allerdings basiert der Wahl-O-Mat auch auf Angaben der Parteien, denen du glauben musst.

Diese Kanäle beruhen im Wesentlichen auf Behauptungen und Versprechen – sowohl von Kritikern, als auch von den Parteien. Auch wenn die Aussagen auf Plausibilität geprüft werden, kann man ihnen höchstens glauben. Ob die Parteien ihre Versprechungen dann umsetzen bleibt ungewiss.

Die Lösung

Statt offene Behauptungen zu diskutieren können wir uns an die Fakten halten!

Die tatsächlichen Einstellungen der Parteien im Bundestag sind in der Regel gut dokumentiert (z.B. bundestag.de/abstimmung). Es bleibt aber eine Herausforderung, die Beschlüsse der verschiedenen Parteien zu sichten und mit der eigenen Einstellung zu vergleichen. Das ist insbesondere auch schwierig, da viele Abstimmungen mit „Antrag Die Linke“ oder „Antrag Bündnis 90/Die Grünen“ betitelt sind, und die Ergebnisse der Parteien beeinflussend daneben stehen.

Auf DeinWal.de haben wir eine Plattform entwickelt, auf der du in einem Web-Quiz vergangene Abstimmungen nachspielen kannst. In einer Auswertungen werden deine Entscheidungen dann den Entscheidungen der Parteien gegenübergestellt. Wir benutzen dabei die realen Abstimmungen der letzten Legislaturperiode und die offiziellen Abstimmungsergebnisse der Parteien.

Dein Wal ergänzt damit eine Reihe existierender Portale, wie abgeordnetenwatch.de und den Wahl-O-Mat.
Wir können uns gut vorstellen, dass DeinWal.de nicht nur Erstwählern hilft, sondern auch denjenigen, die ihre letzte Wahlentscheidung evaluieren wollen oder ihre Parteiverbundenheit in Frage stellen/validieren wollen.

Umsetzung

Auf der wahlbilanz.de Webseite haben wir alle Abstimmungen der letzten Legislaturperiode zusammengetragen, analysiert, und kategorisiert (mehr dazu bei Und Los!). In vielen Meetings und Diskussionen wurden relevante und „machbare“ Abstimmungen ausgewählt und die seitenlangen Drucksachen in möglichst einfache, verständliche Fragen übersetzt. Manche Abstimmungen waren leider einfach zu komplex und haben es nicht in deinen Wal geschafft. Aus über 200 real stattgefundenen Abstimmungen haben wir 42 Fragen ausgewählt und in 12 Themengebiete unterteilt: Familie, Arbeit, Gesundheit und Verbraucherschutz, Gesellschaft, Gentechnik in der Landwirtschaft, Bildung, Bundeswehr, Freihandelsabkommen, Energie I, Energie II, Finanzen und Inneres.

Bei der Entwicklung haben wir hohe Priorität auf Datensouveränität gelegt. Quiz und Auswertungen finden komplett im Browser statt. Im Gegensatz zu den vielen anderen Webseiten werden deine Entscheidungen nicht über das Internet verschickt oder irgendwo in einer Cloud gespeichert. Sobald du die Webseite einmal geladen hast kannst du dein Internet gern aus machen – dein Wal braucht es dann jedenfalls nicht mehr ;-)

Die Webseite ist mit Angular2 entwickelt. Angular ist ein Typescript-Framework mit dem sich clientseitige Web-Applikationen sowohl für den Desktop als auch für mobile Geräte entwickeln lassen. Das Layout haben wir mit dem W3.CSS Framework gestaltet. Das Webprojekt kompiliert zu statischem Javascript-HTML-CSS-Brei, den wir dann einfach mit einem nginx Webserver mittels Docker Container ausliefern.

Die Webseite ist übrigens Open Source: Auf github.com/wahlbilanz/DeinWal.de könnt ihr die Webseite angucken, forken, Verbesserungsvorschläge einreichen und mitmachen!

Einschränkungen

Zu schön um war zu sein – wären da nicht einige Einschränkungen.

Dein Wal funktioniert ausschließlich für Parteien die in der letzten Legislaturperiode in den Bundestag gewählt wurden. Zu Parteien wie der FDP, AFD, Piratenpartei oder Die PARTEI haben wir leider keine Abstimmungsergebnisse.

Des Weiteren gibt es zwischen CDU/CSU und SPD eine Koalitionsvertrag, an den sich beide Fraktionen halten wollen/müssen. Wenn SPD für X stimmt, muss das also nicht heißen, dass sie X bevorzugen. Vielleicht hatte X bei den Verhandlungen nur geringere Priorität als Y, und es war ihnen wichtiger, dass CDU/CSU für Y stimmen (siehe Über Fraktionsdisziplin und den Koalitionsvertrag). Und umgekehrt natürlich.. Nichtsdestotrotz haben die Parteien aber so abgestimmt wie sie haben! ;-)

Bei den Oppositionsparteien kann man sich im Gegenzug auch nicht sicher sein ob sie bei einer Abstimmung aus Überzeugung gestimmt haben oder nur der herrschenden Politik Widerstand und Ablehnung entgegenbringen wollten. Aber auch hier gilt: Abgestimmt ist abgestimmt.

Es heisst nicht umsonst Politik.

Hilf mit!

Auch wenn die Webseite schonmal ganz gut funktioniert können wir deine Hilfe immer gut gebrauchen. Egal ob du einen Bug gefunden hast oder uns nur sagst wie lange du für das Quiz gebraucht hast und ob was (un)erwartetes herausgekommen ist – dein Feedback ist sehr Willkommen! :)
Erstelle ein Ticket auf GitHub oder schick uns eine Mail.

Und natürlich weiter sagen! Liken, teilen, forken, featuren, pluseinsen, usw..

Wer schwänzt am meisten?

Na, was denkt ihr: Welche Partei schwänzt am öftesten die namentlichen Abstimmungen!?

Dank der Computer-lesbaren Abstimmungsdateien im Wahlbilanz-Projekt (siehe Erläuterungen auf Github) können wir das relativ einfach herausfinden. Also gucken wir doch mal nach! Mit einem sehr einfachen Script konnte ich folgendes Balkendiagram generieren:

Wer schwänzt am meisten?

Wer schwänzt am meisten?

Sieht cool aus, oder? Aber…
Boar was!? CDU/CDU haben weit mehr als 4000 mal geschwänzt!?!?

Wer das jetzt denkt sollte wirklich kritischer mit solchen Artikeln umgehen! Das ist doch bisher nur ein „Bild“. Wo kommen denn die Daten her?

Die Skripte

Ich will hier gar nicht so viele technische Details bringen. Um die Daten zu erzeugen habe ich ein Python-Programm geschrieben, das mit Hilfe des Abstimmungsparsers die Abstimmungen des Bundestags analysiert: Es trägt für jede Abstimmung die Zahl der nicht abgegebenen Stimmen pro Bundestagspartei zusammen und gibt das Ergbnis in JSON-Format aus. Ein zweites R-Programm liest das Resultat und generiert Grafiken.

Wer mehr darüber wissen möchte guckt sich am besten die Skripte an oder kontaktiert mich direkt.

Die Daten

Genug technischer Details – so sehen die Daten aus:

Partei Absolut geschwänzt Relativ geschwänzt Anzahl teilgenommene Abstimmungen
CDU/CSU 4635 14.94 212
SPD 3397 17.60 212
Die Linke 1925 30.08 212
Bündnis 90/Die Grünen 1189 18.87 212
Fraktionslos 13 13.00 37

Die Spalte Absolut geschwänzt ist eindeutig: Die Abgeordneten von CDU/CSU haben wirklich 4635 Stimmen bei namentlichen Abstimmungen nicht abgegebenen! Damit liegen CDU/CSU ziemlich weit vor der SPD. Am fleißigsten waren scheinbar die Abgeordneten von Bündnis 90/Die Grünen: sie haben in den letzten 4 Jahren nur 1189 Stimmen nicht abgegeben. Die Fraktionslose lassen wir für den Moment einfach außer Betracht, da sie als Fraktionslose überhaupt an weit weniger Abstimmungen teilgenommen hat.

Die kritischeren Denker unter euch sehen aber sicher schon die Ungereimtheit: Die Fraktionen sind natürlich alle unterschiedlich groß! Beispielsweise haben bei der Abstimmung zur Abschaffung der sachgrundlosen Befristung 50 Abgeordnete der CDU/CSU und 40 Abgeordnete der SPD nicht teilgenommen. In der CDU/CSU haben aber auch 259 Abgeordnete abgestimmt, während bei der SPD „nur“ 153 Abgeordnete ihre Stimme abgaben. Das heißt, die Wahlbeteiligung war hier bei der CDU/CSU mit 83,82% höher als bei der SPD mit 79,27%. Die absoluten Zahlen sind also nicht geeignet um eine Solche Frage zu beantworten.

Also relativ gesehen…?

Aus der Tabelle oben könnt ihr die relativen Ergebnisse schon ablesen. Da sich die Werte in einer Grafik aber leichter vergleichen lassen:

Wer schwänzt am meisten?

Wer schwänzt am meisten? Also relativ gesehen, jetzt…

Ja, also relativ gesehen hatte Einstein wohl recht: Da sieht die Sache plötzlich ganz anders aus.

Verglichen mit der Zahl an abgegeben Stimmen fallen die 4635 nicht abgegebenen Stimmen der CDU/CSU fast gar nicht mehr auf. Nun sehen die Abgeordneten der CDU/CSU mit im Schnitt nur 14.94% versäumten Stimmen sogar richtig fleißig aus! Knapp gefolgt von der SPD, die im Durchschnitt 17.60% der Stimmen nicht wahr genommen hat.

Aber was ist denn da mit den Linken los? Im Bild oben noch ganz unscheinbar, ergibt sich nun ein völlig anderes Bild. Mit durchschnittlich 30.08% nicht abgegebenen Stimmen sticht Die Linke nun ziemlich heraus.

Disclaimer

Dieser Artikel soll niemanden an den Pranger stellen. Ich möchte eher zur Aufmerksamkeit aufrufen. Wie oben gesehen können Daten immer verschieden interpretiert werden können – je nachdem was man gerade aussagen will. Gerade bei der schnelllebigen Medienlandschaft sollte man umso kritischer sein und nicht alles, was vorbeigescrollt kommt, glauben. Und ich wollte natürlich die Daten in dieser Webseite und dem zugehörigen Projekt auf GitHub bewerben.. :P

Dieses Thema ist ehrlich gesagt auch vollkommener Quatsch! Wenn ein Abgeordneter bei einer Abstimmung nicht dabei ist, ist das nicht zwangsweise auf „Faulheit“ zurückzuführen (^^). Vielleicht eher im Gegenteil: Wer bei unkontroversen/klaren Abstimmungen im Plenum rumsitzt arbeitet nicht an wichtigen anderen Aufgaben. Abgeordnete sind sicher auch viel unterwegs und können oft aus beruflichen oder gesundheitlichen Günden nicht an den Abstimmungen teilnehmen.

Ich werde euch jetzt auch nicht sagen wer der Abgeordnete ist, der am häufigsten geschwänzt hat! Das müsst ihr schon selbst herausfinden! Aber die Daten auf dieser Webseite werden euch natürlich unterstützen ;-)
Wer es herausgefunden hat kann uns gern eine Mail schreiben!

Über Fraktionsdisziplin und den Koalitionsvertrag

Übersicht über das Abstimmungsverhalten der einzelnen Parteien in der Legislatuerperiode 18 des Deutschen Bundestages

Abbildung 1: Abstimmungsverhalten in der letzten Legislaturperiode

Für das Projekt DeinWal.de haben wir alle namentlichen Abstimmungen im Bundestag analysiert. Welche Abstimmungen gab es überhaupt? Welche Partei hat wie abgestimmt? Kann man die Abstimmungen irgendwie gruppieren oder kategorisieren? usw…

Um uns die Analyse einfacher zu machen wurden die Daten natürlich auch visualisiert. Eines der Ergebnisse seht ihr in Abbildung 1. Diese Art der Visualisierung benutzen wir oft in der Bioinformatik um Expressionsmuster von Genen in verschiedenen Patienten zu untersuchen. Die Grafik zeigt eine Heatmap und enthält sehr viele Informationen, daher ein kurzer Exkurs:

Wie liest man die Heatmap?

Die Heatmap kann man sich als eine sehr große Tabelle vorstellen. Jede Zeile der Tabelle steht für eine Abstimmung; am Ende der Zeile findet ihr auch die Abstimmungs-ID:

Erklärung: Heatmap-Zeile

Abbildung 2: Jede Zeile in der Heatmap steht fuer eine Abstimmung

In Abbildung 2 geht es also um die Abstimmung mit der ID 018-036-03. Diese ID setzt sich übrigens aus Legislaturperiode, Bundestagssitzung und Abstimmungsnummer zusammen. Im Beispiel handelt es sich also um die Abstimmung Nummer 3 in Sitzung 36 des 18. Deutschen Bundestags! Dabei ging es um Gentechnikfreiheit im Pflanzenbau (siehe wahlbilanz.de/abstimmungen/018-036-03/).

Jede Spalte in der Heatmap repräsentiert eine Partei. Das sind, von links nach rechts: DIE LINKE, Bündnis 90/Die Grünen, die fraktionslose Steinbach, SPD und CDU/CSU. In Abbildung 2 sind die Zellen von DIE LINKE und Bündnis 90/Die Grünen also gelb, die Zelle der Fraktionslosen ist grau, und die Zellen der SPD und der CDU/CSU sind rot.

Die Farbe einer Zelle entspricht dabei dem Abstimmungsergebnis der jeweiligen Partei bei einer bestimmten Abstimmung. Es gibt drei Grundfarben:

  • Gelb bedeutet „JA“.
  • Rot bedeutet „Nein“.
  • Grau bedeutet, dass keine Daten vorliegen, z.B. weil sich die Partei bei dieser Abstimmung komplett enthalten hat oder noch nicht existierte (Frau Steinbach war bis zum 15. Januar 2017 Mitlgied der CDU).

Da die Parteien nicht immer geschlossen abstimmen gibt es zudem verschiedene Orange-Töne zwischen rot und gelb:

Erklärung: Heatmap-Zellen und Verhältnis

Abbildung 3: Die Farben einer Zelle entsprechen dem Abstimmungsverhältnis von Nein (rot) bis Ja (gelb)

In Abbildung 3 waren sich die Parteien in den hinteren Spalten also bei der Abstimmung 018-237-05 fast einig und haben alle eindeutig mit Ja (Gelb) gestimmt während die Partei in der ersten Spalte geschlossen mit Nein (Rot) stimmte. Bei den Abstimmungen 018-200-01, 018-198-03 und 018-134-03 war das Ergebnis aber nicht so klar:

  • Die Partei in der ersten Spalte hat beispielsweise immer dagegen gestimmt (alles Rot).
  • Zur Partei in der zweiten Spalte gibt es gar keine Daten (Grau).
  • Die Partei in der dritten Spalte zeigt deutlich Uneinigkeiten. Während sie bei 018-200-01 noch knapp dafür war (helleres Orange) hat sie bei 018-198-03 und 018-134-03 knapp dagegen gestimmt (dunkleres Orange).
  • Bei der vierten Partei in der rechten Spalte zeigen sich auch Uneinigkeiten, die Entscheidungen fielen aber eindeutig mit Ja aus (sehr helles Orange).

Das Abschätzen der Farben funktioniert natürlich nur grob. Daher gibt es in jeder Spalte zwei Linien, die den Wert ein bisschen genauer abbilden. Die gestrichelte Linie in der Mitte jeder Spalte gibt jeweils an wo 50% ist (Ja=Nein wäre). Die durchgezogene Linie gibt Aufschluss über das genaue Abstimmungsverhältnis. Ist sie ganz links in der Spalte bedeutet das 100% dagegen, ist sie ganz rechts heißt das, dass die Partei 100% dafür war. Wenn wir uns jetzt nochmal Abbildung 3 angucken, sehen wir, dass die durchgezogene Linie der dritten Partei bei Abstimmung 018-200-01 knapp rechts von der gestrichelten Linie ist (knappe Mehrheit für Ja) aber bei den Abstimmungen 018-198-03 und 018-134-03 knapp links von der gestrichelten Linie ist (also knappe Mehrheit für Nein).

Zu guter Letzt gibt es oben und auf der linken Seite je ein Dendrogram. An dem Dendrogram kann man die Ähnlichkeiten der Parteien/Abstimmungsergebnisse ablesen. Je kürzer der Pfad zwischen zwei Spalten/Zeilen, desto ähnlicher sind sie sich.

Mit einem Klick auf Abbildung 1 könnt ihr die Heatmap in höherer Auflösung als PDF herunter laden!

Was sieht man in der Heatmap?

Übersicht über das Abstimmungsverhalten der einzelnen Parteien in der Legislatuerperiode 18 des Deutschen Bundestages

Abbildung 1: Abstimmungsverhalten in der letzten Legislaturperiode

Für eine leichtere Lesbarkeit habe ich die Heatmap aus Abbildung 1 hier unten einfach nochmal eingebunden.

Zunächst fällt vielleicht auf, das die Spalte der Fraktionslosen größtenteils Grau ist. Das ist leicht zu erklären: Frau Steinbach ist erst am 15. Januar 2017 aus der CDU ausgetreten, d.h. vor der Abstimmung 018-212-01 gab es keine Fraktionslose und damit auch keine Daten für diese Spalte. Danach hat Frau Steinbach aber scheinbar weiter im Sinne der CDU/CSU abgestimmt, bis auf Abstimmung 018-237-13.

Daher sind die Fraktionslose und CDU/CSU auch sehr ähnlich, wie man im Dendrogram oben sieht. Nur der Weg zwischen CDU/CSU und SPD ist kürzer. Was wiederrum bedeutet, dass diese beiden Parteien oft gleich abgestimmt haben. Das ist sicher dem Koalitionsvertrag geschuldet, den die Fraktionen zu Beginn der Legislatuerperiode ausgehandelt haben und an den sie sich jetzt halten (müssen).

DIE LINKE und Bündnis 90/Die Grünen sind sich nicht so ähnlich; sie haben wahrscheinlich auch nicht solch einen Vertrag miteinander. Sie sind sich dennoch ähnlicher als, beispielsweise, DIE LINKE und SPD. Während es bei Bündnis 90/Die Grünen noch leicht fällt Abstimmungsergebnisse im Sinne der großen Koalition zu finden (~50), ist die Schnittmenge zwischen DIE LINKE und große Koalition eher überschaubar (~10).

Es gibt in der gesamten Heatmap auffallend wenig Orange! Das bedeutet, dass die Fraktionen in der Regel immer geschlossen abgestimmt haben. Dieses Prinzip nennt man Fraktionsdisziplin oder Fraktionszwang. Ein Faktor für diesen Effekt ist wahrscheinlich der großen Druck und der Wettbewerb um Listenplätze innerhalb einer Partei. Der Effekt entsteht aber sicher auch, weil natürlich nicht jeder Abgeordnete ein Sachverständiger für alle behandelten Themen ist. Er muss sich auf die Meinung seiner Parteikollegen aus speziellen Gremien und Ausschüssen verlassen. So kommt es nur selten vor, dass ein Abgeordneter gegen die Meinung seiner Partei stimmt.

Methode

Für die Grafik habe ich ein kleines Script in der Programmiersprache R geschrieben, dass die Daten mit dem heatmap.2 Tool aus der gplots Bibliothek analysiert und in einer Heatmap visualisert. Die Daten kommen aus der Datei summary.table, die wir automatisch aus den Abstimmungsergebnissen generieren (siehe integrate_new_results.py). Jeder Eintrag in der Tabelle entspricht dem Wert von Ja geteilt durch Ja+NeinEnthaltungen werden also nicht berücksichtigt. Der größte Teil des Scripts beschäftigt sich mit der Umbenennung der Parteinamen in eine gute, Menschen-lesbare Form:

library(gplots)
library(RColorBrewer)

# read the data
votes <- read.table (file="../../abstimmungsliste/summary.table", header=TRUE, sep="\t")

# coloumn 1 is just the id -- we're interested in coloumns 2-6
m=as.matrix (votes[,2:6])
# but we can use the ids as rownames :)
rownames(m)<-votes[,1]


# rename the coloumns -> proper party names
colnames(m)<-sapply (colnames(m), function (x) {
	if (startsWith (x, "grue"))
	{
		"Bündnis 90/Die Grünen"
	}
	else if (startsWith (x, "cdu"))
	{
		"CDU/CSU"
	}
	else if (startsWith (x, "die"))
	{
		"DIE LINKE"
	}
	else if (startsWith (x, "frak"))
	{
		"Fraktionslos"
	}
	else if (startsWith (x, "spd"))
	{
		"SPD"
	}
	else
	{
		x
	}
})

m[m==-1]=NA

# cluster and plot the data using gplot's heatmap.2 tool
pdf ("abstimmungscluster.pdf", height=20)
colfunc <- colorRampPalette(c("#FF0000FF", "#FFFF00FF"))
heatmap.2 (m, tracecol=1, cexCol=.9, margins=c(9,4),
           na.rm=TRUE, col=colfunc(15), na.color="#DDDDDDFF")
dev.off ()

Und Los!

Hurra! WahlBilanz.de ist endlich online :)

Die Website ist als „Nebenprodukt“ von einem anderen Projekt entstanden: Für DeinWal.de mussten wir jede Menge Daten und Dokumente von verschiedenen Webseiten zu Abstimmungen im Bundestag zusammenführen, kategorisieren und taggen. Das war natürlich mit sehr viel manueller Arbeit verbunden. Die meisten Daten sind im Zuge von Open Data und E-Government Initiativen zwar online und frei zugänglich aber häufig schlecht verlinkt und stehen manchmal in sehr komischen Formaten zur Verfügung. Zum Beispiel gibt es auf bundestag.de zwar eine hübsche Seite, die die Abstimmung zur Einführung eines Mindestlohns visualisiert, die rohen Abstimmungsdaten sind dort aber nicht verlinkt. Die Rohdaten muss man sich von einer anderen Seite laden. Für die Zuordnung von Daten zu Abstimmungen ist auch einiges an manuellem Aufwand nötig. Und ist endlich der passende Datensatz gefunden, sind die Abstimmungsergebnisse in einer PDF-Datei gefangen (originales Dokument):

Abstimmungsdaten als PDF...

Abstimmungsdaten als PDF…

Alternativ stehen die Daten auch im proprietären Excel-Format zur Verfügung. Beides nichts womit Free-Software-Fans arbeiten möchten… ;-)

Wir haben die Daten also über Wochen mühsam gesammelt, integriert, konvertiert, getaggt … usw. Wir sind aber bestimmt nicht die einzigen, die vor dem Problem stehen! Damit sich aber nicht jeder andere die gleiche Arbeit machen muss entschieden wir uns alles auf eine Website zu stellen.

So entstand die Idee zu WahlBilanz.de.

Hier findet ihr alle Abstimmungen der aktuellen Legislaturperiode im Bundestag. Zu jeder Abstimmung gibt es noch eine Detail-Seite, die mehr Informationen und Links zu anderen Seiten sammelt und bereit stellt.

Jeder ist eingeladen die Seite mitzugestalten und zu verbessern. Sende uns deine Analysen und Verbesserungsvorschläge als E-Mail oder fork’ das Projekt und reiche Pull Requests ein!

Wer Lust hat die Seite aktiv mitzugestalten kann auch gern dem WahlBilanz.de-Team beitreten :)