LATIHAN 1: Simulasi Pembangkitan Data dan Bootstrap Resampling
Proses diawali dengan menetapkan seed awal, membangkitkan 1000 data acak berdistribusi normal sebagai representasi populasi/data asli, kemudian mengambil 50 sampel bootstrap dengan pengembalian untuk dihitung nilai rata-ratanya.
# 1. Menetapkan seed agar hasil replikasi konsisten
set.seed(150)
# 2. Menghasilkan distribusi normal acak (1000 observasi, mean=30, sd=2.5)
n_observasi <- 1000
data_asli <- rnorm(n_observasi, mean = 30, sd = 2.5)
# 3. Parameter untuk bootstrap
n_bootstrap_samples <- 50
rata_rata_bootstrap <- numeric(n_bootstrap_samples) # Vektor penyimpan hasil
# 4. Melakukan perulangan loop untuk mengambil 50 sampel bootstrap dengan pengembalian
for (i in 1:n_bootstrap_samples) {
# Mengambil indeks acak dari 1 sampai 1000 dengan pengembalian (replace = TRUE)
indeks_resample <- sample(1:n_observasi, replace = TRUE)
# Menghitung rata-rata dari sampel bootstrap ke-i dan menyimpannya ke dalam vektor
rata_rata_bootstrap[i] <- mean(data_asli[indeks_resample])
}
# Menampilkan hasil pengecekan awal (Sanity Check)
length(rata_rata_bootstrap) # Memastikan jumlah sampel ada 50
## [1] 50
summary(rata_rata_bootstrap)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 29.75 29.89 29.92 29.93 29.97 30.10
Penjelasan Latihan 1:
Fungsi set.seed(150) digunakan untuk mengunci algoritma acak di R agar angka yang dihasilkan selalu konsisten saat program dijalankan kembali.
Fungsi rnorm(1000, 30, 2.5) digunakan untuk menciptakan kumpulan data sampel awal sebanyak 1000 observasi.
Fungsi sample(…, replace = TRUE) menjalankan mekanisme utama bootstrap, yaitu mengambil sampel acak seukuran data asli dengan menerapkan pengembalian. Berdasarkan proses iterasi for(), diperoleh 50 nilai rata-rata baru yang berkisar antara 29.75 hingga 30.10 dengan pusat distribusi (mean) berada di 29.93, nilai tersebut terbukti sangat dekat dengan parameter teoretis awal populasi yaitu \(\mu = 30\).
LATIHAN 2: Visualisasi Histogram Gabungan
Tahap ini bertujuan menggabungkan histogram distribusi rata-rata hasil bootstrap (Latihan 1) dan histogram dari 1000 data asli ke dalam satu grafik terpadu menggunakan fungsi pengatur tata letak di R.
# Mengatur tata letak grafik menjadi 2 baris dan 1 kolom
par(mfrow = c(2, 1))
# Histogram 1: Distribusi Rata-rata Hasil Bootstrap
hist(rata_rata_bootstrap,
col = "#d83737", # Warna merah
xlab = "Nilai Rata-rata (Mean)",
ylab = "Frekuensi",
main = "Histogram Distribusi Rata-rata (50 Sampel Bootstrap)")
# Histogram 2: Distribusi Kumpulan Data Asli
hist(data_asli,
col = "#37aad8", # Warna biru muda
xlab = "Nilai Observasi",
ylab = "Frekuensi",
main = "Histogram Distribusi Kumpulan Data Asli (1000 Observasi)")
Penjelasan Latihan 2:
Deklarasi {r, fig.width=7, fig.height=8} di awal blok berfungsi menginstruksikan R Markdown untuk menyediakan kanvas gambar dengan lebar 7 inci dan tinggi 8 inci sebelum mengeksekusi baris kode di dalamnya.
Fungsi par(mfrow = c(2, 1)) membagi jendela tampilan grafik menjadi dua bagian secara vertikal untuk mempermudah perbandingan bentuk distribusi data.
Analisis Grafis: Histogram kumpulan data asli (warna biru) memiliki sebaran data yang jauh lebih lebar karena menggambarkan variabilitas individu dari keseluruhan 1000 observasi. Sementara itu, histogram rata-rata bootstrap (warna merah) menunjukkan bentuk distribusi yang jauh lebih ramping dan memusat secara ketat di sekitar angka 30. Hal tersebut membuktikan teori statistik bahwa variabilitas nilai statistik rata-rata (mean of samples) selalu jauh lebih kecil dibandingkan dengan variabilitas data mentahnya.