RESAMPLING BOOTSTRAP PADA R

advertisement
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
Download