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