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
Boxplot Outliers
Re: Boxplot Outliers
Hallo Werner,
schau mal unter. 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.
LG,
Bernhard
schau mal unter
Code: Alles auswählen
help(boxplot.stats)
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")
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Boxplot Outliers
...ich ergänze mein Code-Beispiel noch um den Vorgang des Filterns, möchte aber nochmal ausdrücklich jogos Argument unterstreichen!
Bernhard
LG,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")
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte