Hinweise
Eine R-Nutzerin, die bereits vorher einen R-Kurs belegt hat, bewertete dieses Tutorial insgesamt mit einer Schwierigkeit von 7.5 (0=sehr leicht, 10=sehr schwer). Sie brauchte für dieses Tutorial ungefähr 1h15min. Klicke auf “Nächstes Kapitel” und es geht los.
Einführung
Was ist die Kernkompetenz von Psychologen? Meiner Ansicht nach lernen Psychologen in Ihrem Studium zum Großteil Softskills wie sich auf viele Prüfungen gleichzeitig vorbereiten, gute Vorträge halten oder Hausarbeiten schreiben. Das lernt man auch in anderen Studiengängen. Was man jedoch in anderen Studiengängen nicht lernt ist die systematische Entwicklung von Fragebögen, die eine hohe Qualität aufweisen. Hierfür benötigt man die Faktorenanalyse, die sowohl in der Methodenlehre als auch in der Diagnostik gelehrt wird. Was Du heute lernst, wirst Du also noch häufiger im Studium sehen.
Als zweites Thema und auch letztes Thema der Vorlesung Methodenlehre II, schauen wir uns auch kurz die Cluster-Analyse an. Diese wird nicht so häufig in der Psychologie verwendet, ist aber sehr praktisch und man kann damit ziemlich coole Sachen machen.
Faktoren-Analyse für schlechte Träume
Hattest Du schon mal einen Alptraum? Einen lexikalischen Alptraum? Thurstone und Allport hatten davon sicher einige als sie mit Hilfe des lexikalischen Ansatzes einen Grundpfeiler der Psychologie entwickelten: das Persönlichkeitsmodell Big Five. Die Grundidee des lexikalischen Ansatzes ist, dass Persönlichkeitsmerkmale sich in der Sprache niederschlagen sollten. Schaut man sich also die Sprache an, sollte man daraus ein Persönlichkeitsmodell entwickeln können. Konkret hat man mit Tausenden von Adjektiven angefangen, diese gruppiert und reduziert. Die, die übrig geblieben sind, hat man in Fragebögen benutzt und mit diesen Daten eine Faktorenanalyse gerechnet. Heraus kamen fünf stabile Faktoren, die schon seit fast 100 Jahren Bestandteil der Psychologie sind. Eine solche Faktorenanalyse wollen wir jetzt auch rechnen.
Im Paket qgraph
finden wir die Daten big5
:
install.packages("qgraph")
library(qgraph)
Die Daten laden:
data(big5) # wichtig!
as.data.frame(big5) # schönerer output als bei Matrix
Wir sehen hier 500 Personen (Zeilen) und deren Selbst-Bewertung auf 240 Items (Spalten), die bereits einem der 5 Faktoren zugeordnet sind. Merk-Hilfe für die Faktoren: OCEAN (Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism).
Und jetzt gibt es eigentlich nicht viel zu tun:
fa <- factanal(big5, factors = 5, rotation = "varimax")
fa$loadings
##
## Loadings:
## Factor1 Factor2 Factor3 Factor4 Factor5
## N1 0.537 0.104
## E2 -0.172 0.361
## O3 -0.105 -0.129 0.466
## A4 -0.323 0.335 0.296
## C5 -0.185 0.415 0.130 0.187
## N6 0.452 -0.199 -0.225
## E7 -0.249 0.353 -0.103 -0.123
## O8 0.207 0.434
## A9 0.288 0.111 0.379
## C10 0.236 -0.195 0.303 -0.109
## N11 0.625 -0.122 0.198
## E12 -0.431 0.109 0.109 -0.484
## O13 0.236 -0.119 0.342
## A14 0.262 0.181 0.511
## C15 0.160 0.337 0.189
## N16 0.492 -0.250
## E17 0.427 -0.138
## O18 -0.105 -0.210 0.154
## A19 0.380 0.290
## C20 -0.293 0.250 0.369
## N21 0.197 -0.199 -0.211
## E22 0.104 0.144 -0.193 -0.273 0.179
## O23 -0.156 -0.164 0.500
## A24 0.128 0.486 -0.127
## C25 -0.275 0.125 0.479
## N26 0.636
## E27 -0.100 0.446 -0.120
## O28 -0.124 0.143 0.271
## A29 0.109 0.158 0.102
## C30 -0.238 0.245 0.207 -0.135
## N31 0.594
## E32 -0.144 0.448
## O33 0.121 -0.267 0.349
## A34 -0.119 0.409 0.125
## C35 -0.167 -0.123 -0.149
## N36 0.352 -0.240 -0.264 0.175
## E37 -0.127 0.489 -0.186 -0.130
## O38 0.396
## A39 0.226 0.524 -0.144
## C40 0.116 0.513 -0.120
## N41 0.677 -0.120 -0.107 0.137 0.112
## E42 -0.390 -0.331
## O43 0.164 0.450 0.249
## A44 0.151 0.228 0.151
## C45 -0.236 0.182 0.282 0.244
## N46 0.115 0.184 0.130
## E47 -0.225 0.278 0.404 -0.160
## O48 -0.175 0.160 0.122 0.378
## A49 0.280 -0.233
## C50 -0.107 0.617 -0.191
## N51 0.208 -0.292 -0.351
## E52 -0.127 0.129 -0.191
## O53 0.485
## A54 0.388 -0.143
## C55 -0.115 0.500
## N56 0.396 -0.167
## E57 0.369 -0.182 0.292
## O58 0.257
## A59 0.151 0.462 0.116
## C60 0.482 0.203 0.103
## N61 0.590 0.113
## E62 -0.133 0.418 0.124 0.185
## O63 -0.173 -0.105 0.457
## A64 -0.193 0.292 0.221
## C65 -0.200 0.442 0.162
## N66 0.221 -0.124 -0.454 -0.167
## E67 -0.100 0.287 -0.212 -0.125
## O68 0.137 0.312 0.131 0.200
## A69 0.151 0.221 0.247
## C70 0.518 -0.147
## N71 0.662 0.124
## E72 -0.279 0.163 -0.374 0.114
## O73 0.152 0.239
## A74 0.507 0.191
## C75 0.401 0.108 -0.119
## N76 0.405
## E77 -0.278 -0.132
## O78 -0.159 0.156
## A79 0.399
## C80 -0.230 0.375 0.170
## N81 0.162 0.216 -0.288 -0.190
## E82 -0.210 -0.311 0.152
## O83 -0.132 0.317
## A84 0.229 0.269 0.325 -0.159
## C85 -0.282 0.461 -0.227
## N86 0.621
## E87 -0.464 0.327 -0.101
## O88
## A89 0.195 0.106
## C90 -0.262 0.289 0.186
## N91 0.670 -0.109
## E92 0.540 0.133
## O93 0.119 0.172 -0.221 0.390
## A94 -0.213 0.339
## C95 -0.256 0.285
## N96 0.235 -0.165 -0.309 -0.122
## E97 0.365
## O98 0.533
## A99 0.329 0.113 0.170
## C100 0.102 0.426 -0.100
## N101 0.279 -0.156 -0.135 0.145
## E102 -0.204 -0.308 0.101
## O103 0.243 0.241
## A104 0.424 0.253 0.217
## C105 -0.112 0.128 0.168
## N106 0.455 0.134 -0.145
## E107 -0.383 0.284 -0.293
## O108 0.138 0.143 -0.130 0.255
## A109 0.100 0.384 0.106
## C110 0.183 0.658
## N111 0.191 0.246
## E112 -0.188 -0.148 0.153
## O113 -0.187 -0.228 0.366
## A114 0.102 0.113 0.374
## C115 -0.245 0.104 0.510
## N116 0.398 -0.113
## E117 -0.115 0.410 -0.110 0.205
## O118 0.113 0.229
## A119 0.130 0.261 0.159 0.285
## C120 0.407 0.187
## N121 0.554 -0.122 0.121
## E122 -0.125 0.597 0.105
## O123 0.132 -0.148 0.438
## A124 -0.276 0.381 0.177
## C125 -0.113 0.334 -0.125 0.171
## N126 0.286 -0.404 -0.265
## E127 -0.145 0.252 -0.255
## O128 0.175 0.570
## A129 0.164 0.140 0.150
## C130 -0.514 0.164 0.271
## N131 0.392 0.193 0.132
## E132 -0.187 0.173 -0.361 0.150
## O133 0.136 0.371 0.148 0.308
## A134 -0.204 0.323 0.132
## C135 -0.136 0.284 0.325 0.193
## N136 0.575 -0.108 0.241
## E137 -0.438 0.340 -0.264 0.104
## O138 -0.285 0.143
## A139 -0.137 0.186
## C140 -0.125 0.254 -0.257
## N141 0.286 -0.212 -0.165 0.140
## E142 -0.176 0.393 -0.114 -0.276
## O143 -0.110 0.285
## A144 0.318 0.190 -0.101 0.367 -0.192
## C145 -0.160 0.127 0.535
## N146 0.447 -0.154 0.122
## E147 -0.467 0.419
## O148 -0.150 0.166
## A149 0.113 0.249
## C150 -0.265 0.328 0.391
## N151 0.661
## E152 -0.283 0.463 -0.182
## O153 -0.323 0.204
## A154 -0.156 0.353 -0.109 0.109 0.105
## C155 -0.454 0.104 0.204 -0.181
## N156 0.284 -0.128 -0.447 -0.204
## E157 -0.152 -0.306
## O158 0.157 0.424
## A159 0.232 0.121 0.540
## C160 0.218 0.383 -0.287
## N161 0.599 -0.109 0.252
## E162 -0.194 -0.266 -0.122
## O163 0.311 0.135 0.230
## A164 -0.216 0.341 0.180 0.128
## C165 0.245 0.158 0.123
## N166 0.225 -0.106 -0.143
## E167 0.229 -0.256
## O168 0.273 0.160 -0.115
## A169 0.129 -0.128 0.424
## C170 0.163 0.455 -0.209 0.116
## N171 0.248 0.274 -0.132 -0.138
## E172 -0.153 -0.169
## O173 -0.138 0.400
## A174 0.303 0.350
## C175 -0.395 0.388
## N176 0.507 -0.129
## E177 -0.463 0.477
## O178 -0.172 0.305 0.152 0.297
## A179 0.401 0.226 0.126
## C180 -0.137 0.444 0.374
## N181 0.426 0.102 0.128
## E182 0.487 -0.107 0.114
## O183 0.155 -0.116 0.242
## A184 -0.152 0.408 0.232
## C185 -0.259 0.133 0.283 0.136
## N186 0.356 -0.118 -0.188 0.131
## E187 -0.259 0.412 -0.196 -0.111
## O188 0.111 0.171 0.568
## A189 0.264 0.487
## C190 0.113 0.129 -0.168
## N191 0.720 0.138
## E192 0.156 -0.478
## O193 0.347 0.151 0.177
## A194 0.406 0.130 0.150 0.107
## C195 0.103 0.562
## N196 0.404 0.100
## E197 0.124 -0.109 -0.334
## O198 -0.197 0.231
## A199 0.118 0.355
## C200 0.437 -0.292
## N201 0.151 0.146 -0.341 -0.349
## E202 0.237 -0.322 0.138
## O203 0.374 0.319
## A204 0.113 0.283
## C205 -0.393 0.203 0.102
## N206 0.413 -0.187 -0.192
## E207 0.297 -0.253 0.149
## O208 -0.117 0.157
## A209 0.225 0.150 0.271
## C210 0.182 -0.184 0.321 -0.132
## N211 0.578 0.186
## E212 0.476 0.102
## O213 0.129 -0.175 0.383
## A214 -0.163 0.415
## C215 -0.159 0.650
## N216 0.426 -0.244 -0.123
## E217 -0.157 0.420 -0.137 -0.243 -0.119
## O218 0.280
## A219 0.147 0.474
## C220 -0.121 0.343 0.224
## N221 0.624 -0.134 -0.170 -0.113
## E222 -0.350 0.127 -0.353
## O223 0.169 0.194 -0.102 0.359
## A224 0.398 0.184 0.206
## C225 -0.179 0.274 0.145
## N226 0.263
## E227 -0.302 0.371 0.207 -0.250
## O228 -0.134 0.123 -0.172 0.177
## A229 -0.104 0.158 0.384
## C230 0.103 0.380 -0.168
## N231 0.420 -0.103 -0.212
## E232 -0.103 0.102 -0.117 -0.203 -0.171
## O233 0.162 0.487
## A234 0.203 0.216 0.280 -0.151
## C235 -0.107 0.655
## N236 0.678 -0.145
## E237 -0.244 0.381 -0.139
## O238 0.158 -0.141 0.122
## A239 0.111
## C240 -0.131 0.355 0.292 0.112
##
## Factor1 Factor2 Factor3 Factor4 Factor5
## SS loadings 16.144 11.640 10.649 9.694 7.550
## Proportion Var 0.067 0.049 0.044 0.040 0.031
## Cumulative Var 0.067 0.116 0.160 0.201 0.232
Das ist schon unsere Faktorenanalyse mit 5 extrahierten Faktoren und einer Varimax-Rotation. Wir bekommen die Faktorladungen und die wichtigsten Statistiken. That’s it!
Naja, nicht ganz. Wir müssen die Ergebnisse natürlich auch interpretieren können. Wie sieht’s mit der Varianzaufklärung aus? Die sehen wir in der Spalte Cumulative Var
in der letzten Tabelle und mit 5 Faktoren haben wir 23.2% der Varianz erklärt. Wenn wir uns überlegen, dass wir ursprünglich 240 Items hatten, ist das sehr viel. Wenn wir uns überlegen, dass 23.2% Varianzaufklärung einer der Grundpfeiler der Psychologie sind, hust, hust,… lassen wir das.
Wie kommt man auf die Eigenwerte (hier SS loadings, letzte Tabelle)? Die Faktorladungen über die Faktoren quadrieren und aufsummieren. Zum Beispiel für den ersten Faktor:
sum(fa$loadings[,1]^2)
## [1] 16.14416
Wie kommen wir auf die Kommunalitäten? Das gleiche Prozedere wie für die Eigenwerte, nur über die Zeilen:
sum(fa$loadings[1,]^2)
## [1] 0.3078978
Heißt also, dass von der Gesamt-Varianz des ersten Items 31% durch die 5 Faktoren erklärt wird.
Es stellt sich nun noch die Frage ob die Extraktion von 5 Faktoren gerechtfertigt ist. Hierfür können wir uns die Eigenwerte visuell anschauen und eine Parallel-Analyse durchführen. Dafür brauchen wir das Paket psych
:
library(psych)
Und nun:
parallel <- fa.parallel(big5, fa = "fa")
plot(parallel)
parallel$nfact
## [1] 18
Die Parallelanalyse schlägt 18 Faktoren vor. Man sieht bei dem Plot allerdings nicht so viel, aber wir können auch auf die einzelnen Werte von fa.parallel
zugreifen und uns nur die ersten 30 Faktoren anschauen:
index <- seq(30)
plot(index, parallel$fa.values[index], type = "b", col = "blue", ylim = c(0, 20))
points(index, parallel$fa.sim[index], type = "b", col = "red")
Schon besser, wir sehen nun, dass ab Faktor 19 die Parallelanalyse einen größeren Eigenwert (genauer gesagt das 95% Quantil der Eigenwerte) produziert als er empirisch herauskommt, deshalb extrahieren wir 18. Die Eigenwerte aus der Parallel-Analyse entstehen aus unkorrelierten Daten, rein zufällig so zu sagen. Und das ist natürlich eine sinnvolle Grenze für einen bedeutsamen Eigenwert.
Übrigens, nach dem Kaiser-Kriterium könnten wir 29 Faktoren extrahieren. Die Big Five sind also tatsächlich eher ein Kompromiss aus möglichst wenig Faktoren und halbwegs guter Varianzaufklärung. Eine andere Anzahl an Faktoren wäre statistisch durchaus zu rechtfertigen, jedoch fehlt uns hier natürlich eine theoretische Betrachtung. So gibt es ja auch Facetten von den Big Five, die eben diese weiteren (Unter-)Faktoren begründen. Wir wollen hier aber nicht weiter darüber diskutieren, denn das würde den Rahmen eines R
-Kurses sprengen.
Gut, das sind die Basics für die Faktorenanalyse und die kannst Du jetzt üben. In der Vorlesung bewerteten die Studenten wie gut ihnen die Monate des Jahres gefallen. Damit wurde dann eine Faktorenanalyse gerechnet um die vier Jahreszeiten zu extrahieren. Die Daten sind:
monate <- read.csv("data/monate.csv")
monate
Rechne für die Daten eine Faktorenanalyse. Prüfe zuerst mit einer Parallel-Analyse wie viele Faktoren extrahiert werden sollten:
fa.parallel(monate, fa = "fa")
Berechne nun die Faktorenanalyse und extrahiere 4 Faktoren.
fa <- factanal(monate, factors = 4, rotation = "varimax")
fa
Berechne nun die Kommunalitäten der Monate (Hinweis: benutze die Funktion rowSums
, Hilfe: help(rowSums, base))
:
fa <- factanal(monate, factors = 4, rotation="varimax")
sort(rowSums(fa$loadings^2))
Cluster-Analyse
Die Cluster-Analyse kann für ähnliche Zwecke wie die Faktorenanalyse verwendet werden. Schauen wir uns nochmal die Jahreszeiten an. Wir berechnen zunächst die Korrelation zwischen allen Monatspaaren (was übrigens auch der Ausgangspunkt für die Faktorenanalyse ist, wenn man sie händisch rechnet):
cors <- cor(monate)
as.data.frame(cors)
Nun die Cluster-Analyse:
fit <- hclust(dist(cors), method = "ward.D")
plot(fit)
Über dist
wandeln wir die Korrelationsmatrix in eine Distanzmatrix um. Nach der Berechnung plotten wir das Ergebnis und bekommen die erwartete Einteilung der vier Jahreszeiten. Was stellt die \(y\)-Achse dar? Die Höhe gibt den Abstand zwischen den Clustern an, ist hier jedoch schwer zu interpretieren. Man kann aber zumindest sagen, dass sich zum Beispiel Januar und Februar sehr ähneln weil ihre Distanz gering ist. Hingegen Sommer-Monate und nicht-Sommer-Monate einen sehr großen Abstand voneinander haben. Die Einteilung in nur zwei Cluster ist natürlich auch möglich, wäre aber auch bei der Faktoren-Analyse eine sinnvolle Lösung gewesen.
Wir können das Dendrogramm nun noch abschneiden und die Cluster hervorheben:
groups <- cutree(fit, k = 4)
groups
## Januar Februar M.rz April Mai Juni Juli August
## 1 1 2 2 2 3 3 3
## September Oktober November Dezember
## 4 4 4 1
plot(fit)
rect.hclust(fit, k = 4, border = "blue")
Der hier verwendete Algorithmus ist nur einer aus Dutzenden. Üblicherweise würde man verschiedene Algorithmen miteinander vergleichen und schauen ob sie zu ähnlichen Ergebnissen führen. Aber interessanter ist wohl sich Gedanken über das Distanzmaß zu machen. Hier haben wir einen Spezialfall bei dem wir die Korrelation in eine Distanz umgewandelt haben. Wenn wir gewusst hätten, dass wir mit den Daten eine Cluster-Analyse rechnen, hätten wir andere Fragen stellen müssen. Zum Beispiel wie ähnlich sich zwei Monate sind. Die Faktorenanalyse ist also das passendere Verfahren für die Vorlesungsbefragung, aber man sieht, dass die Cluster-Analyse zum gleichen Ergebnis führt.
Schauen wir uns noch ein zweites, passenderes Beispiel an. Wir kennen ja schon den Datensatz zu Autos aus den 1974er Jahren mtcars
:
as.data.frame(mtcars)
Den wollen wir jetzt mal Clustern. Im Gegensatz zum letzten Beispiel müssen wir hier nicht mit Korrelationen arbeiten, sondern können direkt die Distanz berechnen. Allerdings haben wir hier mehrere Variablen, die alle in eine einzige Distanz pro Paar eingehen. Da die Variablen auf unterschiedlichen Skalen sind, würde man sie üblicherweise zunächst \(z\)-standardisieren und erst dann die Distanz berechnen. Also los, \(z\)-standardisiere alle Variablen und berechne dann mit dist
die Distanz.
mtcars_stand <- scale(mtcars)
distance <- as.matrix(dist(mtcars_stand))
distance
which(distance == max(distance), arr.ind = T) # für nachfolgende Frage
Und nun Clustere über hclust
mit der Methode ward.D
und gib eine Dendrogramm aus.
fit <- hclust(distance, method = "ward.D")
plot(fit)
Extrahiere nun 3 Cluster und zeige an, wie viele Autos pro Cluster entstehen.
fit <- hclust(distance, method = "ward.D")
groups <- cutree(fit, 3)
groups
table(groups)
Sehr gut! Du hast nun gelernt wie man eine einfache Cluster-Analyse in R
rechnen kann und wie man ein Dendrogramm erstellt. Das soll es für heute auch schon gewesen sein. Willst Du Dich intensiver mit der Cluster-Analyse beschäftigen, wirst Du online viele Materialien finden. Das gleiche trifft auch auf die Faktorenanalyse zu. Einen Tipp gebe ich aber trotzdem noch: Das Buch Multivariate Analysemethoden von Backhaus und Kollegen gibt ausgezeichnete Einführungen in beide Themen. Auch die ANOVA ist dort sehr intuitiv erklärt. Ein Must-Have für jeden Methodiker! Außerdem findest Du sehr gute und knappe Kommando-Übersichten für die Faktoren-Analyse und Cluster-Analyse in den Essential R Cheatsheets (https://johannestitz.com/post/2023-10-03-rcheatsheets2/).
Ausblick
Statt weitere Übungsaufgaben zu rechnen, schauen wir uns heute mal kurz an was wir in diesem Kurs gelernt haben und was Du als nächstes in Deiner R
-Karriere machen solltest.
Wir haben uns zum Großteil an der Vorlesung Methodenlehre II orientiert und die meisten statistischen Verfahren, die in der Psychologie verwendet werden, kurz abgehandelt. Dazu zählen natürlich \(t\)-Test, ANOVA und prominente non-parametrische Verfahren. Das alles haben wir sowohl für unabhängige als auch abhängige Stichproben gemacht. Eine Besonderheit stellt die Kontrast-Analyse dar, die sehr nützlich ist, aber leider kaum verwendet wird, da sie den meisten nicht bekannt ist.
Anschließend haben wir uns intensiv mit der Regression befasst, wohl das wichtigste Thema der Methodenlehre. Zum Schluss haben wir uns die Faktoren- und Cluster-Analyse angeschaut. Neben den statistischen Verfahren, weißt Du auch wie Du einfache Abbildungen erstellst, Daten selektierst und filterst und eigene Funktionen schreibst. Außerdem kannst Du auch Power-Analysen durchführen und Standard-Plots erstellen.
Das ist insgesamt ganz schön viel für einen R-Kurs. Du bist also gut gerüstet für die nächsten statistisch-analytischen Schlachten. Aber Du solltest Dich auch nicht überschätzen. Es gibt noch viel zu lernen. Was solltest Du als nächstes tun?
Falls Du es noch nicht getan hast, installiere Dir R
und Rstudio auf deinen Rechner: https://jjallaire.shinyapps.io/learnr-tutorial-00-setup/
Probiere dann aus, ob Du die Übungsaufgaben, die wir hier durchgearbeitet haben, auch lokal (auf Deinem Rechner) nachvollziehen kannst.
Lerne wie Du Daten lokal einliest (zusätzlich zu den hier gezeigten Übungen schau Dir dazu z. B. auch datacamp an).
Lerne dplyr
und ggplot2
. Tutorials dafür gibt es wie Sand am Meer.
Schaue Dir Videos auf Youtube zu R
an. Z. B. methodenmonster
Lies Dir Blogs zu R
auf r-bloggers durch. Schau auch gerne bei meinem Blog vorbei: https://johannestitz.com
Lies Dir Fragen zu R
auf stackoverflow durch. Melde Dich dort an und stelle eigene Fragen.
Kauf Dir ein R
-Buch und arbeite es durch. R in Action von Matloff oder A handbook of statistical analyses using R von Hothorn sind zwei mögliche Kandidaten.
All das wird notwendig sein, wenn Du wirklich gut werden willst! Dein Mindset sollte sein: Wie mache ich das in R
? Welche Varianten gibt es eine bestimmte Analyse oder Berechnung durchzuführen? Schreibe ich guten Code? Wie schreibe ich besseren Code? Wenn Du stetig an Deinen R
-Skills arbeitest, dauert es nicht mehr lange, bis andere Dich fragen, ob Du ihnen bei einem R
-Problem helfen kannst. Du wirst eventuell auch kleinere Projekte übernehmen und dafür Geld verlangen können. Und irgendwann schreibst Du vielleicht sogar Deine eigenen R
-Packages. (☉_☉)
Die Reise geht weiter!