So kennzeichnen sie ausreißer in boxplots in ggplot2


Dieses Tutorial bietet ein schrittweises Beispiel für die Kennzeichnung von Ausreißern in Boxplots in ggplot2.

Schritt 1: Erstellen Sie den Datenrahmen

Erstellen wir zunächst den folgenden Datenrahmen, der Informationen über die von 60 verschiedenen Basketballspielern in drei verschiedenen Teams erzielten Punkte enthält:

 #make this example reproducible
set. seeds (1)

#create data frame
df <- data. frame (team=rep(c('A', 'B', 'C'), each= 20 ),
                 player=rep(LETTERS[1:20], times= 3 ),
                 points=round(rnorm(n=60, mean=30, sd=10), 2))

#view head of data frame
head(df)

  team player points
1 AA 23.74
2AB 31.84
3 AC 21.64
4AD 45.95
5 AE 33.30
6 FY 21.80

Hinweis : Wir haben die Funktion set.seed() verwendet, um sicherzustellen, dass dieses Beispiel reproduzierbar ist.

Schritt 2: Definieren Sie eine Funktion zur Identifizierung von Ausreißern

In ggplot2 wird eine Beobachtung als Ausreißer definiert, wenn sie eine der folgenden beiden Anforderungen erfüllt:

  • Die Beobachtung beträgt das 1,5-fache des Interquartilbereichs unterhalb des ersten Quartils (Q1).
  • Die Beobachtung beträgt das 1,5-fache des Interquartilbereichs über dem dritten Quartil (Q3).

Wir können in R die folgende Funktion erstellen, um Beobachtungen als Ausreißer zu kennzeichnen, wenn sie eine dieser beiden Anforderungen erfüllen:

 find_outlier <- function (x) {
  return (x < quantile(x, .25) - 1.5*IQR(x) | x > quantile(x, .75) + 1.5*IQR(x))
}

Verwandte Themen: So interpretieren Sie den Interquartilbereich

Schritt 3: Beschriften Sie Ausreißer in Boxplots in ggplot2

Dann können wir den folgenden Code verwenden, um Ausreißer in Boxplots in ggplot2 zu kennzeichnen:

 library (ggplot2)
library (dplyr)

#add new column to data frame that indicates if each observation is an outlier
df <- df %>%
        group_by(team) %>%
        mutate(outlier = ifelse(find_outlier(points), points, NA))

#create box plot of points by team and label outliers
ggplot(df, aes(x=team, y=points)) +
  geom_boxplot() +
  geom_text(aes(label=outlier), na. rm = TRUE , hjust= -.5 ) 

Beschriften Sie Ausreißer in Boxplots in ggplot2

Beachten Sie, dass im Diagramm zwei Ausreißer gekennzeichnet sind.

Der erste Ausreißer ist ein Spieler von Team A, der 7,85 Punkte erzielte, und der andere Ausreißer ist ein Spieler von Team B, der 10,11 Punkte erzielte.

Beachten Sie, dass wir diese Ausreißer auch mit einer anderen Variablen kennzeichnen könnten.

Beispielsweise könnten wir die Punkte des Spielers in der Funktion mutate() austauschen, um Ausreißer basierend auf dem Namen des Spielers zu kennzeichnen:

 library (ggplot2)
library (dplyr)

#add new column to data frame that indicates if each observation is an outlier
df <- df %>%
        group_by(team) %>%
        mutate(outlier = ifelse(find_outlier(points), player, NA))

#create box plot of points by team and label outliers
ggplot(df, aes(x=team, y=points)) +
  geom_boxplot() +
  geom_text(aes(label=outlier), na. rm = TRUE , hjust= -.5 ) 

Der Ausreißer von Team A hat jetzt die Bezeichnung N und der Ausreißer von Team B hat jetzt die Bezeichnung D , da diese die Namen der Spieler darstellen, die Ausreißer für Punkte haben.

Hinweis : Das hjust- Argument in geom_text() wird verwendet, um die Beschriftung horizontal nach rechts zu verschieben, damit sie den Plotpunkt nicht überlappt.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in ggplot2 ausführen:

So ändern Sie die Schriftgröße in ggplot2
So entfernen Sie eine Legende in ggplot2
So drehen Sie Achsenbeschriftungen in ggplot2

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert