Modellrechnungen Wahlrechtsreform Bundestag 2023

Autor:in
Zugehörigkeit
Jan Lorenz

Professor of Social Data Science, Constructor University Bremen

Veröffentlichungsdatum

1. Februar 2023

Zusammenfassung
Diese Modellrechnungen berechnen hypothetische Wahlergebnisse für den Gesetzentwurf der Fraktionen SPD, BÜNDNIS 90/DIE GRÜNEN und FDP zur Reform des Bundestagswahlrechts aufgrund der Wahlergebnisse von 2021. Nach diesem Vorschlag werden nur 598 Bundestagsmandate zugeteilt. Überhangmandate können also nicht mehr zugeteilt werden. Das heißt, dass einige Wahlkreismandate nicht zugeteilt werden können, wenn die Partei nicht genügend Mandatsansprüche durch ihre Hauptstimmen (derzeit Zweitstimmen) erreicht hat. Zusammengefasst gibt es folgende Erkenntnisse: (1) In 35 Wahlkreisen würden die Wahlkreissieger_innen nicht in den Bundestag einziehen (gekappt). (2) Die gekappten Wahlkreissieger_innen hätten ihre Wahlkreise mit relativer Mehrheit von durchschnittlich 28.7% und maximal 35.1% gewonnen, also mit riesigem Abstand zu einer absoluten Mehrheit. (3) In den meisten dieser Wahlkreise (bis auf fünf) würden allerdings einer oder mehrere Wahlkreiskandidat_innen anderer Parteien die über die Landeslisten ihrer Parteien im Bundestag sein. (4) Der Anteil der Abgeordneten mit einem Wahlkreismandate würde mit 44.1% deutlich höher sein, als derzeit mit 40.6%. (5) Der Frauenanteil wäre minimal niedriger und der Altersdurchschnitt minimal höher. (6) Für die CSU (und prinzipiell auch für andere Parteien) gibt es eine Strategie ohne Landesliste mit unabhängigen CSU-empfohlenen Wahlkreiskandidat_innen ihre derzeitigen 45 Abgeordneten wieder in den Bundestag zu bekommen. In dem kleineren Bundestag mit dann 598 Sitzen würden sie damit ihren Mandatsanteil substantiell von 5.69% auf 7.53% erhöhen. Diese Strategie ist allerdings riskant. Der R-Code zur Berechnung der Ergebnisse ist in diesem Dokument und auf GitHub verfügbar.
Code
library(tidyverse) # Data Wrangling and Visualization
library(gt) # Tabellen
library(sf) # Working with Shapefiles
library(DT) # interaktive Tabellen
library(plotly) # Interactive Karte
library(tidymodels) # Hypothesis test mit resampling
proz <- function(x, digits = 1) paste0(round(100*x, digits = digits),"%") # Formattierungs-Hilfe

1 Daten und grundsätzliche Berechnungen

Der Bundeswahlleiter1 stellt einen Datensatz mit den Anzahlen aller Erst- und Zweitstimmen für jeden der 299 Wahlkreise und jeden Wahlvorschlag bereit.2 Wahlvorschläge für die Erststimme sind Wahlkreiskandidat_innen von Parteien und Unabhängige, Wahlvorschläge für die Zweitstimme sind die Landeslisten die Parteien und Wählervereinigungen in den Bundesländern aufstellen. Die Wahlvorschläge inklusive der Name der Kandidat_innen und einiger demographischer Informationen wurden ebenfalls bereitgestellt.3 Außerdem gibt es Shapefiles der für die Wahl 2021 gültigen Wahlkreise.

Die drei Datensätze (Wahlergebnis, Wahlvorschläge, Wahlkreis-Shapefiles) werden verwendet und eine Funktion zur Verteilung von \(N\) Sitzen an Parteien \(k\) Wahlvorschläge mit Stimmenanzahlen \(m_1,\dots,m_k\) zu verteilen. Im Folgenden verwenden wir immer das Saint-Laguë-Verfahren verwenden, wie im Wahlgesetz vorgesehen.4

Code
# Wahlkreise
# Download Shapefiles "Geometrie der Wahlkreise in geografischen Koordinaten (Angabe in Länge- und Breitengrad, Datum WGS84)" generalisiert von https://www.bundeswahlleiter.de/bundestagswahlen/2021/wahlkreiseinteilung/downloads.html
# unzip("data/btw21_geometrie_wahlkreise_geo_shp.zip", exdir = "data")
#
# Wahlergebnisse
# Download "Tabelle: Ergebnisse nach Wahlkreisen (flacher Aufbau)" -> btw21_kerg2.csv von 
# https://www.bundeswahlleiter.de/bundestagswahlen/2021/ergebnisse.html

# Shapefiles der Wahlkreise
shp <- read_sf("data/Geometrie_Wahlkreise_20DBT_geo.shp")
# Bundesländernamen
bl <- shp |> st_drop_geometry() |> group_by(LAND_NR, LAND_NAME) |> 
  summarise(Wahlkreise_Land = n(), .groups = "drop")

# Namen der wichtigsten Parteien
WichtigsteParteien <- c("AfD", "CDU", "DIE LINKE", "FDP", "FREIE WÄHLER", "GRÜNE", "SPD", "CSU")

# Bundestagswahlergebnisse 2021
bt <- read_csv2("~/Documents/data/bundeswahlleiter/btw21_kerg2.csv", skip = 9, show_col_types = FALSE) |> 
  filter(Gruppenart != "System-Gruppe", Gebietsart == "Wahlkreis") |> # Nur Wahlkreisergebnisse (kein Land oder Bund)
  mutate(Gebietsnummer = as.numeric(Gebietsnummer)) |> 
  left_join(bl, by = c("UegGebietsnummer" = "LAND_NR")) |> # Bundesländernamen dazu
  select(Gebietsnummer, Gebietsname, LAND_NAME, Gruppenname, Stimme, Anzahl, everything())

# Wahlkreisnamen
Wahlkreisnamen <- bt |> filter(Gebietsart == "Wahlkreis") |> select(Gebietsnummer, Gebietsname) |> unique()
# Harmonisieren von Wahlkreisnamen in shp
shp <- shp |> left_join(Wahlkreisnamen, by = c("WKR_NR" = "Gebietsnummer")) |> 
  select(Gebietsnummer = WKR_NR, Gebietsname, everything(),  -WKR_NAME)

# Kandidatenlisten, Daten nicht mehr beim Bundeswahlleiter verfügbar siehe 
# https://www.bundeswahlleiter.de/bundestagswahlen/2021/wahlbewerber.html (§ 86 Absatz 3 Bundeswahlordnung)
k <- read_csv2("~/Documents/data/bundeswahlleiter/btw21_kandidaturen_utf8.csv", skip = 8, guess_max = 10000) |> 
  mutate(Namenszusatz = replace_na(Namenszusatz,"")) |> 
  select(Gebietsnummer, Gebietsname, Gruppenname, everything())
# Da die Daten zu den Kandidatinnen aus rechtlichen Gründen nicht mehr beim Bundeswahlleiter downloadbar sind, werden sie nicht in des Repositorium gestellt. Bitte beim Bundeswahlleiter oder beim Autor anfragen. 

# Liste der Gewählten von https://www.bundeswahlleiter.de/bundestagswahlen/2021/gewaehlte.html
mdb <- read_csv2("data/btw21_gewaehlte-fortschreibung_utf8.csv", skip = 8) 
gew <- mdb |> filter(WahltagGewaehlt == "X") # Die Analyse stützt sich auf die 736 am Wahltag gewählten. Im Datensatz sind 747 Personen.
mdb_aktuell <- mdb |> filter(is.na(VerlustMitgliedschaftGrund))
# Es gab also wohl bereits 11 Wechsel

# Funktion zur Berechnung vom N Mandaten proportional zum Vektor Stimmen nach der Divisormethode 
# mit Zuteilung nach Höchstzahlen
zuteilen_nach_hoechstzahlen <- function(N, Stimmen, divisorfolge="saintlague", ersterdivisor=NA, output="Mandate") {
    Stimmen <- Stimmen/sum(Stimmen)
    divisoren <- switch(divisorfolge, 
        saintlague= (1:N)-0.5,
        hillhuntington= sqrt((0:(N-1)) * (1:N)), 
        dhondt=1:N, 
        adams=0:N)
    if (is.numeric(ersterdivisor)) {divisoren[1] = ersterdivisor}
    hoechstzahlen <- purrr::as_vector(purrr::map(Stimmen, function(x) x / divisoren))
    partei_labels <- rep(1:length(Stimmen), each=N)
    mandate <- partei_labels[order(hoechstzahlen, decreasing = TRUE)[1:N]]
    switch(output, 
        Mandate =   tabulate(mandate, nbins = length(Stimmen)), # Hauptoutput für Mandatsverteilung
        Letztmandat = 1:length(Stimmen)==mandate[N],
        Zweitletztmandat = 1:length(Stimmen)==mandate[N-1],
        Hoechstzahl_Letztmandat = hoechstzahlen[order(hoechstzahlen, decreasing = TRUE)][N],
        Hoechstzahl_Zweitletztmandat = hoechstzahlen[order(hoechstzahlen, decreasing = TRUE)][N-1]
    )
}

1.1 Ranking im Wahlkreis und Ranking der Sieger_innen im Land

Für die verschiedenen Zuteilungssystem berechnen wir zunächst zwei Kandidatenrankings:

  1. Für jedem Wahlkreis eine Rangliste der Wahlkreiskandidat_innen mit den meisten Erststimmen. (Der oder die erste dieser Rangliste ist der oder Wahlkreissieger_in.)
  2. Für jedes Bundesland eine Rangliste der Wahlkreissieger_innen einer Partei nach den jeweiligen Erststimmen-Anteilen (Prozent) im jeweils eigenen Wahlkreis. (Dies ist die Rangliste nach der zum Beispiel die Wahlkreiskandidat_innen bei Überhang einer Landesliste ausgewählt werden können.)

Abbildung 1 zeigt beide Rankings für alle Wahlkreise und Kandidat_innen als interaktive Tabelle mit Filter- und Suchmöglichkeit.

