1 Dichotomisierung allgemein
Dichotomisieren bedeutet, dass eine Variable (typischerweise metrisch und ordinal) transformiert wird. Nach der Transformation hat sie nur noch zwei Ausprägungen. Zum Beispiel “ja” oder “nein”, 1 oder 0 und so weiter.
2 Dichotomisieren in R mit der ifelse()-Funktion
Für die Dichotomisierung verwende ich die sogenannte ifelse()-Funktion.
Wenn eine beliebige Bedingung zutrifft, wird eine neue Variable die Ausprägung z.B. 0 bekommen. Ist dies nicht der Fall, bekommt die neue Variable die Ausprägung 1.
Die Prüfbedingung ist eine beliebige Festsetzung eines Trennwertes. Am Beispiel des BMI wäre dieser Trennwert 25 – er trennt Normalgewicht und Übergewicht (vgl. Wikipedia).
2.1 Ziffernbezeichner
Ich erstelle in meinem Dataframe “data” eine neue Variable namens “uebergewicht” und verwende die ifelse()-Funktion für den BMI (data$BMI). Ab einem BMI von 25 (>=25) ist die Person übergewichtig. Der Variable wird dann die Ausprägung 1 zugewiesen. Bei einem BMI kleiner 25 (<25) liegt kein Übergewicht vor. Die Variable bekommt die Ausprägung 1 zugewiesen.
ACHTUNG: Hier muss man gut aufpassen, ob man “<=", "<", ">” oder “>=” wählt, also ob der Trennwert mit eingeschlossen werden soll, oder nicht.
data$uebergewicht <- ifelse(data$BMI >= 25, 1, 0)
2.2 Wörter als Bezeichner
Das Vorgehen ist hier analog. Ich weise einer vorher definierten Variable Ausprägungen zu. Allerdings sind es diesmal Wörter, z.B. eben “Ja” und “Nein”. Wichtig ist hierbei, dass die Wörter in Anführungszeichen geschrieben werden.
data$uebergewicht <- ifelse(data$BMI >= 25, "Ja", "Nein")
Abschließend empfiehlt sich eine Faktorisierung dieser Variable. Bisher ist sie als “Character”, also als Wort, hinterlegt. Gewisse statistische Auswertungen verlangen aber numerische Werte oder eben Faktoren.
data$uebergewicht <- as.factor(data$uebergewicht)
3 Dichotomisieren in R mit dem sjmisc()-Paket und der dicho()-Funktion
Nach der Installation des sjmisc()-Paketes mit install.packages("sjmisc") und dem Laden dessen mit library(sjmisc), verwendet man die dicho()-Funktion. Hier gibt man lediglich die zu dichotomisierende Variable an und weist sie einer neuen Variable zu (hier "uebergewicht" im Dataframe "data").
Das Argument dich.by= ist entscheidend. Hier ist entsprechend der Wert einzusetzen, anhand dessen dichotomisiert wird.
- Standardmäßig wird die neue Variable im Falle "<= dem Trennwert" auf 0 gesetzt.
- Ist die Ausprägung > als der Trennwerts, wird die neue Variable auf 1 gesetzt.
Erneut setze ich hier 25 ein. Die Funktion setzt die Ausprägung der neuen Variable data$uebergewicht bei Werten kleiner oder gleich 25 auf 0, und entsprechend auf 1, wenn die Werte über 25 sind.
Eine Faktorisierung wird von der Funktion dicho() automatisch vorgenommen.
install.packages("sjmisc")
library(sjmisc)
data$uebergewicht<- dicho(data$BMI, dich.by=25)
4 Videotutorial
Weitere nützliche Tutorials findest du auf meinem YouTube-Kanal.