Forschungsfrage und Hypothese

Forschungsfrage: Hängt die Höhe der Pro-Kopf-Ausgaben für Schüler:innen in einem Bundesland mit dem Anteil früher Schulabgänger:innen zusammen?

Hypothese: Je höher die Pro-Kopf-Ausgaben für Schüler:innen in einem Bundesland desto später verlassen diese die Schule.

Datengrundlage

1. Frühe Schulabgängerinnen und Schulabgänger nach Bundesländern [https://www.govdata.de/dl-de/by-2-0]

2. Ausgaben für öffentliche Schulen je Schülerin und Schüler nach Schularten und Ländern [https://www.govdata.de/dl-de/by-2-0]

 

Daten einlesen und vorbereiten/bereinigen inklusive anschließender Analyse

# Pakete laden
library(dplyr)
## Warning: Paket 'dplyr' wurde unter R Version 4.5.1 erstellt
## 
## Attache Paket: 'dplyr'
## Die folgenden Objekte sind maskiert von 'package:stats':
## 
##     filter, lag
## Die folgenden Objekte sind maskiert von 'package:base':
## 
##     intersect, setdiff, setequal, union
library(readr)
## Warning: Paket 'readr' wurde unter R Version 4.5.1 erstellt
# Daten einlesen
ausgaben <- read_csv2("C:/Users/carme/Desktop/ELMEB/SS 25/Data Science/Forschungsthema/Tabelle-2.1.14.csv", skip = 5)
## ℹ Using "','" as decimal and "'.'" as grouping mark. Use `read_delim()` for more control.
## New names:
## Rows: 341 Columns: 13
## ── Column specification
## ──────────────────────────────────────────────────────── Delimiter: ";" chr
## (6): Land, Euro...5, Euro...6, Euro...7, Euro...9, Euro...10 dbl (7): Jahr,
## Euro...3, Euro...4, Euro...8, Euro...11, Euro...12, Euro...13
## ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
## Specify the column types or set `show_col_types = FALSE` to quiet this message.
## • `Euro` -> `Euro...3`
## • `Euro` -> `Euro...4`
## • `Euro` -> `Euro...5`
## • `Euro` -> `Euro...6`
## • `Euro` -> `Euro...7`
## • `Euro` -> `Euro...8`
## • `Euro` -> `Euro...9`
## • `Euro` -> `Euro...10`
## • `Euro` -> `Euro...11`
## • `Euro` -> `Euro...12`
## • `Euro` -> `Euro...13`
abbrecher <- read_csv2("C:/Users/carme/Desktop/ELMEB/SS 25/Data Science/Forschungsthema/Tabelle-0.64.csv", skip = 5)
## ℹ Using "','" as decimal and "'.'" as grouping mark. Use `read_delim()` for more control.
## New names:Rows: 58 Columns: 20── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr (20): Regionale Aufteilung, Tsd....2, Tsd....3, Tsd....4, Tsd....5, Tsd....
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Tatsächliche Namen herausfinden von Tabelle Ausgaben
names(ausgaben)
##  [1] "Land"      "Jahr"      "Euro...3"  "Euro...4"  "Euro...5"  "Euro...6" 
##  [7] "Euro...7"  "Euro...8"  "Euro...9"  "Euro...10" "Euro...11" "Euro...12"
## [13] "Euro...13"
View(ausgaben)

# Namen anpassen in Tabelle Ausgaben

ausgaben_clean <- ausgaben %>%
  select(Bundesland = Land, Jahr, Ausgaben = `Euro...3`) %>%
  filter(Jahr == 2022)


# Tatsächliche Namen herausfinden von Tabelle Abbrecher

names(abbrecher)
##  [1] "Regionale Aufteilung" "Tsd....2"             "Tsd....3"            
##  [4] "Tsd....4"             "Tsd....5"             "Tsd....6"            
##  [7] "Tsd....7"             "Tsd....8"             "Tsd....9"            
## [10] "Tsd....10"            "Tsd....11"            "Tsd....12"           
## [13] "Tsd....13"            "Tsd....14"            "Tsd....15"           
## [16] "Tsd....16"            "Tsd....17"            "Tsd....18"           
## [19] "Tsd....19"            "Tsd....20"
# Passenden Wert aussuchen - frühere Schulabgänger:innen im Jahr 2022.

abbrecher_clean <- abbrecher %>%
  select(Bundesland = `Regionale Aufteilung`, Abbrecher2022 = `Tsd....18`) %>%
  mutate(
    Abbrecher2022 = as.numeric(gsub(",", ".", Abbrecher2022))
  ) %>%
  group_by(Bundesland) %>%
  summarise(Abbrecher2022 = mean(Abbrecher2022, na.rm = TRUE))
## Warning: There was 1 warning in `mutate()`.
## ℹ In argument: `Abbrecher2022 = as.numeric(gsub(",", ".", Abbrecher2022))`.
## Caused by warning:
## ! NAs durch Umwandlung erzeugt
# Daten zusammenführen
merged <- inner_join(ausgaben_clean, abbrecher_clean, by = "Bundesland")

# Ergebnis anzeigen
print(merged)
## # A tibble: 17 × 4
##    Bundesland              Jahr Ausgaben Abbrecher2022
##    <chr>                  <dbl>    <dbl>         <dbl>
##  1 Baden-Württemberg       2022     9900          54.7
##  2 Bayern                  2022    11500          55.1
##  3 Berlin                  2022    13900          16.8
##  4 Brandenburg             2022    10100         NaN  
##  5 Bremen                  2022    10900          12.8
##  6 Hamburg                 2022    13400         NaN  
##  7 Hessen                  2022     9900          41.2
##  8 Mecklenburg-Vorpommern  2022     9700          13.7
##  9 Niedersachsen           2022     9900          47.2
## 10 Nordrhein-Westfalen     2022     9400          92.4
## 11 Rheinland-Pfalz         2022     9600          28.6
## 12 Saarland                2022    10600         NaN  
## 13 Sachsen                 2022     9500          15.6
## 14 Sachsen-Anhalt          2022     9400          18.8
## 15 Schleswig-Holstein      2022     9700          20.9
## 16 Thüringen               2022    10200          12.8
## 17 Länder insgesamt        2022    10300         376.
# Zeile Länder insgesamt entfernen, damit der Wert nicht verfälscht wird

daten_final <- ausgaben_clean %>%
  left_join(abbrecher_clean, by = "Bundesland") %>%
  filter(!is.na(Abbrecher2022), Bundesland != "Länder insgesamt")


# Korrelation berechnen
correlation <- cor(daten_final$Ausgaben, daten_final$Abbrecher2022)

# Scatterplot
library(ggplot2)
## Warning: Paket 'ggplot2' wurde unter R Version 4.5.1 erstellt
ggplot(daten_final, aes(x = Ausgaben, y = Abbrecher2022)) +
  geom_point(color = "steelblue", size = 3) +
  geom_smooth(method = "lm", se = FALSE, color = "darkred") +
  labs(
    title = "Zusammenhang zwischen Bildungsausgaben und Schulabbrecherquote (2022)",
    subtitle = paste("Korrelationskoeffizient:", round(correlation, 2)),
    x = "Ausgaben pro Schüler:in (€)",
    y = "Frühe Schulabgänger:innen (in Tsd.)"
  ) +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

# Ergebnis: Punkte: Jedes Bundesland als Punkt im Diagramm = unklar - 
# deshalb nur für BW aussuchen,also BW in blau anzeigen lassen, alles andere grau 

ggplot(daten_final, aes(x = Ausgaben, y = Abbrecher2022)) +
  geom_point(aes(color = Bundesland == "Baden-Württemberg"), size = 3) +
  scale_color_manual(values = c("FALSE" = "lightgray", "TRUE" = "steelblue")) +
  geom_smooth(method = "lm", se = FALSE, color = "darkred") +
  labs(
    title = "Baden-Württemberg im Vergleich",
    subtitle = paste("Korrelationskoeffizient:", round(correlation, 2)),
    x = "Ausgaben pro Schüler:in (€)",
    y = "Frühe Schulabgänger:innen (in Tsd.)",
    color = "Baden-Württemberg"
  ) +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

Ergebnis

Der Korrelationskoeffizient beträgt –0.18

Die Trendlinie zeigt einen leicht negativen linearen Zusammenhang

Für Baden-Württemberg: Ausgaben je Schüler:in: ca. 9.900 € in 2022

Zahl früher Schulabgänger:innen: ca. 54.700 in 2022

Trotz durchschnittlicher Ausgaben: überdurchschnittlich viele Abbrecher:innen

Fazit

Ein höheres Bildungsbudget je Schüler:in geht tendenziell mit einer niedrigeren Schulabbrecherquote einher, jedoch ist der Zusammenhang nur schwach.

Baden-Württemberg liegt im Mittelfeld der Ausgaben, aber bei den Abbrecherzahlen eher im oberen Bereich. Das kann eher auf andere Einflussfaktoren hinweisen, wie z. B. soziale Ungleichheit oder regionale Unterschiede in der Schulpflicht.

→ Der Zusammenhang zwischen Investitionen in Bildung und Bildungserfolg (gemessen an Schulabbrüchen) ist vorhanden, aber nicht stark.

Baden-Württemberg weicht vom erwartbaren Trend leicht ab.