Code
# Alle Wahlkreise und Wahlkreiskandidaten mit 
# a. Wahlkreisrang zwischen den Kandidat_innen eines Wahlkreises mit Sieger_in nach Anzahl Stimmen mit Rang 1
# b. Rang nach Prozent im Wahlkreis unter den Kandidaten einer Partei im Bundesland
Kandidatenrankings <- bt |> 
  filter(Stimme == 1, !is.na(Anzahl)) |> 
  arrange(Gebietsnummer, desc(Anzahl)) |> 
  group_by(Gebietsnummer) |> 
  mutate(Wahlkreisrang = 1:n()) |> # Erststimmen Ranking im Wahlkreis
  arrange(UegGebietsnummer, Gruppenname, Wahlkreisrang, desc(Prozent)) |> 
  group_by(UegGebietsnummer, Gruppenname, Wahlkreisrang) |> 
  mutate(WKSiegerrang = ifelse(Wahlkreisrang == 1, 1:n(), NA)) |> # Wahlkreissiegerrang pro Partei und Land
  arrange(UegGebietsnummer, Gruppenname, desc(Prozent)) |> 
  group_by(UegGebietsnummer, Gruppenname) |> 
  mutate(Land_Partei_Rang = 1:n()) |>  # Erstimmenanteil Ranking der Wahlkreiskandidaten pro Partei und Land
  left_join(k |> select(-Gebietsname), 
            by = c("Gebietsnummer", "Gruppenname", "Wahlart", "Wahltag", "Gebietsart")) |> 
  ungroup() |> 
  arrange(Wahlkreisrang) |> 
  select(LAND_NAME, Gruppenname, Nachname, Vornamen, Gebietsnummer, Gebietsname, Land_Partei_Rang, 
         Wahlkreisrang, Prozent, Anzahl, everything())
# Interactive Tabelle, Notiz: Namen für Unabhängige werden nicht korrekt zugeordnet
Kandidatenrankings |> mutate(Name = paste0(Namenszusatz, " ", Nachname,", ",Vornamen), 
                             Wahlkreis = paste(str_pad(Gebietsnummer, width = 3, pad = 0), Gebietsname),
                             Prozent = round(Prozent, digits = 2)) |> 
  select(Land = LAND_NAME, Partei = Gruppenname, Name, 
         LP = WKSiegerrang, Prozent, 
         Wahlkreis, WK = Wahlkreisrang, Anzahl) |> 
  DT::datatable(options = 
                  list(language = 
                         list(url = "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json")),
                rownames = FALSE, 
                caption = "LP = Rang Wahlkreissieger_innen pro Land und Partei, WK = Wahlkreisrang", 
                filter = "top")

Abbildung 1: Sitzansprüche der Parteien im Bundestag unter Beachtung von Sperrklausel, Grundmandatsklausel und nationaler Minderheit (SSW)

1.2 Sitzansprüche im Bund nach dem Grundsatz der Verhältniswahl

Im deutschen System der personalisierten Verhältniswahl werden zunächst die Wahlkreissieger_innen in allen 299 Wahlkreisen bestimmt. Dann wird zusammen gezählt wieviele Wahlkreissieger_innen jeder bundesweit vertretene Wahlvorschlag (in der Praxis die Parteien) hat um festzustellen, welche Vorschlage von der 5%-Sperrklausel befreit werden (hier, DIE LINKE). So dann werden die Zweitstimmen der Wahlvorschläge auf Bundesebene zusammengezählt und deren Stimmenanteile in Prozent errechnet. Für die Berechnung der Mandatsanteile werden nur Wahlvorschläge berücksichtig, die entweder einen Stimmanteil von mehr als 5% haben, oder die mehr als drei Wahlkreissieger_innen vorweisen können, oder aus einer anerkannten nationalen Minderheit stammen (hier, der Südschleswigsche Wählerverband, SSW). Aus den Stimmanteilen werden die bundesweiten Mandatsansprüche für die 598 Bundestagssitze mit dem Saint-Laguë-Verfahren berechnet.

Tabelle 1 zeigt die bundesweiten Mandatsansprüche und zusätzlich die Gesamtsumme der insgesamt errungenen Wahlkreissiege.

Code
# Anzahl der Wahlkreissieger pro Partei und Land
Wahlkreissieger_Parteien_Land <- Kandidatenrankings |> 
  filter(Wahlkreisrang == 1) |> 
  group_by(Gruppenname, UegGebietsnummer, LAND_NAME) |> 
  summarize(Wahlkreismandate = n(), .groups = "drop")
# Anzahl der Wahlkreissieger bundesweit pro Partei, notwendig um Grundmandatsklausel zu prüfen
Wahlkreissieger_Parteien_Bund <- Wahlkreissieger_Parteien_Land |> 
  group_by(Gruppenname) |> 
  summarize(Wahlkreismandate = sum(Wahlkreismandate), .groups = "drop")
# Mandate für Parteien im Bundestag unter Beachtung von Sperrklausel, Grundmandatsklausel und nationaler Minderheit (SSW)
Parteien_Proporz_Bund <- bt |> filter(Stimme == 2, !is.na(Anzahl)) |> 
  group_by(Gruppenname) |> 
  summarize(Anzahl = sum(Anzahl)) |> 
  mutate(Stimmenanteil = Anzahl/sum(Anzahl)) |> 
  left_join(Wahlkreissieger_Parteien_Bund, by = "Gruppenname") |> 
  mutate(Wahlkreismandate = replace_na(Wahlkreismandate, 0)) |> 
  filter(Stimmenanteil >= 0.05 | # mehr als 5% bundesweit
           Wahlkreismandate >= 3 | # oder mehr als drei Grundmandate
           Gruppenname == "SSW") |> # oder SSW (nationale Minderheit)
  mutate(Mandate = zuteilen_nach_hoechstzahlen(598, Anzahl))
# Darstellung Parteien Bundesweit
Parteien_Proporz_Bund |> mutate(Stimmenanteil = paste(round(Stimmenanteil*100,digits = 2),"%"),
                                Mandatsanteil = paste(round(Mandate/sum(Mandate)*100,digits = 2),"%")) |> 
  select(Partei = Gruppenname, Zweitstimmen = Anzahl, Stimmenanteil, Mandate, Mandatsanteil,Wahlkreismandate) |> 
  arrange(desc(Mandate)) |> 
  gt(rowname_col = "Partei") |> 
  tab_style(style = list(cell_text(color = "red", weight = "bold")),
    locations = cells_body(columns = Wahlkreismandate, rows = Partei == "CSU"))
Tabelle 1: Sitzansprüche der Parteien im Bundestag unter Beachtung von Sperrklausel, Grundmandatsklausel und nationaler Minderheit (SSW)
Zweitstimmen Stimmenanteil Mandate Mandatsanteil Wahlkreismandate
SPD 11955434 25.74 % 168 28.09 % 121
CDU 8775471 18.9 % 124 20.74 % 98
GRÜNE 6852206 14.75 % 96 16.05 % 16
FDP 5319952 11.46 % 75 12.54 % 0
AfD 4803902 10.34 % 68 11.37 % 16
CSU 2402827 5.17 % 34 5.69 % 45
DIE LINKE 2270906 4.89 % 32 5.35 % 3
SSW 55578 0.12 % 1 0.17 % 0

In Tabelle 1 in rot markiert zeigt sich das grundsätzliche Problem welches im aktuellen Parteiensystem durch das Wahlverhalten entsteht: Die CSU hat mit ihrem Stimmenanteil nur einen Anspruch auf 34 Sitze im Bundestag, es gewinnen allerdings in den 46 Wahlkreisen in Bayern 45 Kandidat_innen der CSU.

Im aktuellen Wahlsystemen werden alle diese 45 Wahlkreise zugeteilt, ein Überhang von elf Mandaten. Beim vor 2013 gültigen Bundestagswahlrecht wären diese elf Mandate einfach zusätzlich zugeteilt worden und der Bundestag um auf 598+11=609 Mandate erhöht worden. Dies hätte die dafür aber nicht nur um diese elf Mandate vergrößert. Dies hätte den Sitzanteil der CSU von 34/598=5.69% auf 45/609=7.39% vergrößert.5 Die anderen Parteien hätten dementsprechend niedriger Anteile und gegebenenfalls könnte dies die Kanzlermehrheit so beeinflussen, dass hinter der Kanzlermehrheit keine Mehrheit der relevanten Zweitstimmen stünde.

Im aktuellen Bundestagswahlrecht wird diese Verzerrung allerdings weitgehend verhindert, in dem der Bundestag noch deutlicher vergrößert wird. Für alle über drei Überhangmandate hinausgehenden Überhangmandate erhalten die anderen Parteien Ausgleichsmandate. Da die CSU aber nur ca. 5.7% der Mandate im Bundestag zustehen um ca. das 17.5-fache der verbleibenden acht Überhangmandate also um ca. 140 Mandate vergrößert werden. So kommt es über den Daumen gerechnet zu den 736 anstatt 598 Sitzen im aktuellen Bundestag.

Ohne die drei unausgeglichenen Überhangmandate wäre die BUndestagsgröße dementsprechen bei ca. 790. Die drei derzeit geltenden unausgeglichenen Überhangmandaten führen zu einer leichten Überrepräsentation der CSU mit derzeit 45/736 = 6.11% der Bundestagssitze anstatt des proportionalen Anspruch von 5.67%. Diese Überrepräsentation ist allerdings glücklicherweise nicht relevant für die Kanzlermehrheit.

1.3 Detaillierte Sitzansprüche mit Oberverteilung an Parteien und Unterverteilung an Landeslisten

Die obige Rechnung ist allerdings vereinfacht. Die Verrechnung der Sitzansprüche mit den Wahlkreissieger_innen geschieht nämlich nicht auf Bundesebene, sondern in jedem Bundesland einzeln.6

