Seorang peneliti pasar baru saja mewawancarai 30 pemilik UMKM di satu kabupaten, mencatat pendapatan bulanan mereka dalam Rp juta: 3,2 · 4,1 · 2,8 · 5,5 · 6,0 · … · 5,6. Ia menghitung median 5,1 juta rupiah per bulan. Lalu datang pertanyaan yang sulit dari kepala dinas: “Berapa rentang pendapatan median yang masuk akal untuk seluruh UMKM di kabupaten ini, bukan cuma 30 sampel Anda?”

Pertanyaan itu menuntut selang kepercayaan untuk median. Dan di sinilah peneliti tersandung. Untuk rata-rata, rumus selang kepercayaan sudah ada sejak seabad lalu: $\bar{x} \pm t^* \cdot s/\sqrt{n}$. Tapi median tidak punya rumus standard error yang sederhana. Buku-buku lama mengajarkan trik berbasis transformasi atau aproksimasi $1{,}25 \cdot s/\sqrt{n}$ — semua bersifat asimptotik, semua mengasumsikan distribusi populasi berbentuk tertentu. Untuk 30 UMKM yang distribusinya miring (ada yang Rp 12,5 juta dan Rp 15 juta — pencilan yang menarik mean naik), rumus-rumus itu menjadi rapuh.

Solusi modern untuk masalah ini adalah bootstrap — sebuah ide jenaka yang lahir pada tahun 1979 lewat satu makalah pendek oleh Bradley Efron. Intinya: bila kita tidak tahu distribusi populasi, perlakukan sampel yang ada sebagai populasi semu, lalu ambil sampel darinya berulang-ulang. Dari ribuan ulangan ini, kita membangun distribusi empiris dari statistik yang diminta — median, kuantil, rasio, trimmed mean, apa pun. Selang kepercayaan tinggal diambil dari kuantil distribusi tersebut. Tidak ada asumsi normalitas. Tidak ada rumus turunan. Hanya komputasi.

Artikel ini membangun bootstrap dari nol di Excel — 1.000 resample hidup lewat INDEX + RANDBETWEEN, distribusi empiris, Percentile CI, dan koreksi BCa. Contoh pendapatan UMKM akan menemani kita dari awal sampai akhir, karena skenario inilah yang membuat bootstrap benar-benar berharga: median, sampel kecil, distribusi miring.

Tiga Pertanyaan Besar yang Dijawab Bootstrap

Sebelum masuk ke rumus, kunci untuk memahami bootstrap adalah memahami tiga pertanyaan inferensial yang ingin kita jawab tentang sembarang statistik $\hat{\theta}$ (bisa berupa mean, median, koefisien regresi, apa pun):

  1. Berapa besar ketidakpastian estimasi kita? Jawab: standard error $SE(\hat{\theta})$.
  2. Di rentang mana parameter populasi $\theta$ mungkin berada? Jawab: selang kepercayaan.
  3. Berapa besar bias estimasi? Jawab: $E(\hat{\theta}) - \theta$.

Untuk mean, ketiganya sudah punya jawaban analitik — $s/\sqrt{n}$ untuk SE, $\bar{x} \pm t^* \cdot s/\sqrt{n}$ untuk CI, dan bias dianggap nol (penaksir tak bias). Tapi untuk median, koefisien korelasi Spearman, rasio dua mean, trimmed mean, atau $R^2$ regresi dengan pencilan — rumus tertutup sering tidak ada atau sangat rumit. Bootstrap memberikan jawaban seragam untuk semua kasus.

Filosofi bootstrap dapat dirangkum dalam satu kalimat Efron sendiri: the sample is a plug-in estimator of the population. Kita mengganti populasi yang tidak kita kenal dengan sampel yang kita miliki, lalu menerapkan prosedur statistik biasa pada “populasi semu” ini. Tidak sulit secara konsep — sulitnya hanya di komputasi. Untungnya, komputasi pada 2026 murah.

Intuisi: Mengapa “Resample dengan Pengembalian” Bekerja

Mari kita bangun intuisi dulu sebelum rumus. Bayangkan populasi sebenarnya berisi 10.000 UMKM dengan median pendapatan (parameter populasi $\theta$) yang tidak Anda ketahui. Anda mengambil satu sampel acak berukuran $n = 30$. Dari sampel ini, Anda menghitung $\hat{\theta} = 5{,}1$ juta.

Pertanyaan: seberapa jauh $5{,}1$ ini dari $\theta$ sebenarnya? Cara klasik menjawabnya adalah teoretis — asumsikan populasi berdistribusi normal, pakai rumus $SE = \sigma/\sqrt{n}$, dst. Cara bootstrap menjawabnya secara empiris:

Langkah kunci: asumsikan sampel Anda mewakili populasi sebaik mungkin. Artinya, distribusi empiris dari 30 angka Anda (3,2; 4,1; 2,8; …) dianggap sebagai populasi. Lalu, seperti Anda mengambil sampel acak dari populasi sebenarnya, ambil sampel acak berukuran 30 dari “populasi semu” ini.

Tapi ada satu syarat teknis: pengambilan harus dengan pengembalian (with replacement). Artinya, setelah satu angka ditarik, ia dikembalikan dan bisa ditarik lagi. Inilah esensi resampling — beberapa nilai asli bisa muncul beberapa kali dalam satu resample, sementara nilai lain mungkin tidak muncul sama sekali. Distribusi baru ini, walaupun terdiri dari angka yang sama, punya struktur statistik yang berbeda.

Mengapa dengan pengembalian? Karena bila Anda mengambil 30 angka tanpa pengembalian dari 30 angka sampel, Anda hanya akan mendapat kembali 30 angka yang sama dalam urutan berbeda — median dan mean-nya identik, tidak ada informasi baru. Dengan pengembalian, setiap resample menjadi “sampel baru” dengan komposisi sedikit berbeda — persis seperti sampel baru dari populasi.

Ulangi proses ini $B$ kali (Efron awalnya menyarankan $B = 1.000$, sekarang standar publikasi $B \geq 10.000$). Dari tiap resample, hitung statistiknya. Anda kini punya $B$ nilai $\hat{\theta}^*_1, \hat{\theta}^*_2, \ldots, \hat{\theta}^*_B$ — distribusi empiris bootstrap dari $\hat{\theta}$. Sebaran nilai-nilai inilah yang memberi tahu kita ketidakpastian estimasi.

Sebagai gambaran: untuk dataset UMKM kita, distribusi bootstrap dari median menyebar dari sekitar Rp 4,0 juta hingga Rp 6,8 juta, dengan puncak di sekitar Rp 5,1 juta. Lebar sebaran ini adalah standard error bootstrap.

Algoritma Bootstrap Non-Parametrik, Langkah demi Langkah

Formalkan intuisi di atas menjadi algoritma yang dapat dijalankan:

Input: sampel asli $\mathbf{x} = (x_1, x_2, \ldots, x_n)$ berukuran $n$, statistik target $\hat{\theta} = f(\mathbf{x})$, banyaknya resample $B$.

Langkah 1 — Hitung statistik pada sampel asli.

$$\hat{\theta} = f(x_1, x_2, \ldots, x_n)$$

Untuk UMKM kita, $f$ adalah =MEDIAN(...) sehingga $\hat{\theta} = 5{,}10$.

Langkah 2 — Untuk $b = 1, 2, \ldots, B$, tarik resample. Tiap $x^*_j$ untuk $j = 1, \ldots, n$ dipilih secara seragam acak dari $\{x_1, \ldots, x_n\}$ dengan pengembalian. Notasi:

$$x^*_j = x_{I_j}, \quad I_j \sim \text{Uniform}\{1, 2, \ldots, n\}$$

Langkah 3 — Hitung statistik pada tiap resample.

$$\hat{\theta}^*_b = f(x^*_1, x^*_2, \ldots, x^*_n)$$

Langkah 4 — Bangun distribusi empiris. Himpunan $\{\hat{\theta}^*_1, \hat{\theta}^*_2, \ldots, \hat{\theta}^*_B\}$ adalah sampel dari distribusi sampling $\hat{\theta}$. ringkasan statistik:

  • Rata-rata bootstrap: $\bar{\theta}^* = \frac{1}{B}\sum_b \hat{\theta}^*_b$
  • SE bootstrap: $SE^* = \sqrt{\frac{1}{B-1}\sum_b (\hat{\theta}^*_b - \bar{\theta}^*)^2}$
  • Bias estimasi: $\text{bias}^* = \bar{\theta}^* - \hat{\theta}$

Langkah 5 — Bangun selang kepercayaan. Dua varian utama:

  • Percentile CI: $[\hat{\theta}^*_{(\alpha/2)}, \hat{\theta}^*_{(1-\alpha/2)}]$ — kuantil bawah dan atas dari distribusi bootstrap.
  • BCa CI: kuantil yang dikoreksi untuk bias dan skewness (lihat bagian khusus di bawah).

Itulah seluruh algoritma. Lima langkah, semuanya sederhana secara konsep. Tantangan satu-satunya adalah komputasi: $B = 1.000$ resample masing-masing berukuran $n = 30$ artinya 30.000 angka acak. Itu sepele di Python; di Excel pun terjangkau (file pendamping artikel ini mengandung tepat 30.000 sel =INDEX(...; RANDBETWEEN(...))).

Resample di Excel: INDEX + RANDBETWEEN

Mari implementasikan Langkah 2 di Excel. Triknya elegan: untuk menarik satu elemen acak dari rentang data, gabungkan dua fungsi.

INDEX(array, k) mengembalikan elemen ke-$k$ dari array. RANDBETWEEN(a, b) menghasilkan bilangan bulat acak seragam di $[a, b]$. Gabungannya:

=INDEX($C$5:$C$34; RANDBETWEEN(1; 30))

menghasilkan satu pengamatan acak dari data UMKM. Setiap kali tombol F9 ditekan, Excel menghitung ulang seluruh RANDBETWEEN — angka baru muncul. Inilah jantung resampling.

Untuk membangun satu resample berukuran $n = 30$, salin formula ini ke 30 sel berdekatan (misal C5:AF5). Setiap sel independen — beberapa pengamatan asli bisa terpilih dua kali, tiga kali, atau tidak sama sekali. Inilah ciri khas “with replacement”.

Untuk membangun $B = 1.000$ resample, salin baris tersebut ke 1.000 baris. File pendamping (bootstrap-template.xlsx, sheet 3_RESAMPLE) berisi tepat matriks $1.000 \times 30$ ini — 30.000 sel, masing-masing sebuah formula INDEX+RANDBETWEEN hidup.

Satu peringatan teknis di Excel: RANDBETWEEN bersifat volatile — dihitung ulang setiap kali ada perubahan di mana pun di workbook. Untuk 30.000 sel, tekan F9 bisa memakan 1–3 detik. Ini bukan bug; ini sifat Excel. Untuk produksi riset serius, R atau Python dengan seed acak yang ditetapkan jauh lebih efisien dan reproduktibel.

Catatan penting soal referensi mutlak. Pada saat menulis formula =INDEX('2_DATA'!$C$5:$C$34; RANDBETWEEN(1; '2_DATA'!C37)), kita sengaja memberi tanda $ pada alamat data agar tidak bergeser saat disalin, dan menggunakan kualifikasi sheet '2_DATA'! pada sel n agar tidak tertukar dengan sel di sheet aktif. Tanpa kualifikasi ini, RANDBETWEEN(1; C37) bisa keliru merujuk ke sel C37 pada sheet resample (yang isinya angka pengamatan, bukan $n$). File pendamping sudah memberi contoh yang benar — perhatikan detail ini bila Anda membangun dari nol.

