Metode bootstrap merupakan teknik resampling non-parametrik yang sangat fleksibel karena tidak bergantung pada asumsi distribusi data tertentu. Selain kegunaannya dalam analisis regresi dan penanganan missing value, bootstrap memiliki aplikasi luas dalam berbagai bidang statistika lainnya:

  1. Estimasi Statistik Deskriptif Kompleks

Bootstrap sangat berguna untuk menghitung standar error dan interval kepercayaan (confidence interval) bagi statistik yang distribusi samplingnya sulit ditentukan secara analitis. Contohnya meliputi: Median dan Kuartil: Menentukan rentang keyakinan untuk nilai tengah data.Korelasi: Mengestimasi ketidakpastian dalam hubungan antar dua variabel.Rasio: Menghitung reliabilitas dari perbandingan dua angka.

  1. Validasi Model (Model Validation)

Dalam machine learning dan pemodelan prediktif, bootstrap digunakan untuk menilai performa model:Estimasi Error Out-of-Bag (OOB): Mengukur akurasi prediksi tanpa memerlukan dataset validasi terpisah yang besar.Stabilitas Variabel: Menilai seberapa konsisten suatu variabel prediktor terpilih dalam model jika sampel data sedikit berubah.

  1. Penggabungan Model (Ensemble Learning)

Bootstrap merupakan fondasi dari teknik Bagging (Bootstrap Aggregating):Random Forest: Menggunakan bootstrap untuk membuat banyak pohon keputusan (decision trees) dari subsampel data yang berbeda, kemudian merata-ratakan hasilnya untuk mengurangi varians dan mencegah overfitting.

  1. Perbandingan Dua Kelompok (Hypothesis Testing)

Bootstrap dapat digunakan sebagai alternatif untuk uji-t (t-test) atau ANOVA ketika asumsi normalitas tidak terpenuhi: Menguji apakah perbedaan rata-rata antara dua kelompok signifikan secara statistik dengan melihat distribusi perbedaan dari hasil resampling.

  1. Analisis Deret Waktu (Time Series Analysis)

Meskipun memerlukan penyesuaian (seperti Block Bootstrap), teknik ini dapat digunakan untuk mengestimasi ketidakpastian pada data yang memiliki ketergantungan waktu atau autokorelasi.

Prinsip utama bootstrap adalah kemampuannya memberikan gambaran mengenai distribusi sampling hanya berdasarkan data awal yang ada melalui pengambilan sampel ulang dengan pengembalian.

Berikut adalah contoh penerapan metode bootstrap dalam R.

  1. Dalam data ekonomi seperti pendapatan, datanya sering kali sangat condong (skewed) ke kanan karena adanya segelintir orang dengan pendapatan ekstrem tingginya. Mean (rata-rata) menjadi tidak representatif, sehingga kita menggunakan median. Bootstrap sangat ideal di sini karena menentukan standar error dari median menggunakan rumus klasik cukup sulit.
# Load Library
library(boot)
## Warning: package 'boot' was built under R version 4.4.3
# Simulasi data pendapatan, ini adalah data pendapatan 100 sampel (dalam jutaan rupiah)
set.seed(1)
pendapatan <- rexp(100, rate = 0.2) 

# Membuat fungsi statistik untuk bootstrap
fungsi_median <- function(data, indices) {
  # Mengambil sampel data berdasarkan indeks bootstrap
  sampel_bootstrap <- data[indices]
  # Mengembalikan nilai median dari sampel tersebut
  return(median(sampel_bootstrap))
}

# Menjalankan bootstrap dengan 1000 replikasi
hasil_boot_median <- boot(data = pendapatan, 
                          statistic = fungsi_median, 
                          R = 1000)

# Menampilkan hasil standar error dan bias
print(hasil_boot_median)
## 
## ORDINARY NONPARAMETRIC BOOTSTRAP
## 
## 
## Call:
## boot(data = pendapatan, statistic = fungsi_median, R = 1000)
## 
## 
## Bootstrap Statistics :
##     original     bias    std. error
## t1* 4.043848 0.03262124   0.5108684
  1. Bootstrap Statistics

Rangkuman karakteristik dari distribusi sampling yang dibuat melalui 1000 kali pengulangan:

# Menghitung Confidence Interval 95% untuk nilai median
boot.ci(hasil_boot_median, type = "perc")
## BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
## Based on 1000 bootstrap replicates
## 
## CALL : 
## boot.ci(boot.out = hasil_boot_median, type = "perc")
## 
## Intervals : 
## Level     Percentile     
## 95%   ( 3.092,  5.127 )  
## Calculations and Intervals on Original Scale
  1. Confidence Interval

Perhitungan rentang kepercayaan 95% menggunakan tipe Percentile (\(3,092-5,127\)), yang merupakan metode umum dalam bootstrap non-parametrik. Berdasarkan hasil perhitungan, kita dapat menyatakan dengan tingkat kepercayaan 95% bahwa nilai median pendapatan yang sebenarnya di populasi berada dalam rentang antara \(3,092\) hingga \(5,127\). Karena rentang ini tidak terlalu lebar dibandingkan dengan nilai aslinya, maka estimasi median dapat dianggap cukup andal.

  1. Kesimpulan

Hasil ini membuktikan kegunaan bootstrap, berhasil mendapatkan standar error dan interval kepercayaan untuk median tanpa harus mengasumsikan bahwa data pendapatan tersebut berdistribusi normal (ingat bahwa data pendapatan biasanya tidak simetris/condong). Jika kita melakukan pengujian ini pada data bisnis, rentang \((3,092-5,127)\) ini bisa menjadi acuan manajemen dalam menentukan kebijakan upah atau target pasar berdasarkan nilai tengah ekonomi konsumen yang lebih akurat daripada sekadar melihat rata-rata (mean) yang sering terdistorsi oleh nilai ekstrem.

  1. Seorang developer ingin menguji dua desain website (Desain A dan Desain B) untuk melihat mana yang menghasilkan waktu kunjungan lebih lama. Jika datanya tidak berdistribusi normal, pengujian ANOVA atau Uji-t klasik mungkin kurang valid. Kita bisa menggunakan bootstrap untuk mengestimasi apakah perbedaan rata-rata keduanya signifikan.
# Simulasi data waktu kunjungan (dalam detik)
set.seed(1)
waktu_A <- rnorm(50, mean = 120, sd = 45) # Desain A
waktu_B <- rnorm(50, mean = 145, sd = 55) # Desain B

# Menggabungkan data ke dalam satu Data Frame
df_kunjungan <- data.frame(
  waktu = c(waktu_A, waktu_B),
  grup = rep(c("A", "B"), each = 50)
)

# Membuat fungsi untuk menghitung selisih rata-rata (Mean B - Mean A)
fungsi_selisih_mean <- function(data, indices) {
  # Resampling data
  d_sampel <- data[indices, ]
  
  # Hitung mean masing-masing grup pada sampel tersebut
  mean_A <- mean(d_sampel$waktu[d_sampel$grup == "A"])
  mean_B <- mean(d_sampel$waktu[d_sampel$grup == "B"])
  
  # Kembalikan selisihnya
  return(mean_B - mean_A)
}

# Menjalankan bootstrap dengan 1000 replikasi
hasil_boot_selisih <- boot(data = df_kunjungan, 
                           statistic = fungsi_selisih_mean, 
                           R = 1000)

# Menampilkan hasil
print(hasil_boot_selisih)
## 
## ORDINARY NONPARAMETRIC BOOTSTRAP
## 
## 
## Call:
## boot(data = df_kunjungan, statistic = fungsi_selisih_mean, R = 1000)
## 
## 
## Bootstrap Statistics :
##     original     bias    std. error
## t1* 26.93278 0.04060098    9.075791
  1. Bootstrap Statistics

Statistik ini memberikan gambaran tentang distribusi selisih rata-rata waktu kunjungan antara Desain B dan Desain A:

# Menghitung Confidence Interval 95%
boot.ci(hasil_boot_selisih, type = "perc")
## BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
## Based on 1000 bootstrap replicates
## 
## CALL : 
## boot.ci(boot.out = hasil_boot_selisih, type = "perc")
## 
## Intervals : 
## Level     Percentile     
## 95%   ( 8.84, 44.35 )  
## Calculations and Intervals on Original Scale
  1. Confidence Interval

Dari hasil perhitungan, kita yakin sebesar 95% bahwa di populasi pengguna yang lebih luas, Desain B akan menghasilkan waktu kunjungan antara 8,84 detik hingga 44,35 detik lebih lama dibandingkan Desain A. Karena rentang ini tidak mencakup angka 0. Jika rentang interval kepercayaan tidak melewati angka nol, maka secara statistik kita dapat menyimpulkan bahwa perbedaan tersebut signifikan.

  1. Keuntungan Menggunakan Bootstrap

Metode bootstrap memberikan beberapa keuntungan pada kasus ini.

  1. Kesimpulan

Berdasarkan data ini, kita memiliki bukti statistik yang kuat untuk memilih Desain B. Performa minimum Desain B masih tetap lebih baik sekitar 8,84 detik daripada Desain A. Sehingga tidak perlu khawatir jika data waktu kunjungan tidak berbentuk kurva lonceng sempurna, karena hasil ini didapat tanpa asumsi tersebut.