Seite 1 von 1

Boxplot Outliers

Verfasst: Mo Mai 14, 2018 10:56 am
von wbart
Hallo,

ich möchte meine Daten von Ausreißern befreien. Mit "boxplot" kann ich sie wunderbar visualisieren und wenn ich "outline=False" angebe habe ich einen bereinigten Datensatz. Jetzt kann ich über $out auf die Liste mit den Outliers zugreifen, ich möchte aber eine Tabelle ohne die Ausreißer als Ergebnis haben. Eine händische Elimination scheitert an der Größe des Datensatzes Geht das?

LG
Werner

Re: Boxplot Outliers

Verfasst: Mo Mai 14, 2018 11:14 am
von bigben
Hallo Werner,

schau mal unter

Code: Alles auswählen

help(boxplot.stats)
. Da siehst Du dass diese Funktion dir eine Vektor "stats" zurückliefert, in dem enthalten ist, an welcher Stelle die Whiskers aufhören. Damit kannst Du Deinen Datensatz so filtern, dass alle Werte über dem oberen und alle unter dem unteren weggefiltert werden. Ob die Definition des Boxplots für Ausreißer auch für Deinen Datensatz/Dein Vorhaben die richtigen Regeln sind, musst Du unabhängig davon für Dich entscheiden.

Code: Alles auswählen

a <- rt(200, df = 3)
boxplot(a)
boxplot.stats(a)$stats
abline(h=boxplot.stats(a)$stats, lty=3, col="red")
LG,
Bernhard

Re: Boxplot Outliers

Verfasst: Mo Mai 14, 2018 11:59 am
von jogo

Re: Boxplot Outliers

Verfasst: Mo Mai 14, 2018 1:37 pm
von bigben
...ich ergänze mein Code-Beispiel noch um den Vorgang des Filterns, möchte aber nochmal ausdrücklich jogos Argument unterstreichen!
a <- rt(200, df = 3)
boxplot(a)

stats <- boxplot.stats(a)$stats
a2 <- Filter(function(x) x>stats[1] & x<stats[5], a)
points(jitter(rep(1, length(a2))), a2, col="red")
LG,
Bernhard

Re: Boxplot Outliers

Verfasst: Mo Mai 14, 2018 1:43 pm
von wbart
Danke schön.