````r

Zusammensetzung der Studienanfänger:innen in Deutschland

Der Datensatz beschreibt die Zusammensetzung der Studienanfänger:innen in Deutschland von 2000 bis 2022 nach Wegen der Studienberechtigung und Hochschularten auf Basis von Daten des Statistischen Bundesamtes.

Forschungsfrage

Wie haben sich alternative Wege zur Studienberechtigung im Vergleich zum klassischen Gymnasium im Zeitverlauf entwickelt?

Vorbereitung der Daten

Pakete laden

library(readxl)
library(dplyr)
library(tidyr)
library(ggplot2)

Datensatz einlesen (robust, aber seminar-konform)

raw <- read_excel(
  "/Users/angelamaidhof/Documents/01 Uni /04_PH Elmeb/f3.xlsx",
  col_names = FALSE,
  skip = 6,
  na = c("", "–", ":", ": u", ": b")
)
## New names:
## • `` -> `...1`
## • `` -> `...2`
## • `` -> `...3`
## • `` -> `...4`
## • `` -> `...5`
## • `` -> `...6`
## • `` -> `...7`
## • `` -> `...8`
## • `` -> `...9`
## • `` -> `...10`
## • `` -> `...11`
## • `` -> `...12`
## • `` -> `...13`
## • `` -> `...14`
## • `` -> `...15`
## • `` -> `...16`
## • `` -> `...17`
## • `` -> `...18`
## • `` -> `...19`
## • `` -> `...20`
## • `` -> `...21`
## • `` -> `...22`
## • `` -> `...23`
## • `` -> `...24`
## • `` -> `...25`
## • `` -> `...26`
## • `` -> `...27`
## • `` -> `...28`
## • `` -> `...29`
## • `` -> `...30`
## • `` -> `...31`
## • `` -> `...32`
## • `` -> `...33`
## • `` -> `...34`
## • `` -> `...35`
## • `` -> `...36`
## • `` -> `...37`
## • `` -> `...38`
## • `` -> `...39`
## • `` -> `...40`
## • `` -> `...41`
## • `` -> `...42`
## • `` -> `...43`
## • `` -> `...44`
## • `` -> `...45`
## • `` -> `...46`
## • `` -> `...47`
## • `` -> `...48`
## • `` -> `...49`
## • `` -> `...50`
## • `` -> `...51`
## • `` -> `...52`
head(raw)
## # A tibble: 6 × 52
##   ...1      ...2    ...3   ...4   ...5   ...6   ...7   ...8   ...9  ...10  ...11
##   <chr>     <chr>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
## 1 Gymnasiu… 68.5… 63.8   65.1   64.4   62.8   65.0   62.1   61.7   60.0   59.8  
## 2 (Berufs-… 2.95…  4.64   4.85   5.16   5.36   4.91   5.10   4.95   4.92   4.62 
## 3 Fachober… 7.74…  9.09   7.90   8.18   8.48   7.79   7.92   7.58   7.52   7.18 
## 4 Zweiter … 2.44…  3.03   3.06   3.25   3.36   3.27   3.41   3.27   3.28   3.19 
## 5 Dritter … 0.37…  0.705  0.874  1.18   1.80   2.14   2.32   2.36   2.57   2.33 
## 6 Begabten… 0.26…  0.282  0.212  0.222  0.187  0.148  0.175  0.212  0.171  0.119
## # ℹ 41 more variables: ...12 <dbl>, ...13 <dbl>, ...14 <dbl>, ...15 <dbl>,
## #   ...16 <dbl>, ...17 <dbl>, ...18 <dbl>, ...19 <chr>, ...20 <dbl>,
## #   ...21 <dbl>, ...22 <dbl>, ...23 <dbl>, ...24 <dbl>, ...25 <dbl>,
## #   ...26 <dbl>, ...27 <dbl>, ...28 <dbl>, ...29 <dbl>, ...30 <dbl>,
## #   ...31 <dbl>, ...32 <dbl>, ...33 <dbl>, ...34 <dbl>, ...35 <dbl>,
## #   ...36 <chr>, ...37 <dbl>, ...38 <dbl>, ...39 <dbl>, ...40 <dbl>,
## #   ...41 <dbl>, ...42 <dbl>, ...43 <dbl>, ...44 <dbl>, ...45 <dbl>, …