Statistik per Resample dan Distribusi Empiris

Setelah matriks resample jadi, Langkah 3 di Excel mudah. Pada sheet 4_DISTRIBUSI, tiap baris $b$ merujuk ke baris resample ke-$b$ pada sheet 3_RESAMPLE:

=AVERAGE('3_RESAMPLE'!C5:AF5)   →  mean resample ke-b
=MEDIAN('3_RESAMPLE'!C5:AF5)     →  median resample ke-b

Salin ke bawah untuk 1.000 baris. Anda kini punya dua kolom berisi $B = 1.000$ nilai: Mean* (distribusi bootstrap dari mean) dan Median* (distribusi bootstrap dari median). Inilah distribusi empiris bootstrap.

Ringkasan statistik dihitung langsung dari kolom Median*:

StatistikRumus ExcelHasil (UMKM)
Estimasi titik $\hat{\theta}$ (median sampel)=MEDIAN(data)5,100
Rata-rata bootstrap $\bar{\theta}^*$=AVERAGE(Median*)5,142
SE bootstrap $SE^*$=STDEV(Median*)0,388
Percentil 2,5%=PERCENTILE.INC(Median*; 0,025)4,400
Percentil 97,5%=PERCENTILE.INC(Median*; 0,975)5,900
Bias estimasi=AVERAGE(Median*) - 5,100+0,042

Catatan: angka-angka di kolom “Hasil” dihitung dari satu seed acak tertentu; hasil persis Anda akan sedikit berbeda setiap kali F9 ditekan. Itulah sifat bootstrap — namun untuk $B = 1.000$, selang kepercayaan stabil dalam ±0,05-an.

Validasi bootstrap untuk mean

Untuk memastikan bootstrap tidak mengada-ada, uji pada statistik yang sudah punya rumus klasik: mean. Standard error klasik untuk mean adalah $s/\sqrt{n}$. Untuk UMKM: $s = 2{,}685$, $n = 30$, sehingga $SE_{\text{klasik}} = 2{,}685/\sqrt{30} = 0{,}490$.

Bootstrap memberi $SE^*_{\text{mean}} = \text{STDEV}(\text{Mean*}) \approx 0{,}479$. Kedua angka nyaris identik — selisih di bawah 3%. Ini bukan kebetulan; teorema menyatakan bahwa untuk mean, bootstrap konsisten dengan rumus klasik bila $n$ moderat. Persetujuan ini memberi kita keyakinan bahwa implementasi bootstrap benar, dan kepercayaan bahwa ketika kita menggunakannya pada median (yang tidak punya rumus klasik sederhana), hasilnya tetap dapat dipercaya.

Standard Error Bootstrap dan Apa yang Diberitahunya

$SE^* = 0{,}388$ untuk median. Apa artinya? Sama seperti SE klasik: perkiraan simpangan baku dari distribusi sampling $\hat{\theta}$. Bila kita mengulang pengambilan sampel 30 UMKM dari populasi sebenarnya berkali-kali, median sampel akan menyebar dengan simpangan baku sekitar Rp 388 ribu per bulan.

Ini adalah angka yang tidak bisa Anda dapatkan dari rumus tertutup untuk median. Aproksimasi klasik $1{,}25 \cdot s/\sqrt{n}$ memberi $1{,}25 \cdot 2{,}685/\sqrt{30} = 0{,}613$ — terlalu besar dan bersifat asimptotik (dirancang untuk $n$ jauh lebih besar). Bootstrap, di sisi lain, bekerja langsung dari data dan memberi angka yang lebih realistis untuk $n = 30$.

Aturan praktis: bila SE bootstrap jauh berbeda dari aproksimasi klasik (misalnya lebih dari 50%), curigai bahwa data Anda melanggar asumsi aproksimasi (terlalu miring, terlalu kecil, ada pencilan dominan). Bootstrap adalah “kebenaran” empiris dalam situasi ini.