Im Sitzzuteilungsverfahren gibt es nach der ersten Stufe der Oberverteilung auf Bundesebene eine zweite Stufe: Die Unterverteilung der Sitze einer jeweiligen Partei an die Landeslisten in den Bundesländern. Dies erfolgt nach der Anzahl der Zweitstimmen die die jeweilige Landesliste in ihrem Bundeland erhalten hat. Tabelle 2 zeigt die Sitzverteilungen an die Landeslisten der Bundesländer für alle Parteien mit Sitzansprüchen (M) und dazu die im jeweiligen Bundesland errungenen Wahlkreissiege (WK). Die Verteilung der Sitze die eine Partei in einem Bundesland zustehen, erfolgt zuerst an all ihre Wahlkreissieger in dem Bundesland und danach an die Kandidat_innen auf deren Landeslist. In rot markiert sind alle Landeslisten in denen zu viele Wahlkreissiege errungen wurden. Die Tabelle zeigt die Sitzansprüche ohne eine Vergrößerung des Bundestages durch Ausgleichsmandate. Die Sitzansprüche (M) summieren sich also pro Partei zu den bundesweiten Sitzansprüchen auf und insgesamt zur vorgesehenen Gesamtgröße von 598.

Code
# Verteilung der Mandate auf Landeslisten
Landeslisten_Proporz <- Parteien_Proporz_Bund |> select(Gruppenname, Mandate) |> 
  left_join(bt |> filter(Stimme == 2, !is.na(Anzahl)), by = "Gruppenname") |> 
  group_by(Gruppenname, UegGebietsnummer, LAND_NAME) |>   
  summarize(Anzahl = sum(Anzahl), Mandate = max(Mandate), .groups = "drop") |>
  group_by(Gruppenname) |> 
  mutate(Mandate = zuteilen_nach_hoechstzahlen(max(Mandate), Anzahl)) |> 
  left_join(Wahlkreissieger_Parteien_Land, c("Gruppenname", "UegGebietsnummer", "LAND_NAME")) |> 
  mutate(Wahlkreismandate = replace_na(Wahlkreismandate, 0)) |> 
  ungroup()

Landeslisten_Proporz |> 
  select(LAND_NAME, Gruppenname, M=Mandate, WK=Wahlkreismandate) |>
  pivot_wider(names_from = Gruppenname, values_from = c(M, WK), 
              names_vary = "slowest",
              names_glue = "{Gruppenname}_{.value}") |> 
  mutate(across(-LAND_NAME, .fns = ~ replace_na(.x, 0))) |>
  select(-FDP_WK, -SSW_WK) |> 
  gt(rowname_col = "LAND_NAME") |> 
  tab_spanner_delim(delim = "_") |> 
  tab_style(style = list(cell_text(color = "red", weight = "bold")),
    locations = cells_body(columns = AfD_WK, rows = AfD_WK > AfD_M)) |> 
  tab_style(style = list(cell_text(color = "red", weight = "bold")),
    locations = cells_body(columns = CDU_WK, rows = CDU_WK > CDU_M)) |> 
  tab_style(style = list(cell_text(color = "red", weight = "bold")),
    locations = cells_body(columns = CSU_WK, rows = CSU_WK > CSU_M)) |> 
  tab_style(style = list(cell_text(color = "red", weight = "bold")),
    locations = cells_body(columns = SPD_WK, rows = SPD_WK > SPD_M))
Tabelle 2: Verteilung der Mandate auf Landeslisten (M) und die Anzahl der Wahlkreissiege der Partei im Bundesland (WK)
AfD CDU CSU DIE LINKE FDP GRÜNE SPD SSW
M WK M WK M WK M WK M M WK M WK M
Schleswig-Holstein 2 0 6 2 0 0 1 0 3 5 1 7 8 1
Hamburg 1 0 2 0 0 0 1 0 2 4 2 4 4 0
Niedersachsen 5 0 15 8 0 0 2 0 7 10 0 21 22 0
Bremen 0 0 1 0 0 0 0 0 0 1 0 1 2 0
Nordrhein-Westfalen 10 0 36 30 0 0 5 0 16 22 4 41 30 0
Hessen 4 0 11 7 0 0 2 0 6 7 1 13 14 0
Rheinland-Pfalz 3 0 8 7 0 0 1 0 4 4 0 10 8 0
Baden-Württemberg 8 0 21 33 0 0 3 0 12 14 4 18 1 0
Bayern 10 0 0 0 34 45 3 0 11 15 1 19 0 0
Saarland 1 0 2 0 0 0 1 0 1 0 0 3 4 0
Berlin 2 0 4 3 0 0 3 2 2 6 3 6 4 0
Brandenburg 4 0 3 0 0 0 2 0 2 2 0 6 10 0
Mecklenburg-Vorpommern 2 0 2 0 0 0 1 0 1 1 0 4 6 0
Sachsen 9 10 6 4 0 0 3 1 4 3 0 7 1 0
Sachsen-Anhalt 3 2 4 3 0 0 2 0 2 1 0 4 4 0
Thüringen 4 4 3 1 0 0 2 0 2 1 0 4 3 0

2 Gesetzentwurf der Fraktionen SPD, BÜNDNIS 90/DIE GRÜNEN und FDP

Der Gesetzentwurf https://dserver.bundestag.de/btd/20/053/2005370.pdf löst das Problem der Vergrößerung des Bundestages indem die Mandatsansprüche nach der Oberverteilung auf Parteien und Unterverteilung auf deren Landeslisten (siehe Spalten M in @tbl_Landesproporz) strikt eingehalten werden muss. Notgedrungen könnten dann nicht alle Wahlkreissiege in Mandate umgewandelt werden.7
Tabelle 3 zeigt aufsummiert wie viele Wahlkreissiege für welche Partei in welchem Bundesland nicht zugeteilt werden könnten.

Code
Landeslisten_Proporz |> mutate(Kappung = Wahlkreismandate - Mandate) |>
  filter(Kappung > 0) |> 
  arrange(desc(Kappung)) |> 
  select(LAND_NAME, Partei = Gruppenname, Kappung) |> 
  gt(rowname_col = "LAND_NAME")
Tabelle 3: Notwendige Kappung von Wahlkreissiegen zur Einhaltung der Bundestagsgröße von 598.
Partei Kappung
Baden-Württemberg CDU 12
Bayern CSU 11
Brandenburg SPD 4
Mecklenburg-Vorpommern SPD 2
Sachsen AfD 1
Schleswig-Holstein SPD 1
Niedersachsen SPD 1
Bremen SPD 1
Hessen SPD 1
Saarland SPD 1

Abbildung 2 listet alle 598 Abgeordneten die nach dieser Regelung jetzt im Bundestag wären.

Code
Mandatszahlen <- Landeslisten_Proporz |> 
  mutate(Listenmandate = pmax(Mandate - Wahlkreismandate, 0),
         Wahlkreismandate = pmin(Wahlkreismandate, Mandate)) |> 
  select(-Anzahl, -Mandate) |> 
  pivot_longer(c(Listenmandate, Wahlkreismandate), 
               names_to = "Mandatart", values_to = "Anzahl_Mandate") 
Wahlkreismandate <- Mandatszahlen |> filter(Mandatart == "Wahlkreismandate") |> 
  left_join(Kandidatenrankings, by = c("Gruppenname", "UegGebietsnummer", "LAND_NAME")) |> 
  filter(WKSiegerrang <= Anzahl_Mandate)
Listenmandate <- Mandatszahlen |> filter(Mandatart == "Listenmandate") |> 
  left_join(k |> filter(Kennzeichen == "Landesliste"), c("Gruppenname", "LAND_NAME" = "Gebietsname")) |> 
  left_join(Kandidatenrankings |> select(Nachname,Vornamen,Namenszusatz, Wahlkreisrang), 
            by = c("Namenszusatz", "Nachname", "Vornamen")) |> 
  anti_join(Wahlkreismandate |> select(Nachname,Vornamen,Namenszusatz),by = c("Namenszusatz", "Nachname", "Vornamen")) |> 
  arrange(LAND_NAME, Gruppenname,Listenplatz) |> 
  group_by(LAND_NAME, Gruppenname) |> 
  mutate(Listenplatz_neu = 1:n()) |> 
  filter(Listenplatz_neu <= Anzahl_Mandate)

Bundestag_Ampel <- bind_rows(Wahlkreismandate, Listenmandate) |> 
  mutate(Mandatart = ifelse(Mandatart == "Wahlkreismandate", "Wahlkreis", "Landesliste"),
         Wahlkreis = paste(str_pad(Gebietsnummer, width = 3, pad = 0), Gebietsname),
         Wahlkreis = ifelse(VerknGebietsart == "Wahlkreis" & Mandatart == "Landesliste", 
                            paste(str_pad(VerknGebietsnummer, width = 3, pad = 0), VerknGebietsname),
                            Wahlkreis)
  )
Bundestag_Ampel |> mutate(Name = paste0(Namenszusatz, " ", Nachname,", ",Vornamen)) |> 
  select(Mandatart, Land = LAND_NAME, Partei = Gruppenname, Name, 
         Wahlkreis, WK=Wahlkreisrang) |> 
  DT::datatable(options = 
                  list(language = 
                         list(url = "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json")),
                rownames = FALSE, 
                caption = "", 
                filter = "top")

Abbildung 2: Die 598 gewählten Abgeordenten des Bundestages 2021, bei der von den Regierungsfraktionen vorgeschlagenen Regelung mit der Kappung von Wahlkreismandaten

2.1 Wahlkreise deren Sieger_innen gekappt würden

Abbildung 3 listet die 35 Wahlkreise in denen der oder die Wahlkreissieger_in kein Wahlkreismandat erhalten würde. Naturgemäß können die gekappten Kandidat_innen auch kein Mandat über die dazugehörige Landesliste erwerben, da ja gerade bei dieser Landesliste alle Plätze durch Wahlkreissieger_innen eingenommen werden.

Code
Kein_Direktmandat <- Kandidatenrankings |> filter(Wahlkreisrang == 1) |> 
  anti_join(Bundestag_Ampel |> select(Vornamen, Nachname, Gruppenname), by = c("Gruppenname", "Nachname", "Vornamen"))