Spaltennamen setzen (wie im Seminar, aber abgesichert)

jahre <- c(2000, 2005, 2008:2022)

col_names <- c(
  "kategorie",
  paste0("Insgesamt_", jahre),
  paste0("Uni_", jahre),
  paste0("FH_", jahre)
)

# Sicherheit: nur zuweisen, wenn Struktur passt
raw <- raw[, 1:length(col_names)]
names(raw) <- col_names

Erste Datenexploration

head(raw)
## # A tibble: 6 × 52
##   kategorie          Insgesamt_2000 Insgesamt_2005 Insgesamt_2008 Insgesamt_2009
##   <chr>              <chr>                   <dbl>          <dbl>          <dbl>
## 1 Gymnasium, Fachgy… 68.5931394403…         63.8           65.1           64.4  
## 2 (Berufs-)Fachschu… 2.95265007474…          4.64           4.85           5.16 
## 3 Fachoberschule     7.74730534211…          9.09           7.90           8.18 
## 4 Zweiter Bildungsw… 2.44584458839…          3.03           3.06           3.25 
## 5 Dritter Bildungsw… 0.37913210017…          0.705          0.874          1.18 
## 6 Begabtenprüfung    0.26220046446…          0.282          0.212          0.222
## # ℹ 47 more variables: Insgesamt_2010 <dbl>, Insgesamt_2011 <dbl>,
## #   Insgesamt_2012 <dbl>, Insgesamt_2013 <dbl>, Insgesamt_2014 <dbl>,
## #   Insgesamt_2015 <dbl>, Insgesamt_2016 <dbl>, Insgesamt_2017 <dbl>,
## #   Insgesamt_2018 <dbl>, Insgesamt_2019 <dbl>, Insgesamt_2020 <dbl>,
## #   Insgesamt_2021 <dbl>, Insgesamt_2022 <dbl>, Uni_2000 <chr>, Uni_2005 <dbl>,
## #   Uni_2008 <dbl>, Uni_2009 <dbl>, Uni_2010 <dbl>, Uni_2011 <dbl>,
## #   Uni_2012 <dbl>, Uni_2013 <dbl>, Uni_2014 <dbl>, Uni_2015 <dbl>, …
nrow(raw)
## [1] 35
ncol(raw)
## [1] 52
names(raw)
##  [1] "kategorie"      "Insgesamt_2000" "Insgesamt_2005" "Insgesamt_2008"
##  [5] "Insgesamt_2009" "Insgesamt_2010" "Insgesamt_2011" "Insgesamt_2012"
##  [9] "Insgesamt_2013" "Insgesamt_2014" "Insgesamt_2015" "Insgesamt_2016"
## [13] "Insgesamt_2017" "Insgesamt_2018" "Insgesamt_2019" "Insgesamt_2020"
## [17] "Insgesamt_2021" "Insgesamt_2022" "Uni_2000"       "Uni_2005"      
## [21] "Uni_2008"       "Uni_2009"       "Uni_2010"       "Uni_2011"      
## [25] "Uni_2012"       "Uni_2013"       "Uni_2014"       "Uni_2015"      
## [29] "Uni_2016"       "Uni_2017"       "Uni_2018"       "Uni_2019"      
## [33] "Uni_2020"       "Uni_2021"       "Uni_2022"       "FH_2000"       
## [37] "FH_2005"        "FH_2008"        "FH_2009"        "FH_2010"       
## [41] "FH_2011"        "FH_2012"        "FH_2013"        "FH_2014"       
## [45] "FH_2015"        "FH_2016"        "FH_2017"        "FH_2018"       
## [49] "FH_2019"        "FH_2020"        "FH_2021"        "FH_2022"

Datenbereinigung

df <- raw %>%
  mutate(zeile = row_number()) %>%
  filter(zeile %in% c(1:9, 11:18, 24:29, 31:35)) %>%
  mutate(
    tabelle = if_else(zeile <= 18,
                      "Weg_zur_Studienberechtigung",
                      "Art_der_Studienberechtigung"),
    ausland = if_else(zeile %in% c(1:9, 24:29),
                      "inkl_ausland",
                      "ohne_ausland")
  ) %>%
  select(-zeile)

