Sebagian besar prosedur statistik bertumpu pada asumsi tentang sebaran data, dan sebaran yang paling sering digunakan adalah distribusi normal. Topik ini memperkenalkan keluarga fungsi distribusi di R dengan prefiks r, d, p, dan q pada contoh rnorm, dnorm, pnorm, dan qnorm, ditambah runif untuk sebaran seragam. Materi yang dicakup meliputi penarikan sampel acak yang dapat direproduksi dengan set.seed, perhitungan peluang dan kuantil normal, serta simulasi kecil untuk memeriksa bentuk distribusi sampling rata-rata.
Empat prefiks untuk satu distribusi#
Untuk setiap sebaran yang dikenalnya, R menyediakan empat fungsi yang dibedakan oleh prefiks. Prefiks r (random) menarik sampel acak dari sebaran tersebut, prefiks d (density) mengembalikan tinggi kepadatan peluang, prefiks p (probability) mengembalikan peluang kumulatif sampai suatu titik, dan prefiks q (quantile) mengembalikan kuantil pada suatu peluang. Distribusi normal standar, yaitu distribusi normal dengan rata-rata 0 dan simpangan baku 1, menggunakan akhiran norm sehingga keempat fungsinya bernama rnorm(), dnorm(), pnorm(), dan qnorm(). Paket tidyverse dimuat pada blok pertama karena visualisasi pada bagian akhir menggunakan ggplot2.
library(tidyverse)
dnorm(0, mean = 0, sd = 1)
pnorm(1.96, mean = 0, sd = 1)
qnorm(0.975, mean = 0, sd = 1)── 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 errors
[1] 0.3989423
[1] 0.9750021
[1] 1.959964Nilai dnorm(0) sekitar 0,399 adalah tinggi kurva normal standar tepat di titik nol, bukan sebuah peluang. Fungsi pnorm(1.96) mengembalikan peluang bahwa sebuah nilai acak berada di kiri titik 1,96, yaitu 0,975. Fungsi qnorm() merupakan kebalikan dari pnorm(), sehingga qnorm(0.975) mengembalikan angka 1,96 kembali. Pasangan p dan q digunakan bersama, misalnya ketika batas kritis sebuah interval kepercayaan perlu dicari.
Fungsi prefiks r menghasilkan nilai yang berubah setiap kali dijalankan. Agar hasil tetap sama antar eksekusi, set.seed() menetapkan titik awal (seed) bagi generator angka acak sebelum fungsi acak dipanggil.
set.seed(7)
rnorm(3, mean = 0, sd = 1)[1] 2.2872472 -1.1967717 -0.6942925Dengan seed yang sama, baris yang sama selalu mengembalikan tiga nilai yang sama, sehingga contoh pada dokumen dapat direproduksi secara persis. Nilai seed bebas dipilih, tetapi menggunakan satu angka tetap yang tercatat di dokumen analisis adalah kebiasaan yang baik.
Keluarga prefiks yang sama berlaku untuk sebaran lain, misalnya runif() untuk sebaran seragam (uniform distribution), yaitu sebaran yang memberi peluang sama pada setiap nilai dalam rentangnya.
set.seed(42)
runif(5)[1] 0.9148060 0.9370754 0.2861395 0.8304476 0.6417455Tanpa argumen rentang, runif(5) mengembalikan lima nilai acak antara 0 dan 1. Argumen min dan max menggeser rentang tersebut, misalnya runif(5, min = 10, max = 20) mengembalikan nilai pecahan di antara 10 dan 20.
Simulasi data dengan set.seed()#
Fungsi rnorm() bukan sekadar alat latihan, melainkan cara cepat membuat data tiruan yang sifatnya diketahui. Data semacam ini berguna untuk menguji kode analisis sebelum data sungguhan tersedia. Contoh berikut menarik 1.000 nilai yang dianggap sebagai nilai ujian dari populasi dengan rata-rata 75 dan simpangan baku 8.
set.seed(2026)
nilai_sim <- rnorm(1000, mean = 75, sd = 8)
mean(nilai_sim)
median(nilai_sim)
sd(nilai_sim)[1] 75.11013
[1] 75.11778
[1] 7.921037Rata-rata sampel 75,11 dan median 75,12 sangat dekat dengan parameter 75, sedangkan simpangan baku sampel 7,92 dekat dengan 8. Kedekatan itu wajar karena sampelnya berukuran besar, yaitu 1.000 nilai. Kesejajaran mean dan median juga menandakan sebaran yang simetris, salah satu sifat utama distribusi normal.
Data tiruan seperti ini membuat eksperimen kode dapat diulang tanpa risiko, karena kode yang gagal pada data simulasi jauh lebih murah daripada gagal pada data hasil survei yang mahal diperoleh. Nilai hasil rnorm() berupa bilangan pecahan, sehingga pencatatan nilai ujian yang utuh biasanya ditiru dengan pembulatan melalui round(). Urutan argumennya perlu diingat, karena rnorm(1000, mean = 75, sd = 8) berbunyi seribu nilai dengan rata-rata 75 dan simpangan baku 8.
Sifat distribusi normal#
Distribusi normal (normal distribution) adalah sebaran berbentuk lonceng yang simetris terhadap rata-ratanya. Kepadatan peluangnya ditentukan sepenuhnya oleh dua parameter, yaitu sebagai rata-rata dan sebagai simpangan baku.
Simetri menjadikan mean dan median bertumpu pada satu titik yang sama, sebagaimana terlihat pada data simulasi di atas. Sebagai aturan praktis, sekitar 68 persen data berada dalam satu simpangan baku dari rata-rata, sekitar 95 persen dalam dua simpangan baku, dan sekitar 99,7 persen dalam tiga simpangan baku. Aturan ini lazim disebut aturan 68-95-99,7. Ketiganya dapat dihitung ulang dengan pnorm() pada distribusi normal standar.
pnorm(1) - pnorm(-1)
pnorm(2) - pnorm(-2)
pnorm(3) - pnorm(-3)[1] 0.6826895
[1] 0.9544997
[1] 0.9973002Hasilnya mendekati 0,68, 0,95, dan 0,997, sesuai yang dijanjikan aturan praktis. Bentuk pnorm(1) - pnorm(-1) diperlukan karena pnorm() hanya memberikan peluang di kiri suatu titik, sehingga peluang di antara -1 dan 1 dihitung sebagai selisih dua peluang kumulatif. Aturan ini memudahkan pemeriksaan cepat, misalnya nilai ujian 91 dari populasi dengan rata-rata 75 dan simpangan baku 8 berada dua simpangan baku di atas rata-rata, wilayah yang hanya menampung sekitar 2,5 persen kasus teratas.
Distribusi sampling rata-rata#
Rata-rata yang dihitung dari sampel acak sendiri merupakan variabel yang bersebaran. Apabila penarikan sampel diulang berkali-kali, kumpulan rata-rata sampel membentuk distribusi sampling (sampling distribution) yang jauh lebih ramping daripada sebaran data aslinya. Simulasi kecil dengan replicate() mengulang penarikan sampel berukuran 30 sebanyak 5.000 kali dari populasi yang sama dengan sebelumnya.
set.seed(2026)
rata_rata <- replicate(5000, mean(rnorm(30, mean = 75, sd = 8)))
mean(rata_rata)
sd(rata_rata)[1] 75.01752
[1] 1.478155Rata-rata dari 5.000 rata-rata sampel adalah 75,02, nyaris sama dengan rata-rata populasi. Simpangan bakunya 1,48, jauh lebih kecil daripada 8, dan mendekati nilai teoretis . Simpangan baku dari distribusi sampling disebut error standar (standard error) dan berkurang seiring bertambahnya ukuran sampel. Perbedaan ini menjelaskan mengapa rata-rata sampel berukuran besar menjadi perkiraan yang stabil terhadap rata-rata populasi.
Bentuk distribusi sampling diperiksa melalui histogram berikut, dan garis putus-putusnya menandai rata-rata populasi 75.
p <- ggplot(tibble(rata = rata_rata), aes(x = rata)) +
geom_histogram(binwidth = 0.5, color = "white", fill = "#4472C4") +
geom_vline(xintercept = 75, linetype = "dashed") +
labs(
x = "Rata-rata sampel",
y = "Frekuensi",
title = "Distribusi sampling rata-rata (n = 30)"
) +
theme_minimal()
ggplot2::ggsave("distribusi-sampling.svg", p, width = 5, height = 3.2)Histogram menyerupai kurva lonceng dan berpusat di 75, sesuai teori distribusi sampling. Rata-rata sampel dari populasi normal memang bersebaran normal, tetapi lebih ramping daripada populasi aslinya seiring bertambahnya ukuran sampel. Perbandingan lebar kedua sebaran itulah yang nantinya menjadi dasar pengujian hipotesis pada modul ini.
Ringkasan#
- Setiap sebaran memiliki empat fungsi dengan prefiks r untuk sampel acak, d untuk kepadatan, p untuk peluang kumulatif, dan q untuk kuantil, contohnya rnorm(), dnorm(), pnorm(), dan qnorm().
- set.seed() menetapkan titik awal generator angka acak sehingga hasil simulasi dapat direproduksi secara persis.
- Aturan 68-95-99,7 menghubungkan rentang simpangan baku dengan persentase data, dan pnorm() menghitung peluang kumulatif distribusi normal.
- Rata-rata sampel berulang membentuk distribusi sampling yang berpusat pada rata-rata populasi dengan error standar .
Referensi#
- An Introduction to R — CRAN — Bagian probability distributions memperkenalkan keluarga fungsi rnorm, dnorm, pnorm, dan qnorm beserta sebaran bawaan R lainnya.
- R for Data Science, edisi ke-2 — Wickham, Çetinkaya-Rundel, Grolemund — Bab tentang ketidakpastian membahas sampling, distribusi bootstrap, dan alasan keacakan perlu direproduksi.