RESAMPLING BOOTSTRAP PADA R Joko Sungkono*
Abstrak:Pada tulisan ini, algoritma resampling bootstrap akan disajikan secara detail dalam bahasa pemrograman software R untuk beberapa contoh kasus. Resampling bootstrap pada R diberikan dalam suatu fungsi yang disusun mengikuti algoritma resampling bootstrap pada kasus yang diambil. Untuk melihat keakuratan metode bootstrap pada masing-masing kasus diberikan suatu simulasi monte carlo dengan membangkitkan data dari variabel random berdistribusi normal. Kata kunci: bootstrap, resampling, software R, simulasi.
PENDAHULUAN Bootstrap adalah suatu metode yang dapat bekerja tanpa membutuhkan asumsi distribusi karena sampel asli digunakan sebagai populasi. Dalam Sahinler dan Topuz [4], Efron menyatakan bahwa bootstrap adalah teknik resampling nonparametrik yang bertujuan untuk menentukan estimasi standar eror dan interval konfidensi dari parameter populasi seperti mean, rasio, median, proporsi, koefisien korelasi atau koefisien regresi tanpa menggunakan asumsi distribusi. Bootstrap dapat digunakan untuk
dengan prosedur resampling dengan pengembalian dari data asli. Metode bootstrap dilakukan dengan mengambil sampel dari sampel asli dengan ukuran sama dengan ukuran sampel asli dan dilakukan dengan pengembalian. Kedudukan sampel asli dalam metode bootstrap dipandang sebagai populasi. Metode peyampelan ini biasa disebut dengan resampling bootstrap. Bootstrap juga sering digunakan untuk mengestimasi standar eror estimator dan interval konfidensi dari suatu parameter populasi yang tidak diketahui. Pada dasarnya teknik estimasi dengan
mengatasi permasalahan dalam statistika baik masalah
metode resampling bootstrap menggunakan semua
data yang sedikit, data yang menyimpang dari
kemungkinan sampel yaitu nn. Akan tetapi hal ini
asumsinya maupun data yang tidak memiliki asumsi dalam distribusinya. Bootstrap adalah suatu metode yang berbasis komputer yang sangat potensial untuk dipergunakan pada masalah keakurasian, [3]. Bootstrap diperkenalkan pertama kali oleh Efron tahun 1979. Bootstrap adalah metode yang didasarkan pada simulasi data untuk keperluan inferensi statistik, [3]. Metode bootstrap digunakan untuk mencari distribusi sampling dari suatu estimator
sangat sulit untuk dilakukan untuk n>7. Untuk keperluan perhitungan biasanya digunakan pendekatan simulasi, sehingga disebut simulasi bootstrap. Misalkan dimiliki sampel random berukuran n yaitu
yang diambil
dari suatu populasi dan statistik untuk parameter
adalah estimasi
berdasar sampel asli. Berdasarkan
uraian metode resampling bootstrap menurut Efron dan Tibshirani [3], prosedur resampling bootstrap dapat dituliskan sebagai :
* Program Studi Pendidikan Matematika, FKIP UNWIDHA Klaten
Magistra No. 84 Th. XXV Juni 2013 ISSN 0215-9511
47
Resampling Bootstrap Pada R
1.
2.
dari suatu
Tulisan ini memberikan paket resampling bootstrap
sampel dengan memberikan probabilitas 1/n pada
secara detail dalam bahasa R yang disusun
setiap
berdasarkan algoritma resampling bootstrap pada
Mengkonstruksi distribusi empiris dimana i = 1, 2,..., n
Mengambil sampel bootstrap berukuran n secara
kasus estimasi rata-rata dan estimasi parameter regresi
random dengan pengembalian dari distribusi 1.
linear.
empiris
, sebut sebagai sampel bootstrap
pertama 3.
ESTIMASI BOOTSTRAP UNTUK RATA-RATA
Menghitung 1.statistik sampel bootstrap
4.
yang diinginkan dari Pada bagian ini akan dibahas resampling
, sebut sebagai
Mengulangi langkah 2 dan 3 hingga B kali, 1. diperoleh
5.
dengan memberikan probabilitas 1/B pada . Distribusi tersebut
merupakan estimator bootstrap untuk distribusi sampling 6.
dimiliki sampel berukuran n yaitu yang diambil dari suatu populasi dan adalah estimasi
Mengkontruksi suatu distribusi probabilitas dari setiap
bootstrap untuk estimasi rata-rata populasi. Misalkan
dan dinotasikan dengan
.
Pendekatan estimasi bootstrap untuk adalah mean dari 1. distribusi
untuk parameter
berdasar sampel asli. Berdasarkan
uraian metode resampling bootstrap menurut Efron dan Tibshirani [3], prosedur resampling bootstrap untuk estimasi rata-rata dapat dituliskan sebagai berikut 1.
yaitu
Mengkonstruksi distribusi empiris
dari suatu
sampel dengan memberikan probabilitas 1/n pada setiap 2.
dimana i = 1, 2,..., n
Mengambil sampel bootstrap berukuran n secara random dengan pengembalian dari distribusi
Pendekatan bootstrap jika diulang lebih dari
empiris
satu kali akan memberikan hasil yang berbeda, hal ini karena yang dilakukan adalah suatu simulasi. Jika dapat dilakukan menggunakan semua kemungkinan
pertama 3.
4.
harus dilakukan dengan bantuan komputer karena
yang diinginkan dari , sebut sebagai
Mengulangi langkah 2 dan 3 hingga B kali, diperoleh
asimtotis distribusi bootstrap mendekati distribusi sebenarnya. Pada penggunaannya, metode bootstrap
Menghitung statistik sampel bootstrap
sampel yaitu nn maka hasilnya akan sama. Secara teori, menurut Shao dan Tu [5], sifat
, sebut sebagai sampel bootstrap
5.
Mengkontruksi suatu distribusi probabilitas dari dengan memberikan probabilitas 1/B pada . Distribusi tersebut
melibatkan perhitungan yang sangat banyak. Software
setiap
– software statistik belum ada yang memberikan paket
merupakan estimator bootstrap untuk distribusi
resampling bootstrap secara langsung, sehingga
sampling
dan dinotasikan dengan
.
metode ini masih jarang digunakan oleh peneliti.
48
Magistra No. 84 Th. XXV Juni 2013 ISSN 0215-9511
Resampling Bootstrap Pada R
6.
Pendekatan estimasi bootstrap untuk mean dari distribusi
adalah
bootstrap persentil (1- )x 100% untuk
diberikan
oleh
yaitu
dengan
adalah persentil ke 100x(
)
Menurut Bickel dan Freedman [2], sifat asimtotis distribusi bootstrap untuk kuantitas pivot mendekati distribusi normal dengan rata-rata nol dan variansi
dan
merupakan persentil ke ) dari distribusi
100x(
.
Estimasi interval konfidensi bootstrap untuk rata-rata diberikan dalam interval pendekatan normal dan interval persentil. Interval konfidensi bootstrap dengan pendekatan normal sebenarnya analog dengan interval konfidensi standar. Menurut Bennett [1], pemanfaatan metode bootstrap dalam mengkonstruksi interval ini adalah untuk menentukan standar eror dari estimator. Berdasarkan sampel bootstrap dengan . Variansi
replikasi B kali diperoleh estimator bootstrap diberikan oleh
Algoritma resampling bootstrap pada kasus estimasi rata-rata dibuat dalam bahasa pemrograman R dengan nama fungsi “boot” dan diberikan sebagai berikut. > fix(boot) Kemudian pada fungsinya diisikan sebagai berikut. function(x,B,a) { n<-length(x) y <- matrix(0, nrow = B, ncol = n) xbar <- seq(1:B)
Standar eror bootstrap
diperoleh dari
for(i in 1:B) {
akar variansi. Interval konfidensi bootstrap pendekatan normal (1- )x 100% untuk
y[i, ] <- sample(x, n, replace = T)
diberikan
xbar[i] <- mean(y[i, ])
oleh } xbartot <- mean(xbar) Interval konfidensi bootstrap persentil didasarkan pada distribusi estimator bootstrap.
bb<-mean(x)+qnorm(a/2)*sqrt(var(x)/n)
Dibentuk distribusi empiris untuk
ba<-mean(x)+qnorm(1-a/2)*sqrt(var(x)/n)
misalkan
int<-cbind(bb,ba)
. Dari distribusi ini dapat dihitung nilai
persentil yang merupakan ide dasar konstruksi interval konfidensi bootstrap persentil. Interval konfidensi
Magistra No. 84 Th. XXV Juni 2013 ISSN 0215-9511
bb1<-quantile(xbar,a/2) ba1<-quantile(xbar,1-(a/2))
49
Resampling Bootstrap Pada R
int1<-cbind(bb1,ba1)
Berdasarkan output R yang diperoleh terlihat
list(est.bootstrap=xbartot,int.normal=int,int.pct=int1)
bahwa rata-rata populasi 33,02407 yang sangat dekat dengan rata-rata populasi yaitu 33,03872. Sedangkan
}
estimasi interval konfidensi baik interval bootstrap Untuk menjalankan program resampling
pendekatan normal maupun interval bootstrap
bootstrap di R ini diberikan simulasi dengan
persentil memberikan hasil yang hampir sama dan
membangkitkan data. Misalkan populasi terdiri dari
keduanya memuat parameter populasi dengan range
20.000 data dari distribusi normal
yang cukup sempit.
> x<-rnorm(20000,33,4) > mean(x)
ESTIMASI
[1] 33.03872
PARAMETER REGRESI LINEAR
BOOTSTRAP
UNTUK
Dari populasi kita dapat mengetahui rata-rata
Pada bagian ini akan dibahas resampling
populasi yang yang akan kita estimasi adalah
bootstrap untuk estimasi parameter regresi linear.
33,03872. Diambil sampel secara random berukuran
Tanpa mengurangi keumuman pembahasan diambil
500 dari populasi. Sampel ini selanjutnya disebut
regresi linear dengan satu variabel dependen dan dua
sampel asli.
variabel independen. Model regresi linear populasinya
> y<-sample(x,500,replace=F) Selanjutnya untuk mengestimasi rata-rata populasi menggunakan resampling bootstrap berdasarkan sampel asli dengan replikasi B=1000 dan tingkat kepercayaan interval 95% diberikan oleh
. Metode bootstrap yang diberikan pada regresi ini adalah resampling residual. Misalkan dimiliki sampel berpasangan antara variabel dependen dan independen yang dituliskan dalam bentuk matrik Y dan X dengan ukuran sampel n. Selanjutnya sampel ini disebut sampel asli. Menurut
> boot(y,1000,0.05)
Sahinler dan Topuz [4], prosedur bootstrap resampling
$est.bootstrap
residual untuk estimasi parameter regresi dapat dituliskan sebagai berikut :
[1] 33.02407
1. $int.normal bb [1,] 32.66326
Menentukan fit model berdasarkan sampel asli dengan menggunakan metode kuadrat terkecil,
ba
diperoleh
33.37283
2.
Menghitung nilai residual
, diperoleh
3.
Mengambil sampel bootstrap berukuran n dari secara random dengan
$int.pct bb1 2.5% 32.66392
50
ba1 33.3865
pengembalian, diperoleh sampel bootstrap pertama
Magistra No. 84 Th. XXV Juni 2013 ISSN 0215-9511
Resampling Bootstrap Pada R
4.
Menghitung nilai bootstrap untuk menambahkan
5.
pada fit model, sehingga
diperoleh dari
akar variansi. Interval konfidensi bootstrap pendekatan normal (1- )x 100% untuk
Menghitung koefisien regresi untuk sampel
oleh
Mengulangi proses diatas sebanyak B kali,
Interval konfidensi bootstrap persentil didasarkan pada distribusi estimator bootstrap. Untuk setiap k, dibentuk distribusi empiris untuk
Pendekatan estimasi bootstrap untuk parameter regresi
diberikan
dengan , diperoleh
diperoleh 7.
Standar eror bootstrap
diperoleh
bootstrap yang pertama
6.
dengan
adalah
mean
dari
distribusi
yaitu
misalkan
. Dari distribusi ini
dapat dihitung nilai persentil yang merupakan ide dasar konstruksi interval konfidensi bootstrap persentil. Interval konfidensi bootstrap persentil (1)x 100% untuk
diberikan oleh
Pada kasus ini karena terdapat dua variabel independen
maka
,
matrik dan
.
Estimasi interval konfidensi bootstrap untuk
dengan dan
bootstrap dengan pendekatan normal sebenarnya analog dengan interval konfidensi standar. Menurut
)
merupakan persentil ke ) dari distribusi
100x(
parameter regresi diberikan dalam interval pendekatan normal dan interval persentil. Interval konfidensi
adalah persentil ke 100x(
Algoritma resampling bootstrap pada kasus estimasi parameter regresi dibuat dalam bahasa pemrograman R dengan nama fungsi “reg” dan diberikan sebagai berikut.
Bennett [1], pemanfaatan metode bootstrap dalam mengkonstruksi interval ini adalah untuk menentukan standar eror dari estimator. Berdasarkan sampel bootstrap dengan replikasi B kali diperoleh . Variansi estimator bootstrap untuk k=0,1,2 diberikan oleh
> fix(reg) Kemudian pada fungsinya diisikan sebagai berikut. function(y, x1, x2,B,a) { n<-length(y) b0 <- matrix(coef(lm(y ~ x1 + x2)), nrow = 1, ncol = 3) yfit <- b0[, 1] + b0[, 2] * x1 + b0[, 3] * x2
Magistra No. 84 Th. XXV Juni 2013 ISSN 0215-9511
51
Resampling Bootstrap Pada R
e <- seq(1:n)
int2 <- matrix(c(lop0, upp0, lop1, upp1, lop2,
for(i in 1:n) {
upp2), nrow = 3, byrow= T)
e[i] <- y[i] - yfit[i]
list(est.boot=bboot,int.normal=int1,int.pct=int2) }
} estar <- matrix(0, nrow = B, ncol = n)
Untuk menjalankan program resampling bootstrap di
ystar <- matrix(0, nrow = B, ncol = n)
R ini diberikan simulasi dengan membangkitkan data.
b <- matrix(0, nrow = B, ncol = 3)
Misalkan populasi terdiri dari 30 data dari untuk y, x1 dan x2 masing-masing sebagai berikut.
for(i in 1:B) { estar[i, ] <- sample(e, n, replace = T)
> x1<-rnorm(30,4,1.5) > x2<-rnorm(30,5,1.5)
ystar[i, ] <- b0[, 1] + b0[, 2] * x1 + b0[, 3] * x2 + estar[i, ] b[i, ] <- coef(lm(ystar[i, ] ~ x1 + x2)) } bboot <- apply(b, 2, mean) lo0<- b0[, 1] + qnorm(a/2) * sqrt(var(b[,1]))
> e<-rnorm(30) > y<-3+7*x1+x2+e Berdasarkan data ini kita sudah mengetahui nilai parameter populasinya
,
,
berturut-
tur ut 3, 7 dan 1. Selanjutnya untuk melihat keakuratan metode bootstrap akan dilakukan
lo1<- b0[, 2] + qnorm(a/2) * sqrt(var(b[,2]))
estimasi berdasarkan data sampel. Estimasi
lo2 <- b0[, 3] + qnorm(a/2) * sqrt(var(b[,3]))
par ameter regresi menggunakan resampling
up0 <- b0[, 1] + qnorm(1-a/2) * sqrt(var(b[,1]))
bootstrap dengan replikasi B=1000 dan tingkat kepercayaan interval 95% diberikan oleh
up1 <- b0[, 2] + qnorm(1-a/2) * sqrt(var(b[,2])) > reg(y,x1,x2,1000,0.05) up2 <- b0[, 3] + qnorm(1-a/2) * sqrt(var(b[,3])) int1 <- matrix(c(lo0, up0, lo1, up1, lo2, up2),
$est.boot
nrow = 3, byrow = T)
[1] 2.813375 6.895319 1.075275
lop0 <- quantile(b[,1], a/2) lop1 <- quantile(b[,2], a/2) lop2 <- quantile(b[,3], a/2)
52
$int.normal [,1]
[,2]
upp0 <- quantile(b[,1], 1-a/2)
[1,] 1.2532716
4.343726
upp1 <- quantile(b[,2], 1-a/2)
[2,] 6.6799812
7.120587
upp2 <- quantile(b[,3], 1-a/2)
[3,] 0.7967511
1.343550
Magistra No. 84 Th. XXV Juni 2013 ISSN 0215-9511
Resampling Bootstrap Pada R
$int.pct [,1]
[,2]
[1,] 1.2339186
4.118422
[2,] 6.6603225
7.091760
[3,] 0.8117778
1.354883
Berdasarkan output R yang diperoleh terlihat dapat diringkas dalam Tabel 1. Tabel 1. Ringkasan Hasil
Parameter
Estimasi
Int. Pendekatan Normal
Int. Persentil
BB
BA
BB
BA
0
2,813375
1.2532716
4.343726
1.2339186
4.118422
1
6,895319
6.6799812
7.120587
6.6603225
7.091760
1,075275
0.7967511
1.343550
0.8117778
1.354883
2
Berdasarkan Tabel 1, estimasi bootstrap untuk parameter regresi
,
,
masing-masing 2,813, 6,895
dan 1,07 cukup dekat dengan parameter populasinya yaitu 3, 7 dan 1. Sedangkan estimasi interval konfidensi baik interval bootstrap pendekatan normal maupun interval bootstrap persentil memberikan hasil yang hampir sama dan keduanya memuat parameter populasi dengan range yang cukup sempit.
KESIMPULAN Berdasarkan uraian di atas terdapat beberapa hal penting yang dapat disimpulkan. Metode resampling bootstrap dapat dilakukan dengan bantuan software R. Program resampling bootstrap menggunakan R disusun berdasarkan algoritma bootstrap pada masing-masing kasus. Berdasarkan studi simulasi, metode bootstrap dapat digunakan sebagai metode alternatif yang memberikan hasil estimasi yang sangat dekat dengan parameter populasi. Estimasi interval juga memberikan interval konfidensi yang memuat parameter populasi dan dengan range interval yang cukup sempit. Hal ini menunjukkan bahwa metode bootstrap memiliki keakuratan yang tinggi.
Magistra No. 84 Th. XXV Juni 2013 ISSN 0215-9511
53
Resampling Bootstrap Pada R
DAFTAR PUSTAKA Bennett, P. J., 2009, Introduction to the Bootstrap and Robust Statistics. Winter Term, PSY711/712. Bickel, P. J. and Freedman, D. A., 1981, Some Asymtotic Theory for the Bootstrap, Ann. Statist., no. 6, 9, 1196–1217. Efron, B. and Tibshirani, R. J., 1993, An Introduction
Sahinler, S. and Topuz, D., 2007, Bootstrap and Jackknife Resampling Algorithms for Estimation of Regression Parameters, JAQM, no. 2, 2, 188199. Shao, J. and Tu, D., 1995, The jacknife and bootstrap, Springer Verlag Inc., New York.
to the Bootstrap, Chapman and Hall, New York.
54
Magistra No. 84 Th. XXV Juni 2013 ISSN 0215-9511