Skip to Tutorial Content

Titelseite

Lernziel

Ziel dieses Tutorial ist es, ein interaktives Tool aufzubauen um einen Teil der in der Vorlesung vermittelten Inhalte zu vermitteln und gleichzeitig unsere Datenbasis passend aufzubereiten,zu analysieren und die Ergebnisse zu visualisieren.

Info

Modul: Data Science
Semester: SS23
Dozent: Uwe Kloos
Projektgruppe: 01
Gruppenmitglieder: Martin Hustoles, Marcel Kehrberg, Kevin Kirsten
Abgabedatum: 03.07.2023

Datenbasis

Datentabelle

Semester Deutsche Ausländer Insgesamt
männlich weiblich Insgesamt männlich weiblich Insgesamt männlich weiblich Insgesamt
WS 1998/99 907403 727254 1634657 92321 73673 165994 999724 800927 1800651
WS 1999/00 872178 723246 1595424 95460 79605 175065 967638 802851 1770489
WS 2000/01 870016 741820 1611836 99906 87121 187027 969922 828941 1798863
WS 2001/02 887462 774628 1662090 107831 98410 206241 995293 873038 1868331
WS 2002/03 903218 808567 1711785 117205 109821 227026 1020423 918388 1938811
WS 2003/04 935718 837611 1773329 125826 120310 246136 1061544 957921 2019465
WS 2004/05 901979 814795 1716774 124220 122114 246334 1026199 936909 1963108
WS 2005/06 912696 824712 1737408 124447 123910 248357 1037143 948622 1985765
WS 2006/07 909740 822934 1732674 122923 123446 246369 1032663 946380 1979043
WS 2007/08 898061 809738 1707799 116700 116906 233606 1014761 926644 1941405
WS 2008/09 938552 847612 1786164 119254 119889 239143 1057806 967501 2025307
WS 2009/10 984097 892306 1876403 122353 122422 244775 1106450 1014728 2121178
WS 2010/11 1031086 934176 1965262 126399 125633 252032 1157485 1059809 2217294
WS 2011/12 1122200 993482 2115682 133172 132120 265292 1255372 1125602 2380974
WS 2012/13 1171894 1045314 2217208 142123 140078 282201 1314017 1185392 2499409
WS 2013/14 1218965 1096566 2315531 152675 148675 301350 1371640 1245241 2616881
WS 2014/15 1245029 1132312 2377341 163505 158064 321569 1408534 1290376 2698910
WS 2015/16 1260203 1157291 2417494 173923 166382 340305 1434126 1323673 2757799
WS 2016/17 1269166 1178949 2448115 184459 174436 358895 1453625 1353385 2807010
WS 2017/18 1270098 1200297 2470395 194545 180038 374583 1464643 1380335 2844978
WS 2018/19 1258281 1215276 2473557 207697 186968 394665 1465978 1402244 2868222
WS 2019/20 1246852 1232596 2479448 218015 193586 411601 1464867 1426182 2891049
WS 2020/21 1253399 1274309 2527708 222967 193470 416437 1476366 1467779 2944145
WS 2021/22 1231256 1270095 2501351 235026 205538 440564 1466282 1475633 2941915

Anwendungsdomäne

Bildung.

Es kann eingesehen werden, wie viele Studierende jeweils in den Wintersemestern zwischen 98/99 und 21/22 an Deutschen Hochschulen/Universitäten eingeschrieben waren.

Es wird Unterteilt in Deutsche und Ausländische, sowie Männliche und Weibliche Student/Innen.

Man kann einsehen wie sich die Anzahl der Studierenden in Deutschland, sowie der Anteil an Deutschen/Ausländischen und Männlichen/Weiblichen Studend/Innen entwickelt hat.

Datenerhebung

Primärdaten des Statistischen Bundesamts. Vollerhebung. Zeitreihen.

Link zur Quelle: https://www-genesis.destatis.de/genesis/online?operation=table&code=21311-0001&bypass=true&levelindex=1&levelid=1680177866354#abreadcrumb

Beschreibung des Datensatzes

Merkmal Datentyp Merkmalsausprägung Klassifizierung Skalierung
Semester String Quantitativ Diskret Nominal
Deutsche/männlich Integer Quantitativ Diskret Metrisch
Deutsche/weiblich Integer Quantitativ Diskret Metrisch
Deutsche/Insgesamt Integer Quantitativ Diskret Metrisch
Ausländer/männlich Integer Quantitativ Diskret Metrisch
Ausländer/weiblich Integer Quantitativ Diskret Metrisch
Ausländer/insgesamt Integer Quantitativ Diskret Metrisch
Insgesamt/männlich Integer Quantitativ Diskret Metrisch
Insgesamt/weiblich Integer Quantitativ Diskret Metrisch
Insgesamt Integer Quantitativ Diskret Metrisch

Merkmalsträger: 24

Merkmale: 10

Größe des Datensatzes: 24 Zeilen und 10 Spalten

Hypothesen

  1. Die Anzahl der Ausländischen Studenten in Deutschland hat sich seit dem WS 00/01 verdoppelt.
  2. Der %-Anteil an studierenden Frauen (insgesamt) gegenüber studierenden Männern (insgesamt) hat sich seit dem WS 98/99 stetig erhöht.

Datenaufbereitung

Wie können Daten eingelesen werden

Es können verschiedene Datenvormate eingelesen werden, z.B CSV, XLSX

  1. Daten aus einer CSV-Datei einlesen

    Video Tutorial für CSV-Dateien

    es gibt zwei Funktionen zum einlesen einer CSV-Datei

    • read.csv wird verwendet wenn Dezimalzahlen mit einem Punkt “.” getrennt werden und Spalten durch ein Komma “,”.
    • read.csv2 wird verwendet wenn Dezimalzahlen durch eine Komma “,” getrennt werden und Spalten durch ein Semikolon “;”.

    In diesem Beispiel wird der dataframe daten_csv erstellt durch die Datei mit dem Namen daten.csv zusätzlich werden dann Fehlende Werte durch na=“NA” aufgefüllt.

    Wenn die Datei im Arbeitsverzeichnis ist

    daten_csv <- read.csv2("daten.csv", na="NA")
    

    Wenn die Datei auserhalb des Arbeitsverzeichnis ist

    daten_csv <- read.csv2("C:/Dokumente/daten.csv", na="NA")
    

    Wenn man den Pfad erst nach dem ausführen angeben will kann man auch

    daten_csv <- read.csv2(file.choose(), na="NA")
    

    nuzen dort wird nach dem ausführen ein Fenster geöffnet bei dem man die Datei dann im Explorer auswählen kann.

    An die read.csv bzw read.csv2 können noch weitere Parameter Hinzugefügt werden z.B.

    na="NA" Dadruch werden fehlende Werte spezifiziert damit R diese nicht für Berechnungen verwendet
    
    dec="," Dadurch wird das Trennzeichen für Dezimalzahlen festgelegt zum einlesen
    
    sep=";" Dadurch wird das Trennzeichen das die Werte in einer Zeile Seperiert festgelegt zum einlesen
  2. Daten für eine XLSX Datei einlesen

    Video Tutorial für XLSX-Dateien

    Hier wird an stelle von read.csv bzw read.csv2 read_exel verwendet

    davor muss aber mit

    install.packages("readxl")
    

    Das benötigte Packert installiert werden und mit

    libary (readxl)

    das Packet engebunden werden um die read Funktion verwenden zu können

    hier gibt es aber nicht die Argumente wie bei csv auser

    na="NA"

Wie können Inkosistenzen und Leerstellen behoben werden

Fälle mit fehlende Werten in R löschen

Durch die Funktion na.omit() können Zeilen entfernt werden in denen Fehlerhafte Werte stehen.

Im Beispiel hier werden alle Zeilen mit na werten vom dataframe daten entfernt und im dataframe gesaueberte_daten abgelegt

gesaueberte_daten <- na.omit(daten)

Um fehlende Werte direkt bei der Berechnung zu behandeln kann na.rm benutzt werden. Wenn es auf TRUE gesetzt ist überspringt es NA werte. Folgende Funktionen können na.rm nutzen

colSums()

rowSums()

colMeans()

rowMeans()

Beispiel für die Anwendung von na.rm

narmtest <- read.csv("narmtest.csv", na="NA")
## Warning in read.table(file = file, header = header, sep = sep, quote = quote, :
## unvollständige letzte Zeile von readTableHeader in 'narmtest.csv' gefunden
narmtest
rowSums(narmtest, na.rm = TRUE,)
## [1]  4 15  6

Datenanalyse

Information: Die hier dargestellten Tabellen beinhalten zur Veranschaulichung jeweils nur die ersten 10 Zeilen. Unser Datensatz besteht aus 24 Zeilen.

Hier ist unser tatsächlicher Datensatz aus der Excel-Datei:

kable(head(data,10))
Semester Deutsche …3 …4 Ausländer …6 …7 Insgesamt …9 …10
NA männlich weiblich Insgesamt männlich weiblich Insgesamt männlich weiblich Insgesamt
WS 1998/99 907403 727254 1634657 92321 73673 165994 999724 800927 1800651
WS 1999/00 872178 723246 1595424 95460 79605 175065 967638 802851 1770489
WS 2000/01 870016 741820 1611836 99906 87121 187027 969922 828941 1798863
WS 2001/02 887462 774628 1662090 107831 98410 206241 995293 873038 1868331
WS 2002/03 903218 808567 1711785 117205 109821 227026 1020423 918388 1938811
WS 2003/04 935718 837611 1773329 125826 120310 246136 1061544 957921 2019465
WS 2004/05 901979 814795 1716774 124220 122114 246334 1026199 936909 1963108
WS 2005/06 912696 824712 1737408 124447 123910 248357 1037143 948622 1985765
WS 2006/07 909740 822934 1732674 122923 123446 246369 1032663 946380 1979043

Eigenschaften der Daten

Nun können wir Eigenschaften wie Mittelwert, Median, Varianz und die Standartabweichung berechnen. Dazu nutzen wir die 8. und 9. Spalte. Diese enthalten die gesamte Anzahl der Männlichen und Weiblichen Student:innen der Jahre:

selected_data <- data[ ,8:9]
kable(head(selected_data, 10))
Insgesamt …9
männlich weiblich
999724 800927
967638 802851
969922 828941
995293 873038
1020423 918388
1061544 957921
1026199 936909
1037143 948622
1032663 946380

Wir teilen die Daten in männlich und weiblich. Zusätzlich werden die Spalten etwas konvertiert:

data_male <- as.numeric(unlist(selected_data[-1 ,1]))
data_female <- as.numeric(unlist(selected_data[-1 ,2]))
print(data_male)
##  [1]  999724  967638  969922  995293 1020423 1061544 1026199 1037143 1032663
## [10] 1014761 1057806 1106450 1157485 1255372 1314017 1371640 1408534 1434126
## [19] 1453625 1464643 1465978 1464867 1476366 1466282

Und Berechnen:
Den Mittelwert:

print(paste("Mittelwert male: ", mean(data_male), "Mittelwert female: ", mean(data_female)))
## [1] "Mittelwert male:  1209270.875 Mittelwert female:  1110770.875"

Den Median:

print(paste("Median male: ", median(data_male), "Median female: ", median(data_female)))
## [1] "Median male:  1131967.5 Median female:  1037268.5"

Die Varianz:

print(paste("Varianz male: ", var(data_male), "Varianz female: ", var(data_female)))
## [1] "Varianz male:  41499717399.6793 Varianz female:  52823225049.6793"

und die Standartabweichung:

print(paste("Std. Abweichung male: ", sd(data_male), "Std. Abweichung female: ", sd(data_female)))
## [1] "Std. Abweichung male:  203714.794258246 Std. Abweichung female:  229833.037332929"

Hypothesentest

In der Datenbasis haben wir 2 Hypothesen aufgestellt:

  • Die Anzahl der Ausländischen Studenten in Deutschland hat sich seit dem WS 00/01 verdoppelt.
  • Der %-Anteil an studierenden Frauen (insgesamt) gegenüber studierenden Männern (insgesamt) hat sich seit dem WS 98/99 stetig erhöht.

Für die erste Hypothese müssen wir lediglich die Summe der Ausländischen Student:innen vom Wintersemester 2000 mit dem aktuellstem Wintersemester vergleichen und schauen, ob der Wert vom Aktuellen Semester größer oder gleich doppelt so groß ist wie vom altem Wintersemester:

old_ws <- as.numeric(data[2,7])
new_ws <- as.numeric(data[25,7])

faktor <- 2
old_ws_double <- old_ws * faktor

print(paste("Stimmt es, dass die Anzahl an ausländischen Student:innen sich seid dem WS 2000 mindestens verdoppelt hat: ", new_ws >= old_ws_double))
## [1] "Stimmt es, dass die Anzahl an ausländischen Student:innen sich seid dem WS 2000 mindestens verdoppelt hat:  TRUE"

Für die 2. Hypothese können wir die Lineare Regression und die Koeffizienz berechnen.

daten <- data.frame(
  Jahr = c(1998:2021),
  Frauen = c(as.numeric(unlist(data[2:25 ,9]))),
  Männer = c(as.numeric(unlist(data[2:25 ,8])))
)

kable(daten$Frauen)
x
800927
802851
828941
873038
918388
957921
936909
948622
946380
926644
967501
1014728
1059809
1125602
1185392
1245241
1290376
1323673
1353385
1380335
1402244
1426182
1467779
1475633
daten$Frauen_Anteil <- daten$Frauen / (daten$Frauen + daten$Männer) * 100
daten$Männer_Anteil <- daten$Männer / (daten$Frauen + daten$Männer) * 100

trend_f <- lm(Frauen_Anteil ~ Jahr, data = daten)
trend_m <- lm(Männer_Anteil ~ Jahr, data = daten)

print(coef(trend_f))
##  (Intercept)         Jahr 
## -257.9118506    0.1520867
print(coef(trend_m))
## (Intercept)        Jahr 
## 357.9118506  -0.1520867

Ergebnispräsentation

In der Datenanalyse haben wir bei der 2. Hypothese geschaut, ob die Anzahl an Frauen im vergleich zu Männern stetig erhöt hat. Hierzu eine Visualisierung:

plot(daten$Jahr, daten$Frauen_Anteil, xlab = "Jahr", ylab = "% Anteil Frauen", main = "Trend der Frauenanteile")

abline(trend_f, col = "red")

plot(daten$Jahr, daten$Männer_Anteil, xlab = "Jahr", ylab = "% Anteil Männer", main = "Trend der Männeranteile")

abline(trend_m, col = "blue")

Wie man sieht ist es tatsächlich so, dass der Frauenanteil stetig gestiegen ist, im vergleich zum Männeranteil.

Teaminfos

Wer hat was erstellt/implementiert:

Martin Hustoles: Datenanalyse, Ergebnispräsentation

Marcel Kehrberg: Datenaufbereitung

Kevin Kirsten: Layout, Titelseite, Datenbasis

Tutorial Data Science

|Projektgruppe 01
|Martin Hustoles
|Marcel Kehrberg
|Kevin Kirsten

Abgabedatum: 03.07.2023