Kein_Direktmandat |> 
  mutate(Name = paste0(Namenszusatz, " ", Nachname,", ",Vornamen), 
         Wahlkreis = paste(str_pad(Gebietsnummer, width = 3, pad = 0), Gebietsname),
         Prozent = round(Prozent, digits = 2)) |> 
  select(Wahlkreis, Land = LAND_NAME, Name, Partei = Gruppenname, Prozent) |> 
  DT::datatable(options = 
                  list(language = 
                         list(url = "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json")),
                rownames = FALSE, 
                caption = "", 
                filter = "top")

Abbildung 3: Die 35 Wahlkreise in denen das Direktmandat gekappt würde

Insgesamt müssten bei Einhaltung der Richtgröße 736-598 = 138 Mandate wegfallen. Es fallen also neben den 35 nicht vergebenen Wahlkreismandaten vor allem 103 Ausgleichsmandate von den Landeslisten weg. Interessanterweise stiege durch die Reform sogar der Anteil der direkt gewählten von derzeit 299/736 = 40.6% auf 264/598 = 44.1%.

Die Erststimmenanteil der gekappten Wahlkreissieger_innen beträgt im Durchschnitt 28.7, der maximale 35.1. Diese Statistik zeigt deutlich, dass alle gekappten Wahlkreissieger_innen sehr weit von einer absoluten Mehrheit entfernt sind.8

2.2 Doppelkandidaturen im Wahlkreis und auf der Landesliste

Abbildung 2 zeigt für alle Inhaber_innen eines Listenmandats in der Spalte Wahlkreis an, ob diese auch in einem Wahlkreis kandidiert haben und auf welchem Rang sie dabei gelandet sind. Insgesamt wären nur 14 Abgeordnete im Bundestag, die nicht in einem Wahlkreis kandidiert haben. In welchen Wahlkreisen die erfolgreichen Listenkandidaten_innen kandidiert haben, ist natürlich eher zufällig. Statistisch lässt sich daraus für die Wahlkreise berechnen, wie viele der lokalen Kandidat_innen letztlich entweder als Sieger_in, oder über Landeslisten in eingezogen wären. Abbildung 4 listet alle Wahlkreise und die Anzahl der Abgeordneten, die in diesem Wahlkreis kandidiert haben. Außerdem werden die Parteien der Abgeordneten sowie deren Wahlkreisrang angegeben.

Code
Wahlkreisstatistik <- Bundestag_Ampel |> 
  mutate(WK_Info = ifelse(is.na(Wahlkreisrang), "", paste0(Wahlkreisrang,". ",Gruppenname))) |> 
  group_by(Wahlkreis) |> 
  summarize(Anzahl_Abgeordnete = n(), Abgeordnete = paste(sort(WK_Info), collapse = ", ")) |>
  mutate(Sieger_präsent = word(Abgeordnete, 1) == "1") |> 
  right_join(shp |> mutate(Wahlkreis = paste(str_pad(Gebietsnummer, width = 3, pad = 0), Gebietsname)), 
             by = "Wahlkreis") |> 
  mutate(Anzahl_Abgeordnete = replace_na(Anzahl_Abgeordnete,0),
         Abgeordnete = replace_na(Abgeordnete,""))
Wahlkreisstatistik |> 
  select(Wahlkreis, Abgeordnete, Anzahl = Anzahl_Abgeordnete,  Land = LAND_NAME) |> 
  arrange(Anzahl) |> 
  DT::datatable(options = 
                  list(language = 
                         list(url = "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json")),
                rownames = FALSE, 
                caption = "", 
                filter = "top")

Abbildung 4: Alle Wahlkreise und die Anzahl der Abgeordneten, die in diesem Wahlkreis kandidiert haben sowie eine Auflistung deren Parteien und deren Wahlkreisrang

Abbildung 4 zeigt das letztlich nur in fünf Wahlkreisen gar kein Vertreter aus dem Wahlkreis im Bundestag wäre. In 30 Wahlkreisen wäre unter den Vertreter_innen allerdings nicht der oder die Wahlkreissieger_in. Viele Wahlkreise würden allerdings sogar (wie bisher auch) durch mehr als eine Person vertreten: 130 durch zwei, 53 durch drei und 18 sogar durch Abgeordnete von verschiedenen Parteien. Manche dieser zusätzlichen Abgeordneten aus dem Wahlkreis, die über die Landesliste eingezogen sind, haben allerdings einen sehr niedrigen Rang im Wahlkreisergebnis.9 Abbildung 5 zeigt die (interaktive) Wahlkreiskarte mit farblicher Markierung der Anzahl der Abgeordneten, die aus diesem Wahlkreis kommen.

Code
WKmap <- Wahlkreisstatistik |> st_sf() |> 
  mutate(Anzahl = factor(Anzahl_Abgeordnete), 
         WK = Wahlkreis) |> 
  ggplot(aes(fill = Anzahl, text = WK,label = Abgeordnete)) + geom_sf() + 
  scale_fill_manual(values=c("#ff7b7b","#b3cde0","#6497b1","#005b96","#03396c")) +
  theme_void() + 
  theme(legend.title=element_blank())
ggplotly(WKmap, tooltip = c("WK", "Abgeordnete"), 
         height = 600)

Abbildung 5: Wahlkreiskarte für die Bundestagwahl 2021 neuberechnet nach dem Vorschlag der Regierungsfraktionen.

Die Karte in Abbildung 5 zeigt eindrucksvoll, wie stark Landeslisten und Wahlkreiskandidat_innen durch die Nominierungen der Parteien durch Doppelkandidaturen verknüpft sind. Von der Kappung der Sieger_innen betroffene Wahlkreise haben dadurch dennoch häufig eine Vertretung aus dem Wahlkreis über eine oder sogar mehrere Landeslisten anderer Parteien.

Andersherum können wir analysieren, welche Wahlkreissieger_innen auch über ihre Plätze auf der Landesliste in den Bundestag eingezogen wären, wenn alle Sitze ihrer Partei im jeweiligen Bundesland an die Landesliste vergeben worden wären. Diese Berechnung ist rein hypothetisch gibt aber einen Eindruck welche Wahlkreissieger auf guten, schlechten oder gar keinen Listenplätzen sitzen. Abbildung 6 zeigt alle Abgeordneten als interaktive Tabelle.

Code
WKSieg <- Kandidatenrankings |> filter(Wahlkreisrang == 1) |>
  left_join(Kein_Direktmandat |> select(Nachname, Vornamen, Gebietsnummer) |> mutate(gekappt = "X"),
            by = c("Nachname", "Vornamen", "Gebietsnummer")) |> 
  left_join(Landeslisten_Proporz |> select(-Anzahl), 
            by = c("LAND_NAME", "Gruppenname", "UegGebietsnummer")) |> 
  mutate(Listenplatz = VerknListenplatz, 
         Name = paste0(Namenszusatz, " ", Nachname,", ",Vornamen), 
         Wahlkreis = paste(str_pad(Gebietsnummer, width = 3, pad = 0), Gebietsname), 
         gekappt = replace_na(gekappt,""), 
         Liste = if_else(Listenplatz <= Mandate, "Einzug", 
                         false = "verpasst", missing = "kein Platz")) |> 
  select(Wahlkreis, Partei = Gruppenname, Name, Liste, Platz = Listenplatz, 
         AnspruchLL = Mandate, Land = LAND_NAME, gekappt) |> 
  arrange(Wahlkreis)

WKSieg |> 
    DT::datatable(options = 
                  list(language = 
                         list(url = "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json")),
                rownames = FALSE, 
                caption = "", 
                filter = "top")

Abbildung 6: Wahlkreissieger_innen und ihr Listenplatz auf der Landesliste ihrer Partei. Die Spalte Liste gibt an, ob die Person bei reiner Zuteilung nach Liste in den Bundestag eingezogen wäre, ihn verpasst hätte oder gar keinen Listenplatz hatte. Die Spalte Platz gibt den Listenplatz an und die Spalte AnspruchLL den Sitzanspruch der jeweiligen Landesliste (vgl. Tabelle 2).

Tabelle 4 zeigt in einer Auszählung, dass mehr als die Hälfte der Wahlkreissieger_innen gute Listenplätze hatten, aber auch ein nicht unerheblicher Teil gar keinen Listenplatz. Diese sind als allein auf den Erfolg im Wahlkreis angewiesen.

Code
WKSieg |> count(Liste, name = "Anzahl") |> 
  mutate(Prozent = round(Anzahl/sum(Anzahl)*100, digits = 1)) |> 
  arrange(desc(Prozent)) |> knitr::kable()
Tabelle 4: Anzahl der Wahlkreissieger_innen, die bei reiner Listenplatzvergabe in den Bundestag eingezogen wären, sowie derjenigen deren Listenplätze nicht gereicht hätte und derjenigen die gar keinen Listenplatz hatten. (Vgl. Abbildung 6)
Liste Anzahl Prozent
Einzug 161 53.8
kein Platz 70 23.4
verpasst 68 22.7

2.3 Frauenanteil und Altersdurchschnitt

Der Frauenanteil im großen Bundestag am Tag der Wahl betrug 34.8% und der Altersdurchschnitt10 war 47.6 Jahre.11 Im kleineren Bundestag nach dem Vorschlag der Regierungsfraktionen wäre der Frauenanteil 33.8% und der Altersdurchschnitt 48 Jahre.

In Anhang befindet sich eine Analyse zur statistischen Signifikanz dieser Änderungen. Es ist sehr plausibel, das die Änderungen des Frauenanteils eher zufällig ist. Die Änderung des Altersdurch

3 Modellrechung: CSU Wahlkreiskandidaten als Unabhängige

Im Wahlkreis ist schon immer auch die Kandidatur von Unabhängigen möglich. Zudem können Wahlkreiskandidat_innen von Parteien gewinnen, die an der 5% gescheitert sind. In der Geschichte der Bundesrepublik haben es Unabhängige noch nie geschafft, ein Mandat zu gewinnen, und auch der Mandatsgewinn von Parteien unter der 5%-Hürde ist selten. Naturgemäß können diese Mandate nicht mit Landeslisten verrechnet werden. Die Regelungen dazu im Wahlrecht – im aktuellem wie auch nach dem Vorschlag der Regierungsfraktionen – sind die folgenden (BWahlG §6):

  • Die unabhängigen Wahlkreissieger_innen ziehen in jedem Fall in den Bundestag ein und ihre Sitze werden nicht proportional zum Stimmenanteil vergeben. Die Regelgröße von 598 Sitzen wird dementsprechend um den Anteil der unabhängigen Wahlkreissieger_innen vermindert.
  • Alle Zweitstimmen von Wähler_innen, die ihre Erststimme an einen erfolgreichen Unabhängigen gegeben haben werden für die proportionale Mandatesvergabe nach Landeslisten nicht gezählt.12

