Cara mudah menghitung persentil di r (dengan contoh)


Persentil ke-n suatu kumpulan data adalah nilai yang memotong n persen pertama dari nilai data ketika semua nilai diurutkan dari yang terkecil hingga yang terbesar.

Misalnya, persentil ke-90 suatu kumpulan data adalah nilai yang memisahkan 90% nilai data terbawah dari 10% nilai data teratas.

Salah satu persentil yang paling umum digunakan adalah persentil ke-50, yang mewakili nilai median kumpulan data: ini adalah nilai di mana 50% dari seluruh nilai data berada di bawahnya.

Persentil dapat digunakan untuk menjawab pertanyaan seperti:

  • Berapa nilai yang dibutuhkan seorang siswa pada tes tertentu agar bisa masuk 10% teratas? Untuk menjawab pertanyaan ini, kita akan mencari persentil ke-90 dari seluruh skor, yang merupakan nilai yang memisahkan 90% terbawah dari 10% teratas.
  • Berapa tinggi badan yang mencakup rata-rata setengah tinggi badan siswa di sekolah tertentu? Untuk menjawab pertanyaan ini, kita akan mencari persentil tinggi ke-75 dan persentil tinggi ke-25, yang merupakan dua nilai yang menentukan batas atas dan bawah untuk 50% tengah tinggi badan.

Cara menghitung persentil di R

Kita dapat dengan mudah menghitung persentil di R menggunakan fungsi quantile() , yang menggunakan sintaks berikut:

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

  • x: vektor numerik yang persentilnya ingin kita cari
  • probs: vektor probabilitas numerik dalam [0,1] yang mewakili persentil yang ingin kita temukan

Menemukan persentil suatu vektor

Kode berikut mengilustrasikan cara mencari persentil berbeda untuk vektor tertentu di R:

 #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 

Menemukan persentil kolom bingkai data

Untuk mengilustrasikan cara mencari persentil kolom bingkai data tertentu, kita akan menggunakan kumpulan data bawaan 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

Kode berikut menunjukkan cara mencari nilai persentil ke-90 untuk kolom Sepal.Length :

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

#90% 
#6.9

Menemukan persentil dari beberapa kolom bingkai data

Kita juga dapat menemukan persentil beberapa kolom sekaligus menggunakan fungsi apply() :

 #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

Mencari persentil berdasarkan kelompok

Kita juga dapat menemukan persentil berdasarkan grup di R menggunakan fungsi group_by() dari perpustakaan dplyr .

Kode berikut menunjukkan cara mencari persentil ke-90 Sepal.Length untuk masing-masing
tiga spesies dalam kumpulan data iris:

 #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

Kode berikut mengilustrasikan cara mencari persentil ke-90 untuk semua variabel berdasarkan spesies:

 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 

Melihat persentil

Tidak ada fungsi bawaan untuk memvisualisasikan persentil suatu kumpulan data di R, tetapi kita dapat membuat plot untuk memvisualisasikan persentil dengan relatif mudah.

Kode berikut menunjukkan cara membuat plot persentil untuk nilai data Sepal.Length dari kumpulan data iris :

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

Sumber daya tambahan

Panduan untuk apply(), lapply(), sapply() dan tapply() di R
Buat variabel baru di R dengan mutate() dan case_when()

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *