Das n-te Perzentil eines Datensatzes ist der Wert, der die ersten n Prozent der Datenwerte abschneidet, wenn alle Werte vom kleinsten zum größten sortiert sind.

Das 90. Perzentil eines Datasets ist beispielsweise der Wert, der die unteren 90% der Datenwerte von den oberen 10% der Datenwerte abschneidet.

Eines der am häufigsten verwendeten Perzentile ist das 50. Perzentil, das den Medianwert eines Datensatzes darstellt: Dies ist der Wert, bei dem 50% aller Datenwerte unterschreiten.

Perzentile können verwendet werden, um Fragen zu beantworten wie:

  • Welche Punktzahl muss ein Schüler bei einem bestimmten Test verdienen, um unter den besten 10% der Punkte zu sein? Um dies zu beantworten, würden wir das 90. Perzentil aller Bewertungen finden,d.h.den Wert, der die unteren 90% der Werte von den oberen 10% trennt.
  • Welche Höhen umfassen die mittleren 50% der Höhen für Schüler einer bestimmten Schule? Um dies zu beantworten, würden wir das 75. Höhenperzentil und das 25. Höhenperzentil finden, die die beiden Werte sind, die die Ober- und Untergrenze für die mittleren 50% der Höhen bestimmen.

Wie berechnet man Perzentile in R

Mit der Funktion quantile(), die die folgende Syntax verwendet, können wir Perzentile in R leicht berechnen:

quantile(x, probs = seq(0, 1, 0.25))

  • x: ein numerischer Vektor, dessen Perzentile wir finden möchten
  • probs: ein numerischer Vektor von Wahrscheinlichkeiten in [0,1], die die Perzentile darstellen, die wir finden möchten

Perzentile eines Vektors finden

Der folgende Code zeigt, wie verschiedene Perzentile für einen bestimmten Vektor in R gefunden werden:

#Erstellen Sie einen Vektor mit 100 Zufallswerten, die gleichmäßig zwischen 0 und 500 verteilt sind
data <- runif(100, 0, 500)
#Finden Sie die Quartile (25., 50. und 75. Perzentil) des Vektors
quantile(data, probs = c(.25, .5, .75))

#      25%       50%       75% 
# 97.78961 225.07593 356.47943 

#Finden Sie die Dezile (10., 20., 30., ..., 90. Perzentile) des Vektors
quantile(data, probs = seq(.1, .9, by = .1))

#      10%       20%       30%       40%       50%       60%       70%       80% 
# 45.92510  87.16659 129.49574 178.27989 225.07593 300.79690 337.84393 386.36108 
#      90% 
#423.28070

#37stes, 53stes, and 87stes Perzentile
quantile(data, probs = c(.37, .53, .87))

#     37%      53%      87% 
#159.9561 239.8420 418.4787 

Perzentile einer Dataframespalte finden

Um zu veranschaulichen, wie die Perzentile einer bestimmten Dataframespalte ermittelt werden, verwenden wir das integrierte Dataset iris :

#Die ersten sechs Zeilen des Iris- Datensatzes anzeigen
head(iris)

#  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1          5.1         3.5          1.4         0.2  setosa
#2          4.9         3.0          1.4         0.2  setosa
#3          4.7         3.2          1.3         0.2  setosa
#4          4.6         3.1          1.5         0.2  setosa
#5          5.0         3.6          1.4         0.2  setosa
#6          5.4         3.9          1.7         0.4  setosa

Der folgende Code zeigt, wie der 90. Perzentilwert für die Spalte Sepal.Length ermittelt wird :

quantile(iris$Sepal.Length, probs = 0.9)
# 90% 
# 6.9

Perzentile mehrerer Dataframespalten finden

Mit der Funktion apply() können wir auch Perzentile für mehrere Spalten gleichzeitig finden:

#Spalten, für die wir Perzentile finden möchten, definieren
small_iris<- iris[ , c('Sepal.Length', 'Sepal.Width', 'Petal.Length', 'Petal.Width')]
#Die Funktion apply() verwenden, um das 90. Perzentil für jede Spalte zu ermitteln
apply(small_iris, 2, function(x) quantile(x, probs = .9))

#Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
#        6.90         3.61         5.80         2.20 

Perzentile nach Gruppe finden

Wir können Perzentile nach Gruppe in R auch mit der Funktion group_by() aus der dplyr Bibliothek finden.

Der folgende Code zeigt, wie das 90. Perzentil von Sepal.Length für jedes der drei Arten im Iris-Datensatz gefunden wird:

#dplyr Bibliothek
library(dplyr)

#finden des 90. Perzentil von Sepal.Length für jede der drei Arten
iris %>%
  group_by(Species) %>%
  summarise(percent90 = quantile(Sepal.Length, probs = .9))

# A tibble: 3 x 2
#  Species    percent90
#            
#1 setosa          5.41
#2 versicolor      6.7 
#3 virginica       7.61

Der folgende Code zeigt, wie das 90. Perzentil für alle Variablen nach Spezies ermittelt wird:

iris %>%
  group_by(Species) %>%
  summarise(percent90_SL = quantile(Sepal.Length, probs = .9),
            percent90_SW = quantile(Sepal.Width, probs = .9),
            percent90_PL = quantile(Petal.Length, probs = .9),
            percent90_PW = quantile(Petal.Width, probs = .9))

# A tibble: 3 x 5
#  Species    percent90_SL percent90_SW percent90_PL percent90_PW
#                                      
#1 setosa             5.41         3.9          1.7          0.4 
#2 versicolor         6.7          3.11         4.8          1.51
#3 virginica          7.61         3.31         6.31         2.4 

Perzentile visualisieren

Es gibt keine integrierte Funktion zum Visualisieren der Perzentile eines Datensatzes in R, aber wir können ein Diagramm erstellen, um die Perzentile relativ einfach zu visualisieren.

Der folgende Code veranschaulicht das Erstellen eines Diagramms der Perzentile für die Datenwerte von Sepal.Length aus dem Iris- Dataset:

n = length(iris$Sepal.Length)
plot((1:n - 1)/(n - 1), sort(iris$Sepal.Length), type="l",
  main = "Visualizing Percentiles",
  xlab = "Percentile",
  ylab = "Value")

Perzentildiagramm in R

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: