Statistika deskriptif merangkum sekumpulan data menjadi beberapa angka yang mudah dibaca. Topik ini memperkenalkan fungsi-fungsi dasarnya di R, yaitu mean, median, sd, var, quantile, IQR, dan summary, yang dijalankan pada satu vektor maupun pada data frame. Pembahasan ditutup dengan perbandingan mean dan median pada data yang memuat pencilan, sehingga keputusan memilih salah satunya punya dasar yang jelas. Data contohnya berupa nilai ujian siswa yang sepenuhnya dibuat untuk keperluan latihan.
Rata-rata, median, dan simpangan baku#
Rata-rata (mean) dihitung dengan menjumlahkan seluruh nilai lalu membaginya dengan banyaknya data. Notasi matematisnya dituliskan sebagai berikut, dengan menyatakan banyaknya data.
Median adalah nilai tengah data setelah data diurutkan, sedangkan simpangan baku (standard deviation) mengukur jarak tipikal antara setiap nilai dan rata-ratanya. Varians adalah kuadrat dari simpangan baku dan muncul di banyak rumus statistik lanjutan. Keempat besaran tersebut dihitung di R dengan fungsi mean(), median(), sd(), dan var(). Data contohnya berupa nilai ujian statistika dari dua belas siswa yang disimpan dalam vektor nilai. Paket tidyverse dimuat terlebih dahulu karena tibble dari paket tersebut digunakan pada contoh data frame.
library(tidyverse)
nilai <- c(72, 78, 65, 88, 90, 74, 81, 69, 85, 77, 80, 76)── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.2.1 ✔ readr 2.2.0
✔ forcats 1.0.1 ✔ stringr 1.6.0
✔ ggplot2 4.0.3 ✔ tibble 3.3.1
✔ lubridate 1.9.5 ✔ tidyr 1.3.2
✔ purrr 1.2.2
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errorsSetiap fungsi dipanggil langsung pada vektor tersebut tanpa argumen tambahan.
mean(nilai)
median(nilai)
sd(nilai)
var(nilai)[1] 77.91667
[1] 77.5
[1] 7.464563
[1] 55.7197Kelas ini memiliki nilai rata-rata 77,9 dan median 77,5. Kedua ukuran pusat memberikan angka yang hampir sama, tanda bahwa sebaran nilai tidak miring secara berlebihan ke satu sisi. Simpangan baku 7,46 berarti jarak tipikal antara satu nilai ujian dan rata-rata kelas sekitar 7,5 poin. Nilai varians 55,72 persis merupakan kuadrat dari 7,464563, sehingga kedua fungsi itu konsisten satu sama lain.
Kuantil dan ringkasan dengan summary()#
Kuantil (quantile) memotong data terurut pada probabilitas tertentu, misalnya kuartil pada 0,25, 0,50, dan 0,75. Rentang antarkuartil (interquartile range, IQR) adalah jarak antara kuartil ketiga dan kuartil pertama, yaitu rentang yang menampung 50 persen data di tengah. Fungsi min() dan max() melengkapi gambaran dengan batas ekstrem data. Keempat besaran itu dihitung pada vektor nilai berikut.
min(nilai)
max(nilai)
quantile(nilai)
IQR(nilai)[1] 65
[1] 90
0% 25% 50% 75% 100%
65.0 73.5 77.5 82.0 90.0
[1] 8.5Pemanggilan quantile(nilai) tanpa argumen probabilitas mengembalikan lima nilai pada 0%, 25%, 50%, 75%, dan 100%, yaitu nilai minimum, kuartil pertama, median, kuartil ketiga, dan nilai maksimum. IQR bernilai 8,5 karena 82 dikurangi 73,5. Angka itu berarti separuh siswa memperoleh nilai di antara 73,5 dan 82, rentang yang jauh lebih ramping daripada rentang penuh 65 sampai 90. Fungsi summary() memberikan angka-angka yang sama ditambah mean dalam satu pemanggilan pada satu vektor.
summary(nilai) Min. 1st Qu. Median Mean 3rd Qu. Max.
65.00 73.50 77.50 77.92 82.00 90.00 Pada data frame, summary() diterapkan per kolom. Kolom numerik menerima enam angka statistik, sedangkan kolom karakter dilaporkan dengan panjang dan tipe kelasnya. Data dua mata pelajaran dari delapan siswa berikut dibangun sebagai tibble lalu diringkas.
ujian <- tibble(
siswa = c("Ali", "Budi", "Citra", "Dewi", "Eka", "Fajar", "Gita", "Hana"),
matematika = c(72, 78, 65, 88, 90, 74, 81, 69),
statistika = c(70, 82, 68, 85, 88, 71, 79, 74)
)
ujian# A tibble: 8 × 3
siswa matematika statistika
<chr> <dbl> <dbl>
1 Ali 72 70
2 Budi 78 82
3 Citra 65 68
4 Dewi 88 85
5 Eka 90 88
6 Fajar 74 71
7 Gita 81 79
8 Hana 69 74summary(ujian) siswa matematika statistika
Length:8 Min. :65.00 Min. :68.00
Class :character 1st Qu.:71.25 1st Qu.:70.75
Mode :character Median :76.00 Median :76.50
Mean :77.12 Mean :77.12
3rd Qu.:82.75 3rd Qu.:82.75
Max. :90.00 Max. :88.00 Ringkasan per kolom memperlihatkan bahwa kedua mata pelajaran memiliki mean yang sama, yaitu 77,12, tetapi sebarannya sedikit berbeda, misalnya pada kuartil pertama dan nilai maksimumnya. Kolom siswa tidak dihitung secara numerik dan hanya dilaporkan panjang serta tipenya. Pemeriksaan semacam ini biasanya menjadi langkah pertama setelah data siap, karena angka yang janggal pada Min. atau Max. langsung terlihat sebelum analisis diteruskan.
Pencilan dan ketahanan median#
Pencilan (outlier) adalah nilai yang jauh menyimpang dari pola data lainnya. Penyebabnya dapat berupa kesalahan pencatatan, misalnya angka 70 yang tertulis 700, ataupun kondisi yang memang berbeda dari kasus lainnya. Pencilan memengaruhi mean secara penuh karena setiap nilai ikut dijumlahkan dalam rumusnya, sedangkan median hanya bergantung pada posisi nilai di tengah data terurut. Sifat tahan terhadap pengaruh pencilan ini disebut robust, dan median dikenal sebagai ukuran pusat yang robust.
Dampak pencilan diperlihatkan pada vektor nilai. Kedua ukuran pusat dihitung pada data asli, kemudian dihitung ulang setelah satu kesalahan pengetikan menambahkan nilai 700 ke dalam data.
mean(nilai)
median(nilai)
nilai_typo <- c(nilai, 700)
mean(nilai_typo)
median(nilai_typo)[1] 77.91667
[1] 77.5
[1] 125.7692
[1] 78Mean melompat dari 77,9 ke 125,8 karena satu nilai 700 dijumlahkan ke pembilang, sedangkan median hanya bergeser dari 77,5 ke 78. Median bergeser sedikit karena banyaknya data berubah dari dua belas menjadi tiga belas, sehingga posisi nilai tengahnya pindah satu tempat. Angka 125,8 tidak mewakili satu pun siswa karena tidak ada nilai yang mendekati besaran itu. Contoh ini menunjukkan bahwa median tetap dapat diandalkan ketika data belum bersih dari kesalahan entri.
Median lebih tepat dipilih apabila data miring atau memuat nilai ekstrem yang sah, misalnya pendapatan rumah tangga, harga rumah, atau durasi kunjungan pada sebuah situs. Pada data seperti itu, mean tertarik oleh ekor panjang sebarannya dan melaporkan angka yang tidak mewakili mayoritas kasus. Median juga lebih aman pada tahap pemeriksaan awal, sebelum kesalahan entri ditemukan dan diperbaiki. Sebaliknya, mean tetap tepat untuk data yang mendekati simetris dan bebas pencilan karena mean memanfaatkan informasi dari setiap nilai. Untuk deteksi pencilan berbasis kuartil, aturan praktis yang lazim menandai sebuah nilai sebagai pencilan apabila nilainya berada di luar rentang dari kuartil pertama (Q1) dikurangi 1,5 kali IQR sampai kuartil ketiga (Q3) ditambah 1,5 kali IQR, yaitu aturan yang digunakan pada diagram boxplot.
Ringkasan#
- mean() dan sd() memanfaatkan setiap nilai sehingga sensitif terhadap pencilan, sedangkan median dan IQR hanya bergantung pada posisi data terurut sehingga robust.
- quantile() mengembalikan nilai data terurut pada probabilitas tertentu, dan IQR adalah jarak antara kuartil ketiga dan kuartil pertama.
- summary() memberikan enam angka ringkas pada satu vektor dan meringkas setiap kolom pada data frame.
- Median dipilih untuk data miring atau yang memuat pencilan, sedangkan mean dipilih untuk data yang mendekati simetris.
Referensi#
- An Introduction to R — CRAN — Panduan resmi R yang mencakup fungsi statistik dasar seperti mean, median, quantile, dan summary.
- R for Data Science, edisi ke-2 — Wickham, Çetinkaya-Rundel, Grolemund — Buku resmi tidyverse yang membahas pemeriksaan dan peringkasan data sebagai bagian alur eksplorasi.