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 mengatasi permasalahan dalam statistika baik masalah data yang sedikit, data yang menyimpang dari 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 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 metode resampling bootstrap menggunakan semua kemungkinan sampel yaitu n n. Akan tetapi hal ini 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 adalah estimasi untuk parameter 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 47
1. Mengkonstruksi distribusi empiris dari suatu sampel dengan memberikan probabilitas 1/n pada setiap dimana i = 1, 2,..., n 2. Mengambil sampel bootstrap berukuran n secara random dengan pengembalian dari distribusi 1. empiris, sebut sebagai sampel bootstrap pertama 3. Menghitung 1.statistik yang diinginkan dari sampel bootstrap, sebut sebagai 4. Mengulangi langkah 2 dan 3 hingga B kali, 1. 5. Mengkontruksi suatu distribusi probabilitas dari dengan memberikan probabilitas 1/B pada setiap. Distribusi tersebut merupakan estimator bootstrap untuk distribusi sampling dan dinotasikan dengan. 6. Pendekatan estimasi bootstrap untuk adalah mean dari 1. distribusi yaitu Pendekatan bootstrap jika diulang lebih dari satu kali akan memberikan hasil yang berbeda, hal ini karena yang dilakukan adalah suatu simulasi. Jika dapat dilakukan menggunakan semua kemungkinan sampel yaitu n n maka hasilnya akan sama. Secara teori, menurut Shao dan Tu [5], sifat asimtotis distribusi bootstrap mendekati distribusi sebenarnya. Pada penggunaannya, metode bootstrap harus dilakukan dengan bantuan komputer karena melibatkan perhitungan yang sangat banyak. Software software statistik belum ada yang memberikan paket resampling bootstrap secara langsung, sehingga metode ini masih jarang digunakan oleh peneliti. Tulisan ini memberikan paket resampling bootstrap secara detail dalam bahasa R yang disusun berdasarkan algoritma resampling bootstrap pada kasus estimasi rata-rata dan estimasi parameter regresi linear. ESTIMASI BOOTSTRAP UNTUK RATA-RATA Pada bagian ini akan dibahas resampling bootstrap untuk estimasi rata-rata populasi. Misalkan dimiliki sampel berukuran n yaitu yang diambil dari suatu populasi dan adalah estimasi 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. Mengkonstruksi distribusi empiris dari suatu sampel dengan memberikan probabilitas 1/n pada setiap dimana i = 1, 2,..., n 2. Mengambil sampel bootstrap berukuran n secara random dengan pengembalian dari distribusi empiris, sebut sebagai sampel bootstrap pertama 3. Menghitung statistik yang diinginkan dari sampel bootstrap, sebut sebagai 4. Mengulangi langkah 2 dan 3 hingga B kali, 5. Mengkontruksi suatu distribusi probabilitas dari dengan memberikan probabilitas 1/B pada setiap. Distribusi tersebut merupakan estimator bootstrap untuk distribusi sampling dan dinotasikan dengan. 48 Magistra No. 84 Th. XXV Juni 2013
6. Pendekatan estimasi bootstrap untuk adalah mean dari distribusi yaitu bootstrap persentil (1- )x 100% untuk oleh diberikan Menurut Bickel dan Freedman [2], sifat asimtotis distribusi bootstrap untuk kuantitas pivot mendekati distribusi normal dengan rata-rata nol dan variansi. 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 replikasi B kali. Variansi estimator bootstrap diberikan oleh dengan adalah persentil ke 100x( ) dan merupakan persentil ke 100x( ) dari distribusi 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 dari akar variansi. Interval konfidensi bootstrap pendekatan normal (1- )x 100% untuk diberikan oleh Interval konfidensi bootstrap persentil didasarkan pada distribusi estimator bootstrap. Dibentuk distribusi empiris untuk misalkan. Dari distribusi ini dapat dihitung nilai persentil yang merupakan ide dasar konstruksi interval konfidensi bootstrap persentil. Interval konfidensi for(i in 1:B) { y[i, ] <- sample(x, n, replace = T) xbar[i] <- mean(y[i, ]) xbartot <- mean(xbar) bb<-mean(x)+qnorm(a/2)*sqrt(var(x)/n) ba<-mean(x)+qnorm(1-a/2)*sqrt(var(x)/n) int<-cbind(bb,ba) bb1<-quantile(xbar,a/2) ba1<-quantile(xbar,1-(a/2)) Magistra No. 84 Th. XXV Juni 2013 49
int1<-cbind(bb1,ba1) list(est.bootstrap=xbartot,int.normal=int,int.pct=int1) Untuk menjalankan program resampling bootstrap di R ini diberikan simulasi dengan membangkitkan data. Misalkan populasi terdiri dari 20.000 data dari distribusi normal Berdasarkan output R yang terlihat bahwa rata-rata populasi 33,02407 yang sangat dekat dengan rata-rata populasi yaitu 33,03872. 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. > x<-rnorm(20000,33,4) > mean(x) [1] 33.03872 Dari populasi kita dapat mengetahui rata-rata populasi yang yang akan kita estimasi adalah 33,03872. Diambil sampel secara random berukuran 500 dari populasi. Sampel ini selanjutnya disebut sampel asli. > 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 > boot(y,1000,0.05) $est.bootstrap [1] 33.02407 $int.normal bb ba [1,] 32.66326 33.37283 $int.pct bb1 ba1 2.5% 32.66392 33.3865 ESTIMASI BOOTSTRAP UNTUK PARAMETER REGRESI LINEAR Pada bagian ini akan dibahas resampling bootstrap untuk estimasi parameter regresi linear. Tanpa mengurangi keumuman pembahasan diambil regresi linear dengan satu variabel dependen dan dua variabel independen. Model regresi linear populasinya. 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 Sahinler dan Topuz [4], prosedur bootstrap resampling residual untuk estimasi parameter regresi dapat dituliskan sebagai berikut : 1. Menentukan fit model berdasarkan sampel asli dengan menggunakan metode kuadrat terkecil, 2. Menghitung nilai residual, 3. Mengambil sampel bootstrap berukuran n dari secara random dengan pengembalian, sampel bootstrap pertama 50 Magistra No. 84 Th. XXV Juni 2013
4. Menghitung nilai bootstrap untuk dengan menambahkan pada fit model, sehingga 5. Menghitung koefisien regresi untuk sampel bootstrap yang pertama dengan, 6. Mengulangi proses diatas sebanyak B kali, 7. Pendekatan estimasi bootstrap untuk parameter regresi adalah mean dari distribusi yaitu Standar eror bootstrap dari akar variansi. Interval konfidensi bootstrap pendekatan normal (1- )x 100% untuk diberikan oleh Interval konfidensi bootstrap persentil didasarkan pada distribusi estimator bootstrap. Untuk setiap k, dibentuk distribusi empiris untuk 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 parameter regresi 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 replikasi B kali. Variansi estimator bootstrap untuk k=0,1,2 diberikan oleh dengan adalah persentil ke 100x( ) dan merupakan persentil ke 100x( ) dari distribusi Algoritma resampling bootstrap pada kasus estimasi parameter regresi dibuat dalam bahasa pemrograman R dengan nama fungsi reg dan diberikan sebagai berikut. > 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 51
e <- seq(1:n) for(i in 1:n) { e[i] <- y[i] - yfit[i] estar <- matrix(0, nrow = B, ncol = n) ystar <- matrix(0, nrow = B, ncol = n) b <- matrix(0, nrow = B, ncol = 3) for(i in 1:B) { estar[i, ] <- sample(e, n, replace = T) 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])) lo1<- b0[, 2] + qnorm(a/2) * sqrt(var(b[,2])) lo2 <- b0[, 3] + qnorm(a/2) * sqrt(var(b[,3])) up0 <- b0[, 1] + qnorm(1-a/2) * sqrt(var(b[,1])) up1 <- b0[, 2] + qnorm(1-a/2) * sqrt(var(b[,2])) up2 <- b0[, 3] + qnorm(1-a/2) * sqrt(var(b[,3])) int1 <- matrix(c(lo0, up0, lo1, up1, lo2, up2), nrow = 3, byrow = T) lop0 <- quantile(b[,1], a/2) lop1 <- quantile(b[,2], a/2) lop2 <- quantile(b[,3], a/2) upp0 <- quantile(b[,1], 1-a/2) upp1 <- quantile(b[,2], 1-a/2) upp2 <- quantile(b[,3], 1-a/2) int2 <- matrix(c(lop0, upp0, lop1, upp1, lop2, upp2), nrow = 3, byrow= T) list(est.boot=bboot,int.normal=int1,int.pct=int2) Untuk menjalankan program resampling bootstrap di R ini diberikan simulasi dengan membangkitkan data. Misalkan populasi terdiri dari 30 data dari untuk y, x 1 dan x 2 masing-masing sebagai berikut. > x1<-rnorm(30,4,1.5) > x2<-rnorm(30,5,1.5) > e<-rnorm(30) > y<-3+7*x1+x2+e Berdasarkan data ini kita sudah mengetahui nilai parameter populasinya,, berturuttur ut 3, 7 dan 1. Selanjutnya untuk melihat keakuratan metode bootstrap akan dilakukan estimasi berdasarkan data sampel. Estimasi par ameter regresi menggunakan resampling bootstrap dengan replikasi B=1000 dan tingkat kepercayaan interval 95% diberikan oleh > reg(y,x1,x2,1000,0.05) $est.boot [1] 2.813375 6.895319 1.075275 $int.normal [,1] [,2] [1,] 1.2532716 4.343726 [2,] 6.6799812 7.120587 [3,] 0.7967511 1.343550 52 Magistra No. 84 Th. XXV Juni 2013
$int.pct [,1] [,2] [1,] 1.2339186 4.118422 [2,] 6.6603225 7.091760 [3,] 0.8117778 1.354883 Berdasarkan output R yang terlihat dapat diringkas dalam Tabel 1. Tabel 1. Ringkasan Hasil Parameter 0 Estimasi 2,813375 Int. Pendekatan Int. Persentil Normal BB BA BB BA 1.2532716 4.343726 1.2339186 4.118422 1 6,895319 6.6799812 7.120587 6.6603225 7.091760 2 1,075275 0.7967511 1.343550 0.8117778 1.354883 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 53
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 to the Bootstrap, Chapman and Hall, New York. Sahinler, S. and Topuz, D., 2007, Bootstrap and Jackknife Resampling Algorithms for Estimation of Regression Parameters, JAQM, no. 2, 2, 188-199. Shao, J. and Tu, D., 1995, The jacknife and bootstrap, Springer Verlag Inc., New York. 54 Magistra No. 84 Th. XXV Juni 2013