So berechnen sie einfach perzentile in r (mit beispielen)


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 werden.

Beispielsweise ist das 90. Perzentil eines Datensatzes der Wert, der die unteren 90 % der Datenwerte von den oberen 10 % der Datenwerte trennt.

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

Mit Perzentilen können Fragen beantwortet werden wie:

  • Wie viel muss ein Schüler in einem bestimmten Test erreichen, um zu den besten 10 % zu gehören? Um diese Frage zu beantworten, würden wir das 90. Perzentil aller Bewertungen ermitteln, das ist der Wert, der die unteren 90 % von den oberen 10 % trennt.
  • Welche Körpergröße umfasst durchschnittlich die Hälfte der Körpergröße der Schüler einer bestimmten Schule? Um diese Frage zu beantworten, würden wir das 75. Höhenperzentil und das 25. Höhenperzentil ermitteln, das sind die beiden Werte, die die Ober- und Untergrenze für die mittleren 50 % der Höhen bestimmen.

So berechnen Sie Perzentile in R

Wir können Perzentile in R einfach mit der Funktion quantile() berechnen, die die folgende Syntax verwendet:

Quantil (x, probs = seq(0, 1, 0,25))

  • x: ein numerischer Vektor, dessen Perzentile wir finden möchten
  • probs: ein numerischer Wahrscheinlichkeitsvektor in [0,1], der die Perzentile darstellt, die wir finden möchten

Ermitteln der Perzentile eines Vektors

Der folgende Code veranschaulicht, wie man verschiedene Perzentile für einen bestimmten Vektor in R findet:

 #create vector of 100 random values uniformly distributed between 0 and 500
data <- runif(100, 0, 500)

#Find the quartiles (25th, 50th, and 75th percentiles) of the vector
quantile (data, probs = c(.25, .5, .75))

# 25% 50% 75% 
#97.78961 225.07593 356.47943 

#Find the deciles (10th, 20th, 30th, ..., 90th percentiles) of the vector
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

#Find the 37th, 53rd, and 87th percentiles
quantile (data, probs = c(.37, .53, .87))

# 37% 53% 87% 
#159.9561 239.8420 418.4787 

Perzentile einer Datenrahmenspalte finden

Um zu veranschaulichen, wie man die Perzentile einer bestimmten Datenrahmenspalte findet, verwenden wir den integrierten Datensatz iris :

 #view first six rows of iris dataset
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 Sie den 90. Perzentilwert für die Spalte Sepal.Length finden:

 quantile (iris$Sepal.Length, probs = 0.9)

#90% 
#6.9

Finden von Perzentilen mehrerer Datenrahmenspalten

Mit der Funktion apply() können wir auch die Perzentile mehrerer Spalten gleichzeitig ermitteln:

 #define columns we want to find percentiles for
small_iris<- iris[, c('Sepal.Length', 'Sepal.Width', 'Petal.Length', 'Petal.Width')]

#use apply() function to find 90th percentile for every column
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

Suche nach Perzentilen nach Gruppe

Wir können in R auch Perzentile nach Gruppen finden, indem wir die Funktion „group_by()“ aus der dplyr- Bibliothek verwenden.

Der folgende Code zeigt, wie das 90. Perzentil von Sepal.Length für jedes der Elemente ermittelt wird
drei Arten im Irisdatensatz:

 #load dplyr library
library(dplyr)

#find 90th percentile of Sepal.Length for each of the three species
iris %>%
  group_by (Species) %>%
  summarize (percent90 = quantile(Sepal.Length, probs = .9))

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

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

 iris %>%
  group_by (Species) %>%
  summarize (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 anzeigen

Es gibt keine integrierte Funktion zur Visualisierung der Perzentile eines Datensatzes in R, aber wir können relativ einfach ein Diagramm zur Visualisierung der Perzentile erstellen.

Der folgende Code zeigt, wie ein Perzentildiagramm für die Sepal.Length- Datenwerte aus dem Iris- Datensatz erstellt wird:

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

Zusätzliche Ressourcen

Eine Anleitung zu apply(), lapply(), sapply() und tapply() in R
Erstellen Sie neue Variablen in R mit mutate() und case_when()

Einen Kommentar hinzufügen

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