set.seed(123)
N = 1000000 # Membuat 4 populasi besar dengan N = 1.000.000
p.normal = rnorm(N)
p.eksponensial = rexp(N)
p.uniform = runif(N)
p.gamma = rgamma(N, shape = 3, scale = 5)
# Membuat fungsi agar eksekusi kode lebih rapi dan ringkas
simulasi = function(populasi, nama_distribusi) {
ukuran_sampel = c(5, 50, 500)
n_iterasi = 1000
par(mfrow = c(1, 3))
for (n in ukuran_sampel) {
# 1. Ambil sampel menggunakan fungsi sample()
sampel_acak = sample(populasi, size = n * n_iterasi, replace = TRUE) # Ambil total elemen sebanyak (n * 1000 iterasi) dengan pengembalian (replace=TRUE)
# 2. Ubah bentuk vektor menjadi matriks
matriks_sampel = matrix(sampel_acak, nrow = n_iterasi, ncol = n) # Matriks berukuran 1000 baris (iterasi) dan 'n' kolom (ukuran sampel)
# 3. Gunakan fungsi apply() untuk menghitung rata-rata tiap sampel
rataan_sampel = apply(matriks_sampel, 1, mean) # Angka '1' pada margin berarti kita menghitung rata-rata per BARIS
# 4. Histogram (hist())
plot = paste("Rata-rata", nama_distribusi, "\n(n =", n, ")")
hist(rataan_sampel,
main = plot,
xlab = "Nilai Rata-rata",
ylab = "Frekuensi",
col = "steelblue", # Warna balok histogram
border = "white",
breaks = 30) # Memperhalus tampilan balok histogram
}
}
# Jalankan simulasi
simulasi(p.normal, "Normal")
simulasi(p.eksponensial, "Eksponensial")
simulasi(p.uniform, "Uniform")
simulasi(p.gamma, "Gamma(3,5)")
# Visualisasi
par(mfrow = c(1, 1))
Perbadingan histogram untuk setiap distribusi
ketika ukuran sampel masih sangat kecil, bentuk distribusi sebaran dari rataannya masih cenderung mmengikuti sebaran asli dari populasi
Normal: bentuk rataan sampelnya membentuk kurva lonceng simetris sejak awal karena populasinya sudah berdistribusi normal.
Eksponensial: bentuk kurva rataannya miring ke kanan (right-skewed) karena sebagian besar datanya bernilai kecil dan sisanya adalah outlier (pencilan).
Uniform: bentuk kurvanya cenderung lebih lebar dan rata pada bagian tengah karena sifat populasinya yaitu setiap nilai memiliki peluang kemunculan yang sama.
Gamma(3,5): bentuk kurvanya cenderung miring ke kanan (right-skewed) seperti sebaran Eksponensial, tetapi puncaknya sedikit berada di tengah.
Perubahan seiring meningkatnya ukuran sampel
Pemusatan data (ragam mengecil): Bentuk kurvanya cenderung menjadi semakin sempit dan tinggi di bagian tengah. Rentang nilai pada sumbu X menyusut karena ukuran keragamannya atau galat bakunya memiliki rumus \(\sigma /\sqrt n\).
Perubahan bentuk menjadi simetris: Bentuk kurva yang sebelumnya miring pada sebaran Eksponensial dan Gamma berubah menjadi bentuk yang simetris.
Konvergensi ke distribusi normal (Teorema Limit Pusat)
Seluruh distribusi rataan sampel menjadi mendekati sebaran Normal seiring dengan bertambahnya ukuran sampel. Pada grafik dengan n = 500 terlihat bahwa keempat kurva dari masing-masing sebaran memiliki bentuk yang hampir identik membentuk kurva lonceng.
Maka dapat dikatakan bahwa terbukti Teorema Limit Pusat/CLT yang menyatakan rataan dari sebuah sampel yang ukurannya sangat besar atau n > 30 akan memiliki distribusi yang mendekati sebaran normal.