plot_histogram(mariokart) # aus Paket `DataExplorer`
ausreisser1
eda
datawrangling
tidyverse
ausreisser
string
Aufgabe
Entfernen Sie alle Ausreißer im Datensatz mariokart
!
Hinweise:
- Orientieren Sie sich im Übrigen an den allgemeinen Hinweisen des Datenwerks.
- Definieren Sie “Ausreißer” als Werte, die mehr als 3SD vom Mittelwert entfernt sind.
Lösung
Setup
Überblick
Wir verschaffen uns einen Überblick über die Verteilungen:
Wie man sieht gibt es einige Ausreißer, z.B. bei ship_pr
und total_pr
.
Daten aufbereiten mit z-Transformation
<-
mariokart2 %>%
mariokart select(-id) %>%
mutate(across( # "across" wiederholt die Funktionen ".fns" über alle Spalten ".cols"
.cols = where(is.numeric),
.fns = ~ as.numeric(standardize(.x))))
Leider gibt standardize
kein vernünftiges numerisches Objekt zurück, so dass wir mit as.numeric
die Daten noch zur Räson rufen müssen.
Wie man sieht, ändert sich die Verteilungsform nicht durch die z-Transformation (oder durch irgendeine lineare Transformation):
plot_histogram(mariokart2)
Extremwerte durch MW ersetzen
<-
mariokart3 %>%
mariokart2 mutate(across(
.cols = where(is.numeric),
.fns = ~ case_when(abs(.x) <= 3 ~ .x,
abs(.x) > 3 ~ mean(.x))
))
plot_histogram(mariokart3)
Jetzt sind die Daten deutlich weniger extrem.
Categories:
- eda
- datawrangling
- tidyverse
- ausreisser
- string