Percentile Confidence Interval

Langkah 5 — selang kepercayaan. Cara paling sederhana:

$$\text{CI}_{\text{percentile}}^{1-\alpha} = \left[ \hat{\theta}^*_{(\alpha/2)}, \; \hat{\theta}^*_{(1-\alpha/2)} \right]$$

Artinya: ambil kuantil $\alpha/2$ dan $1 - \alpha/2$ dari distribusi bootstrap. Untuk CI 95% dan $B = 1.000$, ini berarti elemen ke-25 dan ke-975 dari distribusi yang sudah diurutkan.

Di Excel, fungsi PERCENTILE.INC melakukan persis ini:

Batas bawah:  =PERCENTILE.INC('4_DISTRIBUSI'!D5:D1004; 0,025)   → 4,400
Batas atas:   =PERCENTILE.INC('4_DISTRIBUSI'!D5:D1004; 0,975)   → 5,900

Untuk UMKM kita, Percentile CI 95% = [Rp 4,40 juta; Rp 5,90 juta] per bulan.

Interpretasinya sama dengan CI klasik: bila prosedur ini diulang berkali-kali (ambil 30 UMKM, lakukan bootstrap, bentuk selang), sekitar 95% selang yang dihasilkan akan memuat median populasi sebenarnya. Ini bukan “95% peluang median populasi ada di [4,40; 5,90]” — setelah selang terbentuk, parameter ada di dalamnya atau tidak. Lihat artikel Confidence Interval Mendalam untuk pembahasan lengkap kesalahan interpretasi ini.

Kelemahan Percentile CI

Percentile CI tampak sempurna, tapi punya cacat tersembunyi: ia mengasumsikan distribusi bootstrap simetris di sekitar $\hat{\theta}$. Bila distribusi miring (banyak statistik memang begini — median pada data miring, rasio, koefisien regresi berkala), Percentile CI bisa meleset secara sistematis.

Untuk UMKM kita, bias bootstrap +0,042 (rata-rata resample sedikit lebih tinggi dari median sampel asli) menandakan distribusi bootstrap tidak persis berpusat di 5,10. Koreksi kecil ini bisa diabaikan untuk aplikasi kasual, tapi untuk inferensi ketat, kita perlu BCa.

BCa: Bias-Corrected and Accelerated

BCa (diucapkan “bee-see-ey”, Efron 1987) memperbaiki Percentile CI dengan dua koreksi: satu untuk bias (z₀), satu untuk skewness/sempangan (a). Ide besar BCa: bukan mengambil kuantil $\alpha/2$ dan $1-\alpha/2$ secara langsung, melainkan mengambil kuantil pada posisi yang sudah disesuaikan.

Bias-correction z₀

z₀ mengukur seberapa jauh distribusi bootstrap berpusat dari $\hat{\theta}$:

$$z_0 = \Phi^{-1}\left( \frac{\#\{\hat{\theta}^*_b < \hat{\theta}\}}{B} \right)$$

Itu adalah kuantil normal standar dari proporsi resample yang bernilai kurang dari $\hat{\theta}$. Untuk UMKM: dari 1.000 resample, sekitar 451 bernilai kurang dari 5,10. Proporsi = 0,451. z₀ = NORM.S.INV(0,451) = -0,122.

Arti: z₀ negatif berarti lebih dari setengah resample jatuh di bawah $\hat{\theta}$ — distribusi bootstrap miring ke kiri. z₀ = 0 berarti simetris (kasus ideal di mana Percentile CI valid). z₀ ≠ 0 menandakan perlu koreksi.

Di Excel: =NORM.S.INV(COUNTIF(Median*; "<"&theta_hat) / B). Fungsi COUNTIF dengan kriteria dinamis "<"&theta_hat menghitung banyak resample yang kurang dari nilai $\hat{\theta}$ di sheet data.

Acceleration a dari jackknife

a mengukur seberapa cepat standard error berubah saat $\hat{\theta}$ berubah — singkatnya, skewness distribusi sampling. Karena tidak bisa dihitung langsung dari bootstrap, kita pakai trik jackknife leave-one-out:

Untuk $i = 1, \ldots, n$, hitung $\hat{\theta}_{(i)}$ = statistik pada sampel tanpa observasi ke-$i$. Untuk median, ini berarti 30 median berbeda, masing-masing dihitung dari 29 pengamatan. Di Excel, formula untuk satu jackknife mudah: =MEDIAN('2_DATA'!$C$5:$C$5; '2_DATA'!$C$7:$C$34) (ambil semua kecuali baris ke-6).

Lalu:

$$a = \frac{\sum_{i=1}^{n} (\bar{\theta}_{(\cdot)} - \hat{\theta}_{(i)})^3}{6 \left[ \sum_{i=1}^{n} (\bar{\theta}_{(\cdot)} - \hat{\theta}_{(i)})^2 \right]^{3/2}}$$

dengan $\bar{\theta}_{(\cdot)}$ rata-rata semua $\hat{\theta}_{(i)}$. Untuk median UMKM: $\bar{\theta}_{(\cdot)} = 5{,}10$ dan nilai $\hat{\theta}_{(i)}$ berkisar 5,00–5,20 (kecil variasinya karena menghapus satu observasi dari 30 tidak banyak menggeser median), menghasilkan $a \approx 0{,}000006$ — sangat dekat nol.

Endpoint BCa

Dengan z₀ dan a di tangan, posisi kuantil yang disesuaikan:

$$\hat{\alpha}_1 = \Phi\left( z_0 + \frac{z_0 + z_{\alpha/2}}{1 - a(z_0 + z_{\alpha/2})} \right), \quad \hat{\alpha}_2 = \Phi\left( z_0 + \frac{z_0 + z_{1-\alpha/2}}{1 - a(z_0 + z_{1-\alpha/2})} \right)$$

dengan $z_p = \Phi^{-1}(p)$. Untuk $\alpha = 0{,}05$: $z_{\alpha/2} = -1{,}96$, $z_{1-\alpha/2} = +1{,}96$.

BCa CI kemudian: $[\hat{\theta}^*_{(\hat{\alpha}_1)}, \hat{\theta}^*_{(\hat{\alpha}_2)}]$ — kuantil pada posisi yang sudah disesuaikan.

Di Excel:

α̂₁: =NORM.S.DIST(z0 + (z0+z_α/2) / (1 - a*(z0+z_α/2)); TRUE)
α̂₂: =NORM.S.DIST(z0 + (z0+z_1-α/2) / (1 - a*(z0+z_1-α/2)); TRUE)

BCa batas bawah: =PERCENTILE.INC(Median*; α̂₁)
BCa batas atas:  =PERCENTILE.INC(Median*; α̂₂)

Untuk UMKM kita, ini menghasilkan $\hat{\alpha}_1 \approx 0{,}014$ dan $\hat{\alpha}_2 \approx 0{,}957$, memberi BCa CI 95% = [Rp 4,30 juta; Rp 5,80 juta].

Bandingkan dengan Percentile CI [4,40; 5,90]: BCa menggeser kedua batas ke bawah sekitar 0,1 juta. Ini konsisten dengan z₀ negatif (distribusi miring kiri) — BCa mengoreksi dengan mengambil kuantil sedikit lebih ekstrem di kiri. Untuk dataset di mana a jauh dari nol dan z₀ besar, pergeseran BCa bisa lebih dramatis.

Kapan BCa benar-benar berbeda?

Untuk UMKM kita, BCa hampir identik dengan Percentile — selisih 0,1 juta, mungkin tidak material. Tapi untuk statistik yang sangat miring (rasio dua mean, koefisien regresi pada data berkala, median pada sampel sangat kecil), BCa bisa memberi CI yang sangat berbeda. Aturan praktis:

  • Bila $|z_0| < 0{,}05$ dan $|a| < 0{,}01$: Percentile dan BCa nyaris identik. Percentile cukup.
  • Bila tidak: gunakan BCa. Beda bisa signifikan, terutama pada CI 99%.

Untuk artikel publikasi, selalu gunakan BCa — biayanya kecil (sekali jackknife), tapi melindungi dari inferensi yang salah bila distribusi ternyata miring.

Empat Jebakan Bootstrap yang Wajib Dihindari

Bootstrap kuat, tapi tidak kebal. Empat jebakan paling sering:

Jebakan 1: sampel terlalu kecil. Bootstrap bekerja dengan menyalin sampel menjadi populasi semu. Bila $n = 5$, “populasi semu” hanya berisi 5 nilai unik — terlalu sedikit untuk mewakili distribusi sebenarnya. Aturan praktis: $n \geq 20$ untuk statistik sederhana, $n \geq 50$ untuk median atau kuantil.

Jebakan 2: data time-series tanpa struktur. Bootstrap standar mengasumsikan observasi saling bebas. Pada time-series (mis. harga saham harian), observasi berdekatan berkorelasi — resample acak akan menghancurkan struktur temporal dan menghasilkan SE bootstrap yang terlalu kecil. Solusi: block bootstrap — resample dalam blok berurutan, bukan observasi individu.

Jebakan 3: bootstrap ekstrem pencilan. Bila ada satu pencilan dominan (mis. 95% data di 0–10, satu nilai di 1000), bootstrap akan terlalu sering memuat pencilan itu, menghasilkan distribusi yang aneh. Pertimbangkan robust statistics atau trimming dulu sebelum bootstrap.

Jebakan 4: B terlalu kecil. $B = 100$ memberi CI yang kasar (selang bisa berubah 0,2-an setiap F9). Untuk estimasi SE, $B \geq 200$ cukup. Untuk CI, $B \geq 1.000$. Untuk BCa atau CI 99%, $B \geq 5.000$. Selalu laporkan B yang dipakai dalam publikasi.

Empat Aplikasi Bootstrap di Luar Median

Meskipun artikel ini berfokus pada median UMKM, bootstrap berlaku untuk hampir semua statistik. Empat aplikasi umum di riset Indonesia:

1. Selang kepercayaan untuk koefisien regresi. Regresi linier klasik mengasumsikan residual normal dan homoskedastik untuk SE-nya. Bila asumsi ini gagal (umum di data ekonomi), bootstrap memberi SE yang robust tanpa perlu mengasumsikan bentuk distribusi residual. Ini adalah dasar dari robust standard errors di ekonometrika modern.

2. Selang kepercayaan untuk $R^2$ dan adjusted $R^2$. $R^2$ tidak punya distribusi sampling sederhana. Bootstrap memberi CI langsung. Sama untuk koefisien determinasi dalam SEM/PLS (lihat artikel PLS kami).

3. Selang kepercayaan untuk rasio, selisih, atau transformasi. Bila kita ingin CI untuk $\bar{x}_1/\bar{x}_2$ atau $\log(\bar{x})$, delta method memberi aproksimasi asimptotik. Bootstrap memberi jawaban langsung tanpa turunan.

4. Validasi model prediktif. Dalam pembelajaran mesin, bootstrap dipakai mengestimasi distribusi akurasi, AUC, atau F1 pada sampel terbatas. Sama logikanya: perlakukan sampel sebagai populasi, resample, hitung ulang metrik.

Menghitung di Excel: Panduan Pakai File Pendamping

File bootstrap-template.xlsx dirancang untuk eksplorasi langsung. Delapan sheet saling terhubung lewat formula hidup:

  • Sheet 1_PETUNJUK — panduan warna dan rumus inti.
  • Sheet 2_DATA — 30 pengamatan UMKM (boleh diganti). Hitung $\hat{\theta}$, $s$, SE klasik otomatis.
  • Sheet 3_RESAMPLE — matriks $1.000 \times 30$ berisi INDEX+RANDBETWEEN. Tekan F9 untuk re-roll.
  • Sheet 4_DISTRIBUSI — kolom Mean* dan Median*; ringkasan di kanan (rata-rata, SE, percentil).
  • Sheet 5_PERCENTILE_CI — selang kepercayaan Percentile otomatis dari distribusi.
  • Sheet 6_BCa — perhitungan z₀, a, α̂₁, α̂₂, dan CI BCa.
  • Sheet 7_BCa_JACKKNIFE — 30 jackknife leave-one-out median untuk acceleration a.
  • Sheet 8_RUMUS — kamus rumus dan fungsi Excel.

Alur kerja yang disarankan:

  1. Buka sheet 2_DATA, periksa 30 pengamatan. Ubah satu angka untuk melihat efeknya menjalar ke seluruh workbook.
  2. Pergi ke 3_RESAMPLE, tekan F9 beberapa kali. Perhatikan beberapa sel berubah (bukan semua) — itu sifat pengambilan acak.
  3. Buka 4_DISTRIBUSI, lihat ringkasan di sel hijau. Bandingkan SE bootstrap mean (~0,48) dengan SE klasik dari sheet 2 (0,49) — keduanya harus dekat.
  4. 5_PERCENTILE_CI memberi CI Percentile; 6_BCa memberi CI BCa. Bandingkan kedua CI pada sheet 6 (ada baris perbandingan).
  5. Untuk mengubah tingkat kepercayaan dari 95% ke 99% atau 90%, ubah sel biru “Tingkat kepercayaan” — semua endpoint menghitung ulang otomatis.

Untuk replikasi yang tepat (hasil persis sama setiap kali), Anda perlu mengganti RANDBETWEEN dengan generator angka acak berbasis seed — Excel asli tidak mendukung ini langsung. Dalam praktik riset, gunakan R (boot package) atau Python (scikit-learn.resample) dengan random_state yang ditetapkan.

Penutup: Bootstrap sebagai Cara Berpikir

Bootstrap lebih dari sekadar metode — ia adalah cara berpikir. Pesan utamanya: bila Anda tidak yakin tentang distribusi populasi, biarkan data berbicara sendiri. Sampel yang Anda miliki adalah informasi terbaik tentang populasi; olah ia sebaik mungkin lewat resampling, dan distribusi empiris yang muncul akan memberi jawaban atas pertanyaan inferensial tanpa asumsi yang tidak terverifikasi.

Filosofi ini meluas jauh melampaui median UMKM. Seluruh bidang statistik komputasional modern — cross-validation, permutation tests, Monte Carlo simulation, ensemble methods di machine learning — berakar pada ide serupa: ulangi prosedur pada versi data yang sedikit berbeda, dan biarkan variasi hasil memberi tahu kita tentang ketidakpastian. Bootstrap adalah pintu gerbang paling alami ke cara berpikir ini.

Untuk artikel lanjutan tentang teori distribusi sampling (dasar teoretis bootstrap), lihat Distribusi Sampling dan Central Limit Theorem. Untuk perbandingan langsung dengan selang kepercayaan klasik berbasis rumus, lihat Confidence Interval Mendalam. Keduanya, bersama bootstrap, membentuk tiga sudut inferensi modern: rumus tertutup bila tersedia, rumus asimptotik bila sampel besar, bootstrap bila tidak ada yang lain.

Untuk eksplorasi mandiri, unduh bootstrap-template.xlsx dari folder excel di situs ini, ganti data UMKM di sheet 2 dengan dataset Anda sendiri (rata-rata nilai ujian, harga saham harian, pengeluaran rumah tangga, apa pun), dan tekan F9. Anda akan melihat langsung bagaimana distribusi bootstrap terbentuk dari data Anda — dan mengapa Efron menyebut metode ini “a computer-intensive way to do what the mathematician used to do with pencil and paper”.