Diese Regelungen sind relativ unbekannt, weil die Fälle selten sind. Insbesondere die zweite Regelung erscheint auf den ersten Blick unfair, ist aber essentiell um einen unfairen Anreiz zur unabhängigen Kandidatur von Parteimitgliedern zu vermeiden. Am Beispiel der CSU lässt sich dies erläutern: Träten alle CSU Wahlkreiskandidat_innen als Unabhängige an und würde so abschneiden wie 2021, dann gäbe 45 unabhängige Wahlkreissieger_innen und nur noch 553 Sitze würden proportional von zum Zweitstimmenanteil vergeben werden. Davon würde die CSU wohl in etwa 31 erhalten und sie hätte somit insgesamt (45 + 31)/598 = 12.71% der Bundestagssitze bei einem Stimmenanteil von 5.17%. Andere Parteien könnten allerdings auch so vorgehen und ein Teil der Wahl könnte den Charakter eines Grabenwahlsystems annehmen. Diese Möglichkeit eines doppelten Stimmengewichts durch Schein-Unabhängige wird durch den Wegfall der Zweitstimme bei Erfolg des oder der gewählten Wahlkreiskandidat_in deutlich weniger attraktiv. Dennoch gibt es die Möglichkeit und für die CSU könnte sie gegebenenfalls trotzdem attraktiv sein. Um eine Modellrechnung durchzuführen muss der Anteil der wegfallenden Zweitstimmen geschätzt werden. Der einfachste Ansatz ist hier davon auszugehen, dass alle Zweitstimmen der CSU in den Wahlkreisen, in denen sie durch ihre Schein-Unabhängigen gewinnen würden, wegfallen würden. Der Einfachheit halber gehen wir für die Modellrechnung einfach davon ausgehen, dass die CSU gar keine Landesliste hätte. Tabelle 5 zeigt diese Modellrechnung.13

Code
U <- nrow(Kandidatenrankings |> filter(Gruppenname == "CSU", Wahlkreisrang == 1))
Parteien_Proporz_Bund_ohne_CSU <- bt |> 
  filter(Stimme == 2, !is.na(Anzahl), Gruppenname != "CSU") |> 
  group_by(Gruppenname) |> 
  summarize(Anzahl = sum(Anzahl)) |> 
  mutate(Stimmenanteil = Anzahl/sum(Anzahl)) |> 
  left_join(Wahlkreissieger_Parteien_Bund, by = "Gruppenname") |> 
  filter(Stimmenanteil >= 0.05 | Wahlkreismandate >= 3 | Gruppenname == "SSW") |> 
  mutate(Mandate = zuteilen_nach_hoechstzahlen(598 - U, Anzahl), 
         Wahlkreismandate = replace_na(Wahlkreismandate, 0)) |> 
  arrange(desc(Mandate)) |> 
  add_row(Gruppenname = "CSU Unabh.", Anzahl = 0, Stimmenanteil = 0, Mandate = U, Wahlkreismandate = U) |> 
  mutate(Mandatsanteil = 100*Mandate/sum(Mandate))
Parteien_Proporz_Bund_ohne_CSU |> mutate(Stimmenanteil = paste(round(Stimmenanteil*100,digits = 2),"%"),
                                Mandatsanteil = paste(round(Mandatsanteil, digits = 2),"%")) |> 
  select(Partei = Gruppenname, Zweitstimmen = Anzahl, Stimmenanteil, Mandate, Mandatsanteil, Wahlkreismandate) |> 
  gt(rowname_col = "Partei")
Tabelle 5: Modellrechnung nach dem Vorschlag der Regierungsfraktionen wenn alle CSU Kandidat_innen als Unabhängige angetreten wären und die CSU keine Landesliste eingereicht hätte
Zweitstimmen Stimmenanteil Mandate Mandatsanteil Wahlkreismandate
SPD 11955434 27.15 % 165 27.59 % 121
CDU 8775471 19.93 % 121 20.23 % 98
GRÜNE 6852206 15.56 % 95 15.89 % 16
FDP 5319952 12.08 % 74 12.37 % 0
AfD 4803902 10.91 % 66 11.04 % 16
DIE LINKE 2270906 5.16 % 31 5.18 % 3
SSW 55578 0.13 % 1 0.17 % 0
CSU Unabh. 0 0 % 45 7.53 % 45

Im Vergleich zu Tabelle 1 zeigt Tabelle 5, dass die CSU ihren Mandatsanteil durch diese Strategie von 5.69% auf 7.53% erhöhen könnte.

Diese Strategie ist allerdings aus folgenden Gründen nicht ohne Risiko:

  • Die CSU-Unabhängigen müssten womöglich Unterschriften sammeln und könnten wahrscheinlich nicht wie bisher von der etablierten Partei CSU vorgeschlagen werden. In jedem Fall würden diese Kandidat_innen ohne das Label CSU und als Unabhängige ganz unten auf dem Wahlzettel auftauchen.
  • Es gäbe keine Absicherung durch eine Landesliste.
  • In den Wahlkreisen könnten sich Bündnisse gegen die CSU bilden (z.B. SPD und Grüne), die wohl häufig gute Chancen hätten den Wahlkreis gegen die CSU zu gewinnen.14

Gäbe es eine Abhilfe gegen diese Strategie? Schließlich könnte man einwenden, dass Unabhängige in dem von den Regierungsfraktionen vorgeschlagen System gegenüber Wahlkreiskandidat_innen bevorteilt sind. Eine theoretische Möglichkeit wäre zu fordern, dass auch Unabhängige eine Hauptstimmendeckung mit ihren Wahlkreisstimmen vorweisen müssten. Da bei erfolgreichen Wahlkreiskandidat_innen, eh die Hauptstimmen ungültig wären, könnte man stattdessen diese als Hauptstimmen zählen und prüfen, ob diese bei der proportionalen Stimmverteilung ein Mandat bekommen würden. Natürlich müssten die Unabhängigen bei dieser Prüfung von der 5%-Hürde befreit werden. Die Modellrechnung zeigt, dass alle bis auf ein Mandat der unabhängigen CSU Kandidat_innen auch eine Hauptstimmendeckung hätten. Dieser Regelung vermindert das Problem also nicht. Das liegt daran, dass die Saint-Laguë-Methode das erste Mandat schon bei einem recht geringen Stimmenanteil zuteilt. Wichtiger ist aber noch, dass solch ein Vorschlag sich wohl nicht sinnvoll mit dem Zweistimmenwahlrecht kombinieren lässt, wie in der Begründung des Gesetzentwurfs der Regierungsfraktionen https://dserver.bundestag.de/btd/20/053/2005370.pdf gut dargelegt ist. Ein Wahlrechtsentwurf mit Hauptstimmendeckung von Unabhängigen liegt hier vor http://deponie.bplaced.net/wahlen/btw-reform-ampel/bwahlg-entwurf.html.

Code
btnew <- bt |> mutate(Gruppenname = paste0(Gruppenname, ifelse(Gruppenname=="CSU",Gebietsnummer,"")))
Wahlkreissieger <- btnew |> 
  filter(Stimme == 1, !is.na(Anzahl)) |> 
  group_by(Gebietsnummer) |> 
  filter(Anzahl == max(Anzahl))
Wahlkreissieger_U <- Wahlkreissieger |> filter(Gruppenname == "CSU")
U <- nrow(Wahlkreissieger_U)
Wahlkreissieger_Parteien_Land <- Wahlkreissieger |> 
  group_by(Gruppenname, UegGebietsnummer) |> 
  summarize(Wahlkreismandate = n(), .groups = "drop")
Wahlkreissieger_Parteien_Bund <- Wahlkreissieger |> 
  group_by(Gruppenname) |> 
  summarize(Wahlkreismandate = n(), .groups = "drop")
Parteien_Bund <- btnew |> 
  filter(Stimme == 2, !is.na(Anzahl)) |> 
  group_by(Gruppenname) |> 
  summarize(Anzahl = sum(Anzahl)) |> 
  mutate(Stimmenanteil = Anzahl/sum(Anzahl)) |> 
  left_join(Wahlkreissieger_Parteien_Bund, by = "Gruppenname") |> 
  mutate(Relevant = Stimmenanteil >= 0.05 | Wahlkreismandate >= 3 | 
           Gruppenname == "SSW" | str_count(Gruppenname,"CSU") == 1)
Proporz_Bund <- Parteien_Bund |> filter(Relevant) |> 
  mutate(Mandate = zuteilen_nach_hoechstzahlen(598, Anzahl))

Sollte der Gesetzentwurf verabschiedet werden, wird es wohl tatsächlich eine Unabhängigen-Strategie für die CSU geben, die ihren Mandatanteil deutliche erhöhen könnte. Sollten ihre Wahlkreiskandidat_innen auch unabhängig und mit Empfehlung der CSU ihre Erfolge wiederholen können, könnte sie alle 45 Abgeordneten wieder in den Bundestag bringen und die anderen Parteien müssten sich die restlichen 553 Mandate ohne Ausgleichsmandate proportional untereinander aufteilen. Ob die CSU dies allerdings wirklich machen würde ist bei den Risiken nicht wirklich abzuschätzen.

4 Fazit des Autors

Insgesamt bietet der Gesetzentwurf der Regierungsfraktionen einen guten kleinen Eingriff, um die Bundestagsgröße wirksam auf die Richtgröße von 598 zu beschränken. Die Argumentationen zu schwindenden Legitimation und lokaler Repräsentation sind größten Teils weit übertrieben oder sogar andersrum. Die Möglichkeit der CSU-empfohlenen Unabhängigen Wahlkreiskandidat_innen ist interessant und kann aufzeigen, wie wichtig die Wahlkreiskandidat_innen wirklich für Parteien und Wähler_innen sind. Sollte sich das Parteiensystem und das Wahlverhalten nicht wieder zu zwei bis drei Parteien und vielen Wahlkreisen mit absoluter Mehrheit zurückentwickeln, ist eine sinnvolle Verknüpfung von lokaler Wahl bei bundesweiter Verhältniswahl wohl nur mit Mehrmandatswahlkreisen möglich.

Einen konkreten Vorschlag zu einer Verhältniswahl mit Mehrmandatswahlkreisen dazu hat Mehr Demokratie e.V. ausgearbeitet https://www.mehr-demokratie.de/fileadmin/pdf/Positionen17_Reform_Bundestagswahlrecht.pdf. Mehr Informationen dazu hier https://www.mehr-demokratie.de/themen/wahlrecht/wahlrecht-12816 und in Modellrechnungen dazu in dieser Präsentation https://docs.google.com/presentation/d/1gJP0ot42HLT8fggriPSeAEJlEOJYmWkgXbKo84o_jUY. Der Vorschlag integriert die Idee der Ersatzstimme (oder auch Dualwahl http://dualwahl.de).

5 Anhang

Code
# Dies ist eine Berechnung der Signifikanz mit der Bootstrapping-Methode sowohl für das Alter wie auch für das Geschlecht

set.seed(198703) # To make results fixed and cachable
experiment <- tibble(id = 1:100000) |> 
  group_by(id) |> 
  mutate(Alter_replace = 2021 - mean(sample(gew$Geburtsjahr, size = 598, replace = TRUE)), 
         Alter_noreplace = 2021 - mean(sample(gew$Geburtsjahr, size = 598, replace = FALSE))) |>
  ungroup() |> 
  summarize(p_replace = mean(Alter_replace >= 2021 - mean(Bundestag_Ampel$Geburtsjahr)), 
            p_noreplace = mean(Alter_noreplace >= 2021 - mean(Bundestag_Ampel$Geburtsjahr)))
experiment_Geschlecht <- tibble(id = 1:100000) |> 
  group_by(id) |> 
  mutate(g_replace = mean(sample(gew$Geschlecht=="w", size = 598, replace = TRUE)), 
         g_noreplace = mean(sample(gew$Geschlecht=="w", size = 598, replace = FALSE))) |>
  ungroup() |> 
  summarize(p_replace = mean(g_replace <= mean(Bundestag_Ampel$Geschlecht == "w")), 
            p_noreplace = mean(g_noreplace <= mean(Bundestag_Ampel$Geschlecht == "w")))

5.1 Die Änderung des Frauenanteils ist nicht statistisch signifikant

Code
Geschlecht_orig <- gew |> 
  select(Geschlecht, Partei = Gruppenname, Mandatart = Gebietsart) |> 
  mutate(Mandatart = str_replace(Mandatart, "Land", "Landesliste")) |> 
  count(Geschlecht, Partei, Mandatart, name = "n_orig") |> 
  group_by(Mandatart,Partei)  |> 
  mutate(Anteil_orig = n_orig/sum(n_orig))
Geschlecht <- Bundestag_Ampel |> rename(Partei = Gruppenname) |> 
  count(Geschlecht, Partei, Mandatart) |> 
  group_by(Partei,Mandatart) |> 
  mutate(Anteil = n/sum(n)) |> 
  ungroup() |> 
  arrange(desc(Mandatart),Partei) |> 
  left_join(Geschlecht_orig, by = c("Geschlecht", "Mandatart", "Partei")) |> 
  group_by(Partei,Mandatart) |> 
  mutate(p_value = pbinom(n, size = sum(n), prob = Anteil_orig))

Geschlecht_alle <- Geschlecht |> 
  group_by(Geschlecht) |> 
  summarize(n = sum(n), n_orig = sum(n_orig)) |> 
  mutate(Anteil = n/sum(n),
         Anteil_orig = n_orig/sum(n_orig)) |> 
  ungroup() |> 
  mutate(p_value = pbinom(n, size = sum(n), prob = Anteil_orig)) |> 
  arrange(Geschlecht) |> filter(Geschlecht=="w")

Der Frauenanteil im Bundestag direkt nach der Wahl 2021 betrug 256/736 = 34.8%. Der Anteil nach dem Vorschlag der Regierungsfraktionen wäre mit 202/598 = 33.8% leicht niedriger, aber ist dieser Unterschied statistisch signifikant? Der Begriff der statistischen Signifikanz wird oft falsch verstanden. Ein kleiner Unterschied kann signifikant sein, wenn es recht unwahrscheinlich ist, dass er durch Zufall entstanden ist. Anders herum kann auch ein größerer Unterschied nicht signifikant sein, wenn die zufällige Entstehung plausibel ist, typischerweise, wenn die Stichprobe recht klein ist. Die Annahme, dass der Unterschied durch Zufall entstanden ist, wird Null-Hypothese genannt. In unserem Setting ist die Nullhypothese, dass im kleineren Bundestag Frauen mit der gleichen Wahrscheinlichkeit wie im realen großen Bundestag vertreten sind, also mit 34.8%. Wir würden also 34.8% mal 598 also gerundet 208. Real sind es nur 202, aber ist dieser Wert oder ein niedrigerer unwahrscheinlich? Diese Wahrscheinlichkeit kann ausgerechnet werden und wird p-Wert genannt.15 Die Wahrscheinlichkeit, dass unter dieser Annahme 202 oder weniger Frauen in einem Bundestag der Größe 598 wären beträgt 32% und ist damit nicht unplausibel.16

Die folgenden Tabellen vergleichen die Frauenanteile im realen großen und im kleineren Bundestag gruppiert nach der Mandatart (Wahlkreis oder Landesliste), der Partei und von beidem zusammen. Dabei wird jeweils die Berechnung des p-Wertes wiederholt. Mit H0 wird dabei der jeweilige Frauenanteil im realen großen Bundestag benannt.

Code
format_Tabelle <- function(G) G  |> 
  mutate(p_value = paste0(round(100*pbinom(n, size = sum(n), prob = Anteil_orig), digits=1),"%"),
         `Prozent klein` = paste0(round(100*Anteil, digits=1),"%"),
         `Prozent groß (H0)` = paste0(round(100*Anteil_orig, digits=1),"%")) |> 
  filter(Geschlecht == "w") |> 
  select(starts_with("Mandatart"), starts_with("Partei"), 
         `Frauen klein` = n, `Prozent klein`, `Frauen groß` = n_orig,
         `Prozent groß (H0)`, `p-Wert` = p_value) |> knitr::kable()

Geschlecht |> 
  group_by(Geschlecht, Mandatart) |> 
  summarize(n = sum(n), n_orig = sum(n_orig), .groups = "drop") |> 
  group_by(Mandatart) |> 
  mutate(Anteil = n/sum(n),
         Anteil_orig = n_orig/sum(n_orig)) |> 
  ungroup() |> 
  arrange(Mandatart) |> 
  group_by(Mandatart) |> format_Tabelle()
Mandatart Frauen klein Prozent klein Frauen groß Prozent groß (H0) p-Wert
Landesliste 134 40.1% 178 40.7% 43.3%
Wahlkreis 68 25.8% 78 26.1% 48.4%
Code
Geschlecht |> 
  group_by(Geschlecht, Partei) |> 
  summarize(n = sum(n), n_orig = sum(n_orig), .groups = "drop") |> 
  group_by(Partei) |> 
  mutate(Anteil = n/sum(n),
         Anteil_orig = n_orig/sum(n_orig)) |> 
  ungroup() |> 
  arrange(Partei) |> 
  group_by(Partei) |> format_Tabelle()
Partei Frauen klein Prozent klein Frauen groß Prozent groß (H0) p-Wert
AfD 9 13.2% 11 13.3% 58.6%
CDU 28 22.6% 36 23.7% 43.4%
CSU 8 23.5% 10 22.2% 66.3%
DIE LINKE 18 56.2% 21 53.8% 67.2%
FDP 19 25.3% 22 23.9% 67.1%
GRÜNE 56 58.3% 70 59.3% 46%
SPD 64 38.1% 86 41.7% 18.9%
Code
Geschlecht |>  
  group_by(Mandatart, Partei) |> format_Tabelle()
Mandatart Partei Frauen klein Prozent klein Frauen groß Prozent groß (H0) p-Wert
Wahlkreis AfD 2 13.3% 2 12.5% 71.3%
Wahlkreis CDU 14 16.3% 17 17.3% 46.5%
Wahlkreis CSU 8 23.5% 10 22.2% 66.3%
Wahlkreis DIE LINKE 1 33.3% 1 33.3% 74.1%
Wahlkreis GRÜNE 9 56.2% 9 56.2% 59.5%
Wahlkreis SPD 34 30.9% 39 32.2% 42.7%
Landesliste AfD 7 13.2% 9 13.4% 58%
Landesliste CDU 14 36.8% 19 35.2% 65.4%
Landesliste DIE LINKE 17 58.6% 20 55.6% 69.6%
Landesliste FDP 19 25.3% 22 23.9% 67.1%
Landesliste GRÜNE 47 58.8% 61 59.8% 46.6%
Landesliste SPD 30 51.7% 47 55.3% 33.8%

Auch in allen Teilgruppen ist eine zufällige Entstehung sehr plausibel.17 Die Werte an sich zeigen, dass in viele Parteien der Frauenanteil sogar größer werden würde. Der kleine Abfall im gesamten Bundestag geschieht insbesondere durch Effekte bei der SPD. Dort liegt der Frauenanteil allerdings im großen Bundestag schon klar über 50% und bleibt das auch nach der Verminderung. Von einer Benachteilung von Frauen kann man also nur sprechen, wenn die vorherige Überrepräsentation als “natur-gegeben” betrachtet wird.

Die Nullhypothese der obigen Berechnungen geht davon aus, dass eine Wahrscheinlichkeit für die Auswahl einer Frau gibt. Eine andere Nullhypothese wäre, dass aus den 736 realen Abgeordneten 598 ausgewählt werden würden. Der p-Wert dazu lässt sich mit der Bootstrapping-Methode18 berechnen und ist mit 13.7% niedriger aber auch nicht im Bereich in dem von statistischer Signifikanz gesprochen wird.

Für die Behauptung der Reformvorschlag würde zu einer Benachteiligung von Frauen führen, wie zum Beispiel in der Lage der Nation 319 und folgenden behauptet, gibt es also keine Evidenz, bzw. eher anekdotische auf den Einzelfall bezogene. Aus dieser Hinsicht besteht also kein Änderungsbedarf wie etwa die Vergrößerung des Bundestages auf 650 Abgeordnete. Dieser Vorschlag sollte auch im Bezug zum Befund gesetzt werden, dass schon die Regelgröße von 598 immer noch gemessen an der Bevölkerungszahl im internationalen Vergleich ein sehr großes Parlament ist.19 Italien war bis vor kurzem mit einem Parlament der Größe 600 in der gleichen Liga, hat es aber geschafft sich selbst zu reformieren und die Größe auf 400 reduziert. Für Deutschland würde eine Größe von 430-450 der international üblichen Größe entsprechen. Dazu im folgenden auch eine Modellrechnung.

5.2 Die Änderung des Altersdurchschnitts wäre zwar nur ein halbes Jahr aber wahrscheinlich nicht zufällig

Der Altersdurchschnitt nach dem neuen Vorschlag am Tag der Wahl 2021 wäre 48.05, der Altersdurchschnitt des realen größeren Bundestages am Tag der Wahl war 47.55, also eine Differenz von 0.5 Jahren. Die Signifikanz diese Unterschieds können wir mittels Bootstrapping untersuchen. Die Idee ist, dass wir aus dem großen Bundestag von 736 Abgeordneten 598 zufällig auswählen und schauen ob das Durschnittsalter größer oder gleich dem Durschnittsalter nach dem Vorschlag ist. Dieses Zufallsexperiment wiederholen wir dann 100.000 mal und können so den p-Wert bestimmen, also die Wahrscheinlichkeit dass das Durchschnittsalter sich durch eine zufällige Auswahl soweit oder weiter erhöht. Hierbei unterscheiden wir zwei verschiedene Arten der Zufallsauswahl. Die zufällige Auswahl mit oder ohne zurücklegen.

Der p-Wert für eine Auswahl ohne Zurücklegen beträgt 0.608% und für eine Auswahl mit Zurücklegen 13.7%. Wählen wir also aus den 736 aktuellen Abgeordenten 598 aus, ist es kaum wahrscheinlich dass sich das Durchschnittsalter um 0.5 Jahre erhöht. Betrachten wir das Alter eines Abgeordneten allerdings als eine zufällige Auswahl aus einem riesigen Pool mit der Alterverteilung des aktuellen Bundestags ist diese Erhöhung immer noch plausibel unter der Annahme der zufälligen Auswahl.

5.3 Modellrechnung bei gleichem Vorschlag und einer Bundestagsgröße von 450

Der Vorschlag der Regierungsfraktionen lässt sich theoretisch ohne weiteres auch auf eine kleinere Regelgröße wie zum Beispiel 450 anwenden. Dadurch wird natürlich der Anteil der Wahlkreise mit 299 mehr als 50% und es wird noch mehr Überhang und noch mehr Kappungsbedarf geben. Realistisch ist diese Absenkung also nur kombiniert mit einer Verringerung der Anzahl der Wahlkreise, zum Beispiel auf 225. Die folgende Modellrechnung ist dennoch für den Fall von 299 Wahlkreisen.20

Code
# Make the following anew
Wahlkreissieger_Parteien_Land <- Kandidatenrankings |> 
  filter(Wahlkreisrang == 1) |> 
  group_by(Gruppenname, UegGebietsnummer, LAND_NAME) |> 
  summarize(Wahlkreismandate = n(), .groups = "drop")
# Anzahl der Wahlkreissieger bundesweit pro Partei, notwendig um Grundmandatsklausel zu prüfen
Wahlkreissieger_Parteien_Bund <- Wahlkreissieger_Parteien_Land |> 
  group_by(Gruppenname) |> 
  summarize(Wahlkreismandate = sum(Wahlkreismandate), .groups = "drop")

Parteien_Proporz_Bund_k <- bt |> filter(Stimme == 2, !is.na(Anzahl)) |> 
  group_by(Gruppenname) |> 
  summarize(Anzahl = sum(Anzahl)) |> 
  mutate(Stimmenanteil = Anzahl/sum(Anzahl)) |> 
  left_join(Wahlkreissieger_Parteien_Bund, by = "Gruppenname") |> 
  mutate(Wahlkreismandate = replace_na(Wahlkreismandate, 0)) |> 
  filter(Stimmenanteil >= 0.05 | # mehr als 5% bundesweit
           Wahlkreismandate >= 3 | # oder mehr als drei Grundmandate
           Gruppenname == "SSW") |> # oder SSW (nationale Minderheit)
  mutate(Mandate = zuteilen_nach_hoechstzahlen(450, Anzahl))
Landeslisten_Proporz_k <- Parteien_Proporz_Bund_k |> select(Gruppenname, Mandate) |> 
  left_join(bt |> filter(Stimme == 2, !is.na(Anzahl)), by = "Gruppenname") |> 
  group_by(Gruppenname, UegGebietsnummer, LAND_NAME) |>   
  summarize(Anzahl = sum(Anzahl), Mandate = max(Mandate), .groups = "drop") |>
  group_by(Gruppenname) |> 
  mutate(Mandate = zuteilen_nach_hoechstzahlen(max(Mandate), Anzahl)) |> 
  left_join(Wahlkreissieger_Parteien_Land, c("Gruppenname", "UegGebietsnummer", "LAND_NAME")) |> 
  mutate(Wahlkreismandate = replace_na(Wahlkreismandate, 0)) |> 
  ungroup()
Mandatszahlen_k <- Landeslisten_Proporz_k |> 
  mutate(Listenmandate = pmax(Mandate - Wahlkreismandate, 0),
         Wahlkreismandate = pmin(Wahlkreismandate, Mandate)) |> 
  select(-Anzahl, -Mandate) |> 
  pivot_longer(c(Listenmandate, Wahlkreismandate), 
               names_to = "Mandatart", values_to = "Anzahl_Mandate") 
Wahlkreismandate_k <- Mandatszahlen_k |> filter(Mandatart == "Wahlkreismandate") |> 
  left_join(Kandidatenrankings, by = c("Gruppenname", "UegGebietsnummer", "LAND_NAME")) |> 
  filter(WKSiegerrang <= Anzahl_Mandate)
Listenmandate_k <- Mandatszahlen_k |> filter(Mandatart == "Listenmandate") |> 
  left_join(k |> filter(Kennzeichen == "Landesliste"), c("Gruppenname", "LAND_NAME" = "Gebietsname")) |> 
  left_join(Kandidatenrankings |> select(Nachname,Vornamen,Namenszusatz, Wahlkreisrang), 
            by = c("Namenszusatz", "Nachname", "Vornamen")) |> 
  anti_join(Wahlkreismandate_k |> select(Nachname,Vornamen,Namenszusatz),by = c("Namenszusatz", "Nachname", "Vornamen")) |> 
  arrange(LAND_NAME, Gruppenname,Listenplatz) |> 
  group_by(LAND_NAME, Gruppenname) |> 
  mutate(Listenplatz_neu = 1:n()) |> 
  filter(Listenplatz_neu <= Anzahl_Mandate)

Bundestag_Ampel_k <- bind_rows(Wahlkreismandate_k, Listenmandate_k) |> 
  mutate(Mandatart = ifelse(Mandatart == "Wahlkreismandate", "Wahlkreis", "Landesliste"),
         Wahlkreis = paste(str_pad(Gebietsnummer, width = 3, pad = 0), Gebietsname),
         Wahlkreis = ifelse(VerknGebietsart == "Wahlkreis" & Mandatart == "Landesliste", 
                            paste(str_pad(VerknGebietsnummer, width = 3, pad = 0), VerknGebietsname),
                            Wahlkreis)
  )

Kein_Direktmandat_k <- Kandidatenrankings |> filter(Wahlkreisrang == 1) |> 
  anti_join(Bundestag_Ampel_k |> select(Vornamen, Nachname, Gruppenname), by = c("Gruppenname", "Nachname", "Vornamen"))
Code
Bundestag_Ampel_k |> mutate(Name = paste0(Namenszusatz, " ", Nachname,", ",Vornamen)) |> 
  select(Mandatart, Land = LAND_NAME, Partei = Gruppenname, Name, 
         Wahlkreis, WK=Wahlkreisrang) |> 
  DT::datatable(options = 
                  list(language = 
                         list(url = "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json")),
                rownames = FALSE, 
                caption = "", 
                filter = "top")
Code
Parteien_Proporz_Bund_k |> select(Partei = Gruppenname, Mandate, Wahlkreismandate) |> 
  knitr::kable()
Partei Mandate Wahlkreismandate
AfD 51 16
CDU 93 98
CSU 25 45
DIE LINKE 24 3
FDP 56 0
GRÜNE 73 16
SPD 127 121
SSW 1 0
Code
Landeslisten_Proporz_k |> select(LAND_NAME, Gruppenname, M=Mandate, WK=Wahlkreismandate) |>
  pivot_wider(names_from = Gruppenname, values_from = c(M, WK), 
              names_vary = "slowest",
              names_glue = "{Gruppenname}_{.value}") |> 
  mutate(across(-LAND_NAME, .fns = ~ replace_na(.x, 0))) |>
  select(-FDP_WK, -SSW_WK) |> 
  gt(rowname_col = "LAND_NAME") |> 
  tab_spanner_delim(delim = "_")