head(df)
## # A tibble: 6 × 54
##   kategorie          Insgesamt_2000 Insgesamt_2005 Insgesamt_2008 Insgesamt_2009
##   <chr>              <chr>                   <dbl>          <dbl>          <dbl>
## 1 Gymnasium, Fachgy… 68.5931394403…         63.8           65.1           64.4  
## 2 (Berufs-)Fachschu… 2.95265007474…          4.64           4.85           5.16 
## 3 Fachoberschule     7.74730534211…          9.09           7.90           8.18 
## 4 Zweiter Bildungsw… 2.44584458839…          3.03           3.06           3.25 
## 5 Dritter Bildungsw… 0.37913210017…          0.705          0.874          1.18 
## 6 Begabtenprüfung    0.26220046446…          0.282          0.212          0.222
## # ℹ 49 more variables: Insgesamt_2010 <dbl>, Insgesamt_2011 <dbl>,
## #   Insgesamt_2012 <dbl>, Insgesamt_2013 <dbl>, Insgesamt_2014 <dbl>,
## #   Insgesamt_2015 <dbl>, Insgesamt_2016 <dbl>, Insgesamt_2017 <dbl>,
## #   Insgesamt_2018 <dbl>, Insgesamt_2019 <dbl>, Insgesamt_2020 <dbl>,
## #   Insgesamt_2021 <dbl>, Insgesamt_2022 <dbl>, Uni_2000 <chr>, Uni_2005 <dbl>,
## #   Uni_2008 <dbl>, Uni_2009 <dbl>, Uni_2010 <dbl>, Uni_2011 <dbl>,
## #   Uni_2012 <dbl>, Uni_2013 <dbl>, Uni_2014 <dbl>, Uni_2015 <dbl>, …

Wide → Long Format

Die Jahresspalten werden in eine einzige Spalte anteil_pct überführt. Jede Zeile entspricht danach einer Kombination aus Kategorie, Hochschulart und Jahr.

df_long <- df %>%
  mutate(across(-c(kategorie, tabelle, ausland), as.character)) %>%
  pivot_longer(
    cols = -c(kategorie, tabelle, ausland),
    names_to = c("hochschulart", "jahr"),
    names_sep = "_",
    values_to = "anteil_pct"
  ) %>%
  mutate(
    jahr = as.numeric(jahr),
    anteil_pct = as.numeric(anteil_pct)
  )

head(df_long)
## # A tibble: 6 × 6
##   kategorie                        tabelle ausland hochschulart  jahr anteil_pct
##   <chr>                            <chr>   <chr>   <chr>        <dbl>      <dbl>
## 1 Gymnasium, Fachgymnasium, Gesam… Weg_zu… inkl_a… Insgesamt     2000       68.6
## 2 Gymnasium, Fachgymnasium, Gesam… Weg_zu… inkl_a… Insgesamt     2005       63.8
## 3 Gymnasium, Fachgymnasium, Gesam… Weg_zu… inkl_a… Insgesamt     2008       65.1
## 4 Gymnasium, Fachgymnasium, Gesam… Weg_zu… inkl_a… Insgesamt     2009       64.4
## 5 Gymnasium, Fachgymnasium, Gesam… Weg_zu… inkl_a… Insgesamt     2010       62.8
## 6 Gymnasium, Fachgymnasium, Gesam… Weg_zu… inkl_a… Insgesamt     2011       65.0

Fehlende Werte

sum(is.na(df_long))
## [1] 78
colSums(is.na(df_long))
##    kategorie      tabelle      ausland hochschulart         jahr   anteil_pct 
##            0            0            0            0            0           78

Der Datensatz enthält fehlende Werte in der Spalte anteil_pct. Dies ist darauf zurückzuführen, dass nicht alle Kategorien für jeden Zeitpunkt erhoben wurden — beispielsweise fehlen für die Kategorie “Eignungsprüfung Kunst/Musik” die Werte ab 2016. Die Analyse ist dadurch potenziell eingeschränkt, da Mittelwerte nur auf Basis verfügbarer Beobachtungen berechnet werden.

Deskriptive Statistik

summary(df_long)
##   kategorie           tabelle            ausland          hochschulart      
##  Length:1428        Length:1428        Length:1428        Length:1428       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##       jahr        anteil_pct      
##  Min.   :2000   Min.   : 0.01821  
##  1st Qu.:2010   1st Qu.: 1.05225  
##  Median :2014   Median : 2.70058  
##  Mean   :2014   Mean   :15.10796  
##  3rd Qu.:2018   3rd Qu.:16.37208  
##  Max.   :2022   Max.   :97.48074  
##                 NA's   :78
sort(table(df_long$kategorie), decreasing = TRUE)
## 
##                                             Dritter Bildungsweg 
##                                                             204 
##             (Berufs-)Fachschule, Berufsoberschule, Fachakademie 
##                                                             102 
##                                       Allgemeine Hochschulreife 
##                                                             102 
## Ausländische Studienberechtigung (einschließlich Studienkolleg) 
##                                                             102 
##                                                 Begabtenprüfung 
##                                                             102 
##                                     Eignungsprüfung Kunst/Musik 
##                                                             102 
##                                    Fachgebundene Hochschulreife 
##                                                             102 
##                                              Fachhochschulreife 
##                                                             102 
##                                                  Fachoberschule 
##                                                             102 
##                          Gymnasium, Fachgymnasium, Gesamtschule 
##                                                             102 
##                                                     Ohne Angabe 
##                                                             102 
##                                       Sonstiges und ohne Angabe 
##                                                             102 
##                                             Zweiter Bildungsweg 
##                                                             102

Visualisierung

Boxplot über Jahre

jahre_vec <- c(2000, 2005, 2010, 2015, 2019, 2022)

df_plot <- df_long %>%
  filter(
    hochschulart == "Insgesamt",
    ausland == "inkl_ausland",
    jahr %in% jahre_vec
  )

boxplot(
  anteil_pct ~ jahr,
  data = df_plot,
  main = "Verteilung der Anteilswerte über die Zeit",
  xlab = "Jahr",
  ylab = "Anteil in %"
)

Zeitlicher Verlauf

mean_df <- df_long %>%
  filter(
    hochschulart == "Insgesamt",
    ausland == "inkl_ausland"
  ) %>%
  group_by(jahr) %>%
  summarise(
    mittelwert = mean(anteil_pct, na.rm = TRUE),
    .groups = "drop"
  )

plot(mean_df$jahr, mean_df$mittelwert,
     type = "b",
     main = "Durchschnittlicher Anteilswert über die Zeit",
     xlab = "Jahr",
     ylab = "Durchschnitt in %")

Top 5 Kategorien 2022

df_2022 <- df_long %>%
  filter(
    hochschulart == "Insgesamt",
    ausland == "inkl_ausland",
    jahr == 2022
  ) %>%
  group_by(kategorie) %>%
  summarise(
    mittelwert = mean(anteil_pct, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  arrange(desc(mittelwert))

barplot(
  df_2022$mittelwert[1:5],
  names.arg = df_2022$kategorie[1:5],
  las = 2,
  main = "Top 5 Kategorien 2022",
  ylab = "Anteil (%)"
)

Limitationen

Limitationen sind z.B., dass fehlende Werte für einzelne Kategorien und Jahre die Ergebnisse verzerren können. Die Analyse hier stellt nur eine erste grobe Analyse da und beantwortet nicht vollumfänglich die ursprüngliche Forschungsfrage. Außerdem beziehen sich die Anteilswerte beziehen jeweils auf den Anteil einer Bildungsgruppe an allen Studienanfänger:innen, nicht auf absolute Zahlen. Darüber hinaus handelt es sich hier um Prozentanteile und keine absoluten Zahlen - was mit Blick auf das Skalenniveau problematisch ist für inferenzstatistische Berechnungen.

Ergebnisse

Die Analyse zeigt, dass das Gymnasium über den gesamten Zeitraum von 2000 bis 2022 der dominante Weg zur Studienberechtigung bleibt, jedoch mit sinkender Tendenz. Gleichzeitig gewinnen alternative Wege wie der Dritte Bildungsweg und ausländische Studienberechtigungen an Bedeutung. Die Verteilung der Anteilswerte ist rechtsschief, da das Gymnasium deutlich höhere Werte aufweist als alle anderen Kategorien. Zwischen Universitäten und Fachhochschulen zeigen sich strukturelle Unterschiede: Fachhochschulen weisen einen deutlich höheren Anteil an Studienanfänger:innen mit Fachoberschulreife auf.

```