Der Vorschlag zum Thema der vorliegenden Umfragedaten wurde im Zuge der Lehrveranstaltung “Vertiefung in statistische Methoden der Wildtierforschung” an der Universität für Bodenkultur Wien im Wintersemester 2018/19 von den Studierenden Anja Stefanie Manninger, Vanessa Schüller und Felix Schiestl eingereicht. Der vorliegende Datensatz ist das Ergebnis dieser Umfrage, die von Studenten/Studentinnen der Lehrveranstaltung durchgeführt wurde und sich mit den Gründen für das Fernbleiben in Vorlesungen ohne Anwesenheitspflicht befasst.
Disclaimer: Dieser Datensatz entstand im Zuge einer Lehrveranstaltung und hatte zum Ziel die Handhabung und Analyse eines selbst erhobenen Datensatzes zu üben. Dieser Datensatz ist in keinster Weise als repräsentativ anzusehen, die Ergebnisse und der Inhalt dieses Dokuments eignen sich somit nicht zur Vewendung in wissenschaftlichen Arbeiten.
Wir beginnen mit dem Einlesen des vorliegenden Datensatzes. Dazu findet sich im Menü Datenmanagement
die Option Importiere Daten aus Textdatei, Zwischenablage oder URL
.
Beim Einlesen der Daten ist zu beachten, dass in diesem csv-file Strichpunkte (“;”) als Datenfeldtrennzeichen zum Einsatz kamen. Wir benennen den Datensatz in unserem Beispiel mit “fern”, da sich die Umfrage mit dem Fernbleiben von Vorlesungen befasst.
Um einen ersten Überblick über die Daten zu erhalten, erstellen wir eine Zusammenfassung der aktiven Datenmatrix mit dem Befehl Aktive Datenmatrix
im Menü Statistik/ Deskriptive Statistik
.
In der Konsole von R erscheint nun folgende Ausgabe:
Rcmdr> summary(fern)
f01a.immer.da f02a.lerne.besser f02b.lva.ueberschneidung
j : 46 Min. :1.000 Min. :1.00
n :416 1st Qu.:2.000 1st Qu.:2.00
NA's: 5 Median :2.000 Median :2.00
Mean :2.144 Mean :2.47
3rd Qu.:3.000 3rd Qu.:3.00
Max. :4.000 Max. :4.00
NA's :49 NA's :50
f02c.privater.konflikt f02d.lehrmethode f02e.morgen f02f.mittag
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:2.000 1st Qu.:2.000 1st Qu.:2.000 1st Qu.:3.000
Median :2.000 Median :2.000 Median :3.000 Median :4.000
Mean :2.511 Mean :2.242 Mean :2.667 Mean :3.289
3rd Qu.:3.000 3rd Qu.:3.000 3rd Qu.:4.000 3rd Qu.:4.000
Max. :5.000 Max. :5.000 Max. :5.000 Max. :5.000
NA's :56 NA's :53 NA's :50 NA's :52
f02g.abend f02h.beruf f02i.raum f03.alter
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:3.000 1st Qu.:2.000 1st Qu.:2.000 1st Qu.:2.000
Median :4.000 Median :3.000 Median :3.000 Median :2.000
Mean :3.318 Mean :2.821 Mean :3.061 Mean :2.115
3rd Qu.:4.000 3rd Qu.:4.000 3rd Qu.:4.000 3rd Qu.:2.000
Max. :5.000 Max. :5.000 Max. :5.000 Max. :4.000
NA's :58 NA's :54 NA's :56 NA's :6
f04.geschlecht f05a.studium f05b.studium.anders
m :214 ubrm :245 Agrar- und Ern<e4>hrungswirtschaft: 4
w :244 ktww : 56 Biologie : 2
NA's: 9 aw : 49 internationale entwicklung : 2
lap : 33 bwl : 1
fw : 20 BWL : 1
(Other): 54 (Other) : 9
NA's : 10 NA's :448
f06a.wohnform f06b.wohnform.anders f07.semester f08a.herkunft
wg :245 Eltern: 1 Min. : 1.000 w :122
eltern : 58 NA's :466 1st Qu.: 3.000 n : 93
partner : 57 Median : 5.000 o : 67
einzel : 52 Mean : 4.911 anders : 38
studentenheim: 39 3rd Qu.: 7.000 stmk : 31
(Other) : 11 Max. :14.000 (Other): 98
NA's : 5 NA's :5 NA's : 18
f08b.herkunft.anders
Deutschland: 16
deutschland: 6
suedtirol : 4
Suedtirol : 4
s<fc>dtirol: 3
(Other) : 19
NA's :415
Wie aus der Zusammenfassung ersichtlich ist, handelt es sich um 467 Beobachtungen in 19 Variablen. Wir interessieren uns für die Beobachtungen, die Angaben in Frage zwei, Frage drei und Frage vier enthalten. Dazu erstellen wir einen neuen Datensatz fern2
, der lediglich die Beobachtungen enthält, die Antworten in diesen Fragen enthalten. Dazu wählen wir unter Datenmanagement
/Aktive Datenmatrix
den Befehl Fälle mit fehlenden Werten entfernen ...
:
Da wir für unsere Analyse nur die Antworten zu den Fragen zwei, drei und vier benötigen, schließen wir auch nur in diesen Fragen unvollständige Werte aus. (Achtung: das Kontrollkästchen über der Auswahlliste muss unbedingt abgewählt werden)
Rcmdr> fern2 <- na.omit(fern[,c("f02a.lerne.besser","f02b.lva.ueberschneidung","f02c.privater.konflikt","f02d.lehrmethode","f02e.morgen","f02f.mittag","f02g.abend","f02h.beruf","f02i.raum","f03.alter","f04.geschlecht")])
Zunächst interessieren wir uns ausschließlich für die Antworten auf Frage 2. Also betrachten wir, analog zum Vorgehen oben, diesmal mit dem Befehl Zusammenfassung numerischer Variablen
, die Zusammenfassung des neuen Datensatzes fern2
, jedoch ausschließlich für die Variablen aus Frage 2. Hierfür müssen im Befehlsfenster lediglich alle mit “f02…” beginnenden Variablen ausgewählt werden.
Rcmdr> numSummary(fern2[,c("f02a.lerne.besser", "f02b.lva.ueberschneidung", "f02c.privater.konflikt", "f02d.lehrmethode", "f02e.morgen", "f02f.mittag", "f02g.abend", "f02h.beruf", "f02i.raum"), drop=FALSE], statistics=c("mean", "sd", "IQR", "quantiles"), quantiles=c(0,.25,.5,.75,1))
mean sd IQR 0% 25% 50% 75% 100% n
f02a.lerne.besser 2.139896 0.8412199 1 1 2 2 3 4 386
f02b.lva.ueberschneidung 2.471503 0.9537166 1 1 2 2 3 4 386
f02c.privater.konflikt 2.512953 0.9594848 1 1 2 2 3 5 386
f02d.lehrmethode 2.233161 0.8604069 1 1 2 2 3 5 386
f02e.morgen 2.689119 1.0819587 2 1 2 3 4 5 386
f02f.mittag 3.287565 0.8695129 1 1 3 4 4 5 386
f02g.abend 3.365285 0.9138115 1 1 3 4 4 5 386
f02h.beruf 2.857513 1.1225703 2 1 2 3 4 5 386
f02i.raum 3.090674 0.9504974 2 1 2 3 4 5 386
Im vorliegenden Fall sind die Antwortmöglichkeiten von 1 (“trifft völlig zu”) bis 4 (“trifft gar nicht zu”) codiert. Die Antwortmöglichkeit “keine Angabe” (codiert als NA
) ist im vorliegenden Fall nicht möglich, da Beobachtungen mit fehlenden Antworten bereits entfernt wurden. Hohe Werte des arithmetischen Mittels zeigen hier also eine Tendenz zur Ablehnung der beschriebenen Begründung. Es ist zu beachten, dass ein Wert von \(2.5\) keinerlei Tendenz, also im Schnitt keiner Zu- oder Ablehnung entspricht.
Zur weiteren Analyse der Daten führen wir nun eine Hauptkomponentenanalyse (PCA - “Principal Component Analysis”) durch. Im R-Commander benötigen wir dazu den Befehl Hauptkomponenten-Analyse ...
, der unter Statistik
/Dimensionsreduktion und Klassifizieren
zu finden ist
Als Variablen wählen wir wieder ausschließlich, die Bestandteile der zweiten Frage (“f02…”). Außerdem muss in den Optionen die Auswahl Analysiere Korrelationsmatrix
aufgehoben werden, da dies die Berechnungsmethode beeinflusst.
Rcmdr> .PC <- princomp(~f02a.lerne.besser+f02b.lva.ueberschneidung+f02c.privater.konflikt+f02d.lehrmethode+f02e.morgen+f02f.mittag+f02g.abend+f02h.beruf+f02i.raum, cor=FALSE, data=fern2)
Rcmdr> cat("\nComponent loadings:\n")
Component loadings:
Rcmdr> print(unclass(loadings(.PC)))
Comp.1 Comp.2 Comp.3 Comp.4
f02a.lerne.besser 0.08927101 0.022066503 0.346865096 0.48863101
f02b.lva.ueberschneidung -0.21749349 -0.077624390 -0.529236633 0.61190920
f02c.privater.konflikt 0.36878275 -0.218089787 0.424479415 -0.11359830
f02d.lehrmethode 0.09198694 0.158555577 0.316798794 0.46320927
f02e.morgen 0.62747521 0.065751914 0.007864173 0.30723953
f02f.mittag 0.38636783 -0.057992592 -0.260696763 -0.09371350
f02g.abend 0.39281558 0.003036020 -0.243079722 -0.21173545
f02h.beruf -0.03037367 -0.955534693 0.025255754 0.09013561
f02i.raum 0.31942616 -0.006501981 -0.437377057 0.05661088
Comp.5 Comp.6 Comp.7 Comp.8
f02a.lerne.besser 0.13420039 0.09043301 0.34807444 0.54755778
f02b.lva.ueberschneidung -0.03043678 0.32783683 -0.42198051 0.07041342
f02c.privater.konflikt 0.24604562 0.15666861 -0.71179585 0.17444719
f02d.lehrmethode 0.41223726 0.07362388 0.16366461 -0.52683261
f02e.morgen -0.64644107 -0.22187508 -0.05957726 -0.18655324
f02f.mittag 0.04077323 0.21345935 0.28524939 0.47109087
f02g.abend 0.16856828 0.62570495 0.18791877 -0.32169275
f02h.beruf -0.03233967 -0.07021917 0.21145347 -0.16290999
f02i.raum 0.54915955 -0.60261803 -0.04893366 0.02198618
Comp.9
f02a.lerne.besser 0.430470544
f02b.lva.ueberschneidung -0.026791053
f02c.privater.konflikt -0.034353069
f02d.lehrmethode -0.414458071
f02e.morgen 0.045026653
f02f.mittag -0.648143937
f02g.abend 0.427838059
f02h.beruf -0.006307942
f02i.raum 0.189257940
Rcmdr> cat("\nComponent variances:\n")
Component variances:
Rcmdr> print(.PC$sd^2)
Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7
1.7279134 1.3130985 1.0602007 0.8664636 0.8199903 0.6963388 0.6596637
Comp.8 Comp.9
0.5600746 0.4784895
Rcmdr> cat("\n")
Rcmdr> print(summary(.PC))
Importance of components:
Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
Standard deviation 1.3145012 1.1459051 1.0296605 0.9308403 0.9055331
Proportion of Variance 0.2111787 0.1604817 0.1295735 0.1058957 0.1002159
Cumulative Proportion 0.2111787 0.3716604 0.5012339 0.6071297 0.7073456
Comp.6 Comp.7 Comp.8 Comp.9
Standard deviation 0.83446917 0.81219682 0.74838129 0.69172935
Proportion of Variance 0.08510376 0.08062147 0.06845009 0.05847908
Cumulative Proportion 0.79244936 0.87307083 0.94152092 1.00000000
In der Zusammenfassung der Hauptkomponentenanalyse können wir ablesen welcher Anteil der Varianz durch die verschiedenen Hauptkomponenten abgedeckt wird. Beispielsweise wird durch die ersten zwei Hauptkomponenten bereits 37% der Varianz im Datensatz abgedeckt. Außerdem können wir die Zugehörigkeiten der einzelnen Variablen zu den Hauptkomponenten an den sogenannten “loadings” ablesen. So zeigt sich zum Beispiel, dass die erste Hauptkomponente hauptsächlich aus Begründungen zum Fernbleiben von Vorlesungen aus zeitlichen Gründen besteht (betragsmäßig hohe Werte für f02c
, f02e
, f02f
und f02g
in der ersten Hauptkomponente Comp.1
). In der zweiten Hauptkomponente Comp.2
geht es eher um berufliche Gründe (f02h
).
Als nächstes wollen wir den Datensatz in 4 Gruppen (“Cluster”) unterteilen. Um Gruppen zu erhalten, in denen die Daten möglichst “nah” (im Sinne des quadrierten Abstandes) zum Gruppenmittel liegen, verwenden wir den Befehl Clusterzentrenanalyse
.
Wir beziehen wieder alle Variablen der zweiten Frage in die Analyse, also alle Variablen beginnend mit “f02…”. Außerdem müssen wir unter Optionen die notwendigen Kästchen anklicken: Bi-Plot der Cluster
und Clusterzugehörigkeit in Datenmatrix speichern
.
Rcmdr> .cluster <- KMeans(model.matrix(~-1 + f02a.lerne.besser + f02b.lva.ueberschneidung + f02c.privater.konflikt + f02d.lehrmethode + f02e.morgen + f02f.mittag + f02g.abend + f02h.beruf + f02i.raum, fern2), centers = 4, iter.max = 20, num.seeds = 10)
Rcmdr> .cluster$size # Cluster Sizes
[1] 94 111 60 121
Rcmdr> .cluster$centers # Cluster Centroids
new.x.f02a.lerne.besser new.x.f02b.lva.ueberschneidung
1 2.031915 2.606383
2 2.288288 2.441441
3 2.083333 2.633333
4 2.115702 2.314050
new.x.f02c.privater.konflikt new.x.f02d.lehrmethode new.x.f02e.morgen
1 2.393617 2.095745 1.659574
2 2.981982 2.234234 3.558559
3 1.966667 2.250000 1.866667
4 2.446281 2.330579 3.099174
new.x.f02f.mittag new.x.f02g.abend new.x.f02h.beruf new.x.f02i.raum
1 3.191489 3.361702 3.723404 3.074468
2 3.558559 3.594595 3.729730 3.234234
3 2.250000 2.166667 2.250000 2.200000
4 3.628099 3.752066 1.685950 3.413223
Rcmdr> .cluster$withinss # Within Cluster Sum of Squares
[1] 502.5638 573.3153 487.0667 690.1653
Rcmdr> .cluster$tot.withinss # Total Within Sum of Squares
[1] 2253.111
Rcmdr> .cluster$betweenss # Between Cluster Sum of Squares
[1] 905.2309
Rcmdr> biplot(princomp(model.matrix(~-1 + f02a.lerne.besser + f02b.lva.ueberschneidung + f02c.privater.konflikt + f02d.lehrmethode + f02e.morgen + f02f.mittag + f02g.abend + f02h.beruf + f02i.raum, fern2)), xlabs = as.character(.cluster$cluster))
Rcmdr> fern2$KMeans <- assignCluster(model.matrix(~-1 + f02a.lerne.besser + f02b.lva.ueberschneidung + f02c.privater.konflikt + f02d.lehrmethode + f02e.morgen + f02f.mittag + f02g.abend + f02h.beruf + f02i.raum, fern2), fern2, .cluster$cluster)
Hier zeigt sich ein typisches Bild bei der Analyse von Umfragedaten: die vier Quadranten des Koordinatensystems bilden in etwa die 4 Gruppen. Die Gruppeneinteilung erfolgte im Groben also nach den beiden ersten Hauptkomponenten. Es zeigt sich beispielsweise in Gruppe 1 und Gruppe 2 eine Tendenz zu hohen Werten in der Variable f02h.beruf
. (Achtung: bei einer Reproduktion der Analyse kann es vorkommen, dass die Nummerierung der Gruppen etwas anderes ausfällt) Wir erkennen hier wieder, dass die Variable f02h.beruf
fast ausschließlich zur zweiten Hauptkomponente Comp.2
zuzuordnen ist, da sie hauptsächlich in vertikale Richtung zeigt. Die erste Hauptkomponente Comp.1
scheint hingegen aus den Variablen f02b.lva.ueberschneidung
, f02c.privater.konflikt
, f02e.morgen
, f02f.mittag
, f02g.abend
und f02i.raum
zu bestehen. In diesem Plot sind diese Eigenschaften aufgrund der überlappenden Schrift schwer abzulesen, bestätigen im Wesentlichen jedoch unsere Analyse zur Zusammenfassung der Hauptkomponentenanalyse von oben.
Es bleibt nun noch zu klären “wer” in welche Gruppe fällt, also welche Eigenschaften (Alter & Geschlecht) Befragte haben, die in die jeweiligen Gruppen fallen. Wir konzentrieren uns dabei auf die Unterscheidung nach Alter und Geschlecht. Im R-Commander ist diese Analyse nicht möglich, es kann jedochd der folgende Befehl in den R-Commander kopiert und anschließend ausgeführt werden.
Rcmdr> install.packages('party')
Rcmdr> library(party)
Rcmdr> fern.k4 <- KMeans(model.matrix(~-1 + f02a.lerne.besser + f02b.lva.ueberschneidung + f02c.privater.konflikt + f02d.lehrmethode + f02e.morgen + f02f.mittag + f02g.abend + f02h.beruf + f02i.raum, fern2), centers = 4, iter.max = 20, num.seeds = 10)
Rcmdr> fern.baum <- party::ctree(as.factor(fern.k4$cluster)~f03.alter+f04.geschlecht, data=fern2)
Rcmdr> plot(fern.baum)
Wir erkennen, dass der Geschlechterunterschied für keine der Gruppen signifikant zu sein scheint, da diese Kategorisierung im Baumdiagramm nicht auftaucht. Die Unterscheidung nach dem Alter erfolgt in zwei Stufen. Wir erinnern uns hierfür noch einmal an die Codierung der Variable f03.alter
:
Alter | Codierung |
---|---|
<20 | 1 |
20 - 25 | 2 |
26 - 30 | 3 |
Älter als 30 | 4 |
keine Angabe | NA |
Die erste Unterteilung im Baumdiagramm entspricht also einer Teilung in Personen mit einem Alter \(\leq 25\) und \(> 25\). Die über 25 jährigen Personen fallen dabei in einen eigenen Knoten, der hauptsächlich aus Beobachtungen aus Gruppe 4 besteht. Weiter oben haben wir bereits analysiert, dass Befragte in Gruppe 1 einen auffällig niedrigen Wert der Variable f02h.beruf
aufweisen. Dabei ist wieder zu beachten, dass niedrige Werte in dieser Variable einer hohen Zustimmung zur Aussage “Berufstätigkeit hindert mich am Besuch der Lehrveranstaltung” entsprechen. Das scheint plausibel, da ältere Studierende vermutlich eher berufstätig sind und dadurch auch die Gründe für das Fernbleiben von Vorlesungen gegeben sind. Für unter 25 jährige Personen sieht das Baumdiagramm eine weitere (feinere) Unterteilung in unter und über 20 Jährige vor. Hier ist wieder zu beobachten, dass Berufstätigkeit als Begründung für das Fernbleiben von Vorlesungen weiter an Wichtigkeit verliert je jünger der/die Befragte ist.