AfD CDU CSU DIE LINKE FDP GRÜNE SPD SSW
M WK M WK M WK M WK M M WK M WK M
Schleswig-Holstein 1 0 4 2 0 0 1 0 2 3 1 5 8 1
Hamburg 1 0 2 0 0 0 1 0 1 3 2 3 4 0
Niedersachsen 4 0 12 8 0 0 2 0 5 8 0 16 22 0
Bremen 0 0 1 0 0 0 0 0 0 1 0 1 2 0
Nordrhein-Westfalen 8 0 27 30 0 0 4 0 12 17 4 31 30 0
Hessen 3 0 8 7 0 0 2 0 4 6 1 10 14 0
Rheinland-Pfalz 2 0 6 7 0 0 1 0 3 3 0 7 8 0
Baden-Württemberg 6 0 16 33 0 0 2 0 10 11 4 14 1 0
Bayern 7 0 0 0 25 45 2 0 8 11 1 14 0 0
Saarland 1 0 1 0 0 0 0 0 1 0 0 2 4 0
Berlin 2 0 3 3 0 0 2 2 2 4 3 5 4 0
Brandenburg 3 0 2 0 0 0 1 0 2 1 0 5 10 0
Mecklenburg-Vorpommern 2 0 2 0 0 0 1 0 1 1 0 3 6 0
Sachsen 6 10 4 4 0 0 2 1 3 2 0 5 1 0
Sachsen-Anhalt 2 2 3 3 0 0 1 0 1 1 0 3 4 0
Thüringen 3 4 2 1 0 0 2 0 1 1 0 3 3 0
Code
Kein_Direktmandat_k |> 
  mutate(Name = paste0(Namenszusatz, " ", Nachname,", ",Vornamen), 
         Wahlkreis = paste(str_pad(Gebietsnummer, width = 3, pad = 0), Gebietsname),
         Prozent = round(Prozent, digits = 2)) |> 
  select(Wahlkreis, Land = LAND_NAME, Name, Partei = Gruppenname, Prozent) |> 
  DT::datatable(options = 
                  list(language = 
                         list(url = "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json")),
                rownames = FALSE, 
                caption = "", 
                filter = "top")

Analog zum Vorgehen in bei Abbildung 5 zeigt Abbildung 7 die Wahlkreiskarte für den Bundestag mit 450 Abgeordneten.

Code
Wahlkreisstatistik_k <- Bundestag_Ampel_k |> 
  mutate(WK_Info = ifelse(is.na(Wahlkreisrang), "", paste0(Wahlkreisrang,". ",Gruppenname))) |> 
  group_by(Wahlkreis) |> 
  summarize(Anzahl_Abgeordnete = n(), Abgeordnete = paste(sort(WK_Info), collapse = ", ")) |>
  mutate(Sieger_präsent = word(Abgeordnete, 1) == "1") |> 
  right_join(shp |> mutate(Wahlkreis = paste(str_pad(Gebietsnummer, width = 3, pad = 0), Gebietsname)), 
             by = "Wahlkreis") |> 
  mutate(Anzahl_Abgeordnete = replace_na(Anzahl_Abgeordnete,0),
         Abgeordnete = replace_na(Abgeordnete,""))
WKmap_k <- Wahlkreisstatistik_k |> st_sf() |> 
  mutate(Anzahl = factor(Anzahl_Abgeordnete), 
         WK = Wahlkreis) |> 
  ggplot(aes(fill = Anzahl, text = WK,label = Abgeordnete)) + geom_sf() + 
  scale_fill_manual(values=c("#ff7b7b","#b3cde0","#6497b1","#005b96","#03396c")) +
  theme_void() + 
  theme(legend.title=element_blank())
ggplotly(WKmap_k, tooltip = c("WK", "Abgeordnete"), 
         height = 600)

Abbildung 7: Wahlkreiskarte für die Bundestagwahl 2021 neuberechnet nach dem Vorschlag der Regierungsfraktionen allerings mit nur 450 Mandaten und weiterhin 299 Wahlkreisen.

Die Anzahl der “verwaisten” Wahlkreise würde sich von fünf auf 20 erhöhen – in Anbetracht einer Verkleinerung des Bundestages um 148 Mandate ein eher kleiner Wert.

Fußnoten

  1. http://www.bundeswahlleiter.de, möglicherweise wird dies durch dem Amtsantritt der neuen Bundeswahlleiterin zum 1.1.2023 umbenannt?↩︎

  2. Dieser Datensatz enthält auch Daten zur Anzahl der Wahlberechtigten.↩︎

  3. Dieser Datensatz ist nach Bundeswahlordnung nach einer gewissen Zeit nicht mehr bei http://www.bundeswahlleiter.de downloadbar.↩︎

  4. Die Grundidee des Verfahrens ist es, eine proportionale Aufteilung der Sitzanteile zu berechnen. In der Regel sind die Bruchzahlen und müssen gerundet werden. Dabei kann es dazu kommen, dass die Gesamtsumme nicht \(N\) ergibt. Dann muss ein anderer Divisor bei der Berechnung der proportionalen Anteils gewählt werden, bis es passt. Mathematisch gibt es dazu nur eine eindeutige richtige Lösung. Eine andere Berechnungsmethode, die zum gleichen Ergebnis führt, ist die Verteilung nach einer Reihe von Höchstzahlen, die in der Funktion benutzt wird. Details dazu unter https://de.wikipedia.org/wiki/Sainte-Lagu%C3%AB-Verfahren oder https://www.wahlrecht.de/verfahren/stlague.html.↩︎

  5. Dass der Sitzanteil von 5.69% größer als der Zweitstimmenanteil von 5.17% ist liegt zum größten Teil daran, dass die Stimmenanteile sich durch den Wegfall vieler Wahlvorschläge nicht auf 100%, sondern nur auf 91.37% aufsummieren. Daran hat die CSU 5.66%. Die verbleibende kleine Differenz zum Sitzanteil ergibt sich aus der Rundung durch das Sitzzuteilungsverfahren.↩︎

  6. Da die CSU nur in einem Bundesland antritt und dort ein großer Überhang einer bundesweit sehr kleinen Partei besteht, deckt der dadurch berechnete Ausgleich auch die anderen Überhänge ab.↩︎

  7. Gleichzeitig würde die leichte Überrepräsentation der CSU durch die derzeit drei unausgeglichenen Überhangmandate auf das durch Rundung unvermeidbare Maß vermindert.↩︎

  8. Insgesamt ist nur noch ein Wahlkreissieger mit einer Mehrheit von über 50% im Bundestag. Bei der Wahl 2013 waren dies noch über 100 also mehr als ein Drittel der Wahlkreise. Dies zeigt auf, dass das Prinzip der relativen Mehrheitswahl deutlich weniger Legitimität durch Wähleranteile produziert als vor zehn Jahren.↩︎

  9. Der Rekord liegt beim SPD Abgeordneten aus Bamberg, Bayern mit Rang 9, der neben drei weiteren Abgeordneten aus Bamberg mit den Wahlkreisrängen 1, 2 und 3 im Bundestag wäre.↩︎

  10. Berechnet als Differenz zwischen Amtsantrittsjahr 2021 und Durchschnitt der Geburtsjahre.↩︎

  11. Inzwischen sind bereits elf gewählte Abgeordnete nicht mehr im Bundestag und durch Nachrücker_innen ersetzt worden. Sechs von diesen waren Wahlkreis-Abgeordnete. Es sind dadurch jetzt zwei Frauen mehr. Der jetzige Frauenanteil ist 35.1%, der Altersdurchschnitt bezogen auf das Jahr 2021 ist inzwischen 47.4.↩︎

  12. Die wegfallenden Zweitstimmen bleiben aber zum Beispiel für die Prüfung der 5%-Hürde und die Parteienfinanzierung relevant. Bei der aktuellen Auszählungspraxis müssen die nicht zu berücksichtigen Haupt-/Zweitstimmen gegebenenfalls durch eine Neuauszählung im Wahlkreis erreicht werden, da üblicherweise die Auszählung aller Wahlzettel einmal nach Erststimmen und einmal nach Zweitstimmen sortiert und gezählt werden. Es erfolgt also keine Erfassung aller Kombinationen von Erst- und Zweitstimme auf Stimmzetteln.↩︎

  13. Prinzipiell könnte die CSU auch eine Landesliste aufstellen, die in jedem Wahlkreis in Bayern wählbar wäre. Sie könnte es dadurch über die 5%-Hürde schaffen. Für die Mandatsverteilung würde die meisten Zweitstimmen aber wegfallen, da sie an Stimmen von (formal) Unabhängigen aber von der CSU empfohlenen Kandidat_innen gehen würden. Es würde lediglich die Zweitstimmen der CSU zählen, die entweder Erststimmen an andere Kandidat_innen als die von der CSU empfohlenen Unabhängigen geben, oder aus dem einen Wahlkreis wäre den die CSU 2021 nicht gewann. Dadurch könnten sogar noch ein oder wenige zusätzliche Sitze für die CSU Landesliste dazu kommen.↩︎

  14. Solche Bündnisse wären auch bisher möglich gewesen. Es gab sie aber nicht, weil die Wahlkreise für die Mandatsanteile der Parteien im Bundestag irrelevant sind. Die Mandatsgewinne von schwachen CSU Kandidat_innen erhöhen sogar beim derzeitigen Zweitstimmenanteil der CSU in der Regel die Anzahl der Ausgleichsmandate erheblich und erhöhen so die Chancen für Mandatsgewinne von der Landesliste für alle Parteien. Eine gemeinsamer Kandidat von SPD und Grüne könnte zwar der CSU ein Mandat abringen, dadurch würden aber gegebenfalls sowohl für die Grüne und die SPD Landesliste ein Ausgleichsmandat wegfallen.↩︎

  15. Die Anzahl der Frauen folgt in diesem Modell der Zufallsauswahl der Binomial-Verteilung.↩︎

  16. Eine statistische Konvention ist es erst bei einem p-Wert von unter 5% von statistischer Signifikanz zu sprechen.↩︎

  17. In kleineren Gruppen ist allerdings naturgemäß der Einfluss des Zufalls größer.↩︎

  18. Details im nächsten Abschnitt zum Altersdurchschnitt↩︎

  19. Diese bezieht sich auf die empirische Regularität, dass die Parlamentsgröße der Kubikwurzel der Bevölkerungszahl entspricht (siehe https://en.wikipedia.org/wiki/Cube_root_law).↩︎

  20. Eine Modellrechnung mit einer Wahlkreisreform ist deutlich aufwendiger.↩︎