So verwenden sie die jitter-funktion in r für punktwolken


In diesem Tutorial wird erklärt, wann und wie die Jitter- Funktion in R für Punktwolken verwendet wird.

Wann sollte Jitter verwendet werden?

Streudiagramme eignen sich hervorragend zur Visualisierung der Beziehung zwischen zwei kontinuierlichen Variablen. Das folgende Streudiagramm hilft uns beispielsweise dabei, die Beziehung zwischen Größe und Gewicht für 100 Sportler zu visualisieren:

 #define vectors of heights and weights
weights <- runif(100, 160, 240) 
heights <- (weights/3) + rnorm(100)

#create data frame of heights and weights
data <- as.data.frame(cbind(weights, heights))

#view first six rows of data frame
head(data)

# weights heights
#1 170.8859 57.20745
#2 183.2481 62.01162
#3 235.6884 77.93126
#4 231.9864 77.12520
#5 200.8562 67.93486
#6 169.6987 57.54977
#create scatterplot of heights vs weights
plot(data$weights, data$heights, pch = 16, col = 'steelblue')

Manchmal möchten wir jedoch möglicherweise die Beziehung zwischen einer kontinuierlichen Variablen und einer anderen nahezu kontinuierlichen Variablen visualisieren.

Angenommen, wir haben den folgenden Datensatz, der die Anzahl der Spiele zeigt, die ein Basketballspieler in den ersten 10 Spielen einer Saison gestartet hat, sowie seinen Punktedurchschnitt pro Spiel:

 #create data frame
games_started <- sample(1:10, 300, TRUE)
points_per_game <- 3*games_started + rnorm(300)
data <- as.data.frame(cbind(games_started, points_per_game))

#view first six rows of data frame
head(data)

# games_started points_per_game
#1 9 25.831554
#2 9 26.673983
#3 10 29.850948
#4 4 12.024353
#5 4 11.534192
#6 1 4.383127

Punkte pro Spiel sind eine kontinuierliche Variable, aber begonnene Spiele sind eine diskrete Variable. Wenn wir versuchen, ein Streudiagramm dieser beiden Variablen zu erstellen, würde es so aussehen:

 #create scatterplot of games started vs average points per game
plot(data$games_started, data$points_per_game, pch = 16, col = 'steelblue')

Anhand dieses Streudiagramms können wir sagen, dass zwischen den begonnenen Spielen und den durchschnittlichen Punkten pro Spiel ein positiver Zusammenhang besteht. Es ist jedoch etwas schwierig, die einzelnen Punkte im Diagramm zu erkennen, da sich viele davon überschneiden.

Mit der Jitter- Funktion können wir den geworfenen X-Achsen-Variablensätzen etwas „Rauschen“ hinzufügen, damit wir die einzelnen Punkte im Diagramm klarer sehen können:

 #add jitter to games started
plot( jitter (data$games_started), data$points_per_game, pch = 16, col = 'steelblue')

Wir können Jitter optional ein numerisches Argument hinzufügen, um den Daten noch mehr Rauschen hinzuzufügen:

 #add jitter to games started
plot( jitter (data$games_started, 2 ), data$points_per_game, pch = 16, col = 'steelblue')

Wir müssen jedoch darauf achten, nicht zu viel Jitter hinzuzufügen, da dies die Originaldaten zu stark verzerren könnte:

 plot( jitter (data$games_started, 20 ), data$points_per_game, pch = 16, col = 'steelblue')

Jittering sorgt für eine bessere Sicht auf die Daten

Instabilität ist besonders nützlich, wenn eine der Ebenen der diskreten Variablen viel mehr Werte hat als die anderen Ebenen.

Im folgenden Datensatz gibt es beispielsweise dreihundert Basketballspieler, die zwei der ersten fünf Spiele der Saison gestartet haben, aber nur etwa 100 Spieler, die ein, drei, vier oder fünf Spiele gestartet haben:

 games_started <- sample(1:5, 100, TRUE)
points_per_game <- 3*games_started + rnorm(100)
data <- as.data.frame(cbind(games_started, points_per_game))

games_twos <- rep(2, 200)
points_twos <- 3*games_twos + rnorm(200)
data_twos <- as.data.frame(cbind(games_twos, points_twos))
names(data_twos) <- c('games_started', 'points_per_game')

all_data <- rbind(data, data_twos)

Wenn wir die Anzahl der gespielten Spiele im Verhältnis zu den durchschnittlichen Punkten pro Spiel visualisieren, können wir sagen, dass es mehr Spieler gibt, die zwei Spiele gespielt haben. Es ist jedoch schwierig, genau zu sagen , wie viele andere zwei Spiele gespielt haben:

 plot(all_data$games_started, all_data$points_per_game, pch = 16, col = 'steelblue')

Sobald wir jedoch Jitter zur Variable „Spielbeginn“ hinzufügen, können wir sehen, wie viele zusätzliche Spieler zwei Spiele gestartet haben:

 plot( jitter (all_data$games_started), all_data$points_per_game,
     pch=16, col='steelblue')

Durch leichtes Erhöhen des Jitter-Werts wird dieser Unterschied noch deutlicher:

 plot( jitter (all_data$games_started, 1.5 ), all_data$points_per_game,
     pch=16, col='steelblue')

Jitter nur für Visualisierungen

Wie bereits erwähnt, fügt Jitter den Daten zufälliges Rauschen hinzu, was von Vorteil sein kann, wenn wir Daten in einer Punktwolke visualisieren möchten. Durch die Verwendung der Jitter-Funktion können wir uns ein besseres Bild der wahren zugrunde liegenden Beziehung zwischen zwei Variablen in einem Datensatz machen.

Bei der Verwendung statistischer Analysen wie der Regression ist es jedoch nicht sinnvoll, den Variablen in einem Datensatz zufälliges Rauschen hinzuzufügen, da dies die Ergebnisse einer Analyse beeinträchtigen würde.

Jitter ist also nur für die Datenvisualisierung gedacht, nicht für die Datenanalyse.

Einen Kommentar hinzufügen

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