Top Banner
TUGAS KELOMPOK KOMPUTASI STATISTIKA PENDUGAAN SELANG KEPERCAYAAN DENGAN METODE BOOTSTRAP Kajian atas suatu makalah berjudul “A Practical Introduction to the Bootstrap Using the SAS System” OLEH: DENI IRVANI (G152100111) ZULFIKAR () LIMARTEN SIMATUPANG () diserahkan pada: 18 Januari 2011 DEPARTEMEN STATISTIKA SEKOLAH PASCASARJANA INSTITUT PERTANIAN BOGOR
38

Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

Jun 28, 2015

Download

Documents

Deni Irvani
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

TUGAS KELOMPOK KOMPUTASI STATISTIKA  

 PENDUGAAN SELANG KEPERCAYAAN DENGAN 

METODE BOOTSTRAP  

Kajian atas suatu makalah berjudul “A Practical Introduction to the Bootstrap Using the SAS System” 

  

OLEH:  

DENI IRVANI (G152100111) ZULFIKAR () 

LIMARTEN SIMATUPANG ()   

diserahkan pada: 18 Januari 2011 

   

          

DEPARTEMEN STATISTIKA SEKOLAH PASCASARJANA  

INSTITUT PERTANIAN BOGOR 

Page 2: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 1

PENDAHULUAN 

Nancy Barker, melalui makalahnya  “A  Practical  Introduction  to  the Bootstrap Using  the  SAS  System”,  memberi  penjelasan  yang  sangat  praktis  bagaimana menerapkan metode  bootstrap  untuk melakukan  inferensi  statistik  dengan  bantuan program  SAS.  Dimisalkan  ada  suatu  data  sampel  berupa  respons  perubahan  yang dialami oleh 10  subjek setelah mendapat perlakuan pengobatan: 196,  ‐12, 280, 212, 52, 100,  ‐206, 188,  ‐100, 202. Dari  sampel  yang  kecil  tersebut  kemudian ditentukan nilai dugaan galat baku  (standard error) berdasarkan  simulasi bootstrap  sebagai alat untuk menginferensi rataan.  

Lebih jauh Barker juga menjelaskan bagaimana menerapkan metode bootstrap untuk  menganalisis  perbadingan  rataan  dua  kelompok:  kelompok  yang  diberikan pengobatan  aktif  (ACTIVE)  dan  kelompok  yang  diberikan  pengobatan  placebo (PLACEBO).  Data  untuk  kelompok  ACTIVE  seperti  dideskripsikan  di  atas,  sedangkan data untuk kelompok PLACEBO: 120, ‐80, ‐63, 200, 23, 54, ‐198, 165, ‐8, 19.  

Tulisan  ini bermaksud mengkaji dan menelusuri penjelasan Barker, khususnya mengenai  cara menentukan  selang  kepercayaan melalui metode  selang  t‐bootstrap dan selang persentil dengan menggunakan program SAS.  

 

BOOTSTRAP: METODE ALTERNATIF UNTUK MELAKUKAN INFERENSI STATISTIK 

Sebaran  t‐student  biasa  dimanfaatkan  oleh  statistikawan  untuk  menduga selang kepercayaan. Semuanya mafhum bahwa asumsi kenormalan merupakan syarat dasar  yang  harus  terpenuhi;  karena  itu,  sebelum  menyodorkan  dugaan  selang kepercayaan  statistikawan  umumnya menyibukkan  diri  dengan  berbagai  penjelasan, sedemikian rupa sehinggga penggunaan t‐student memperoleh pembenaran. 

Jika yang dievaluasi adalah  statistik  rataan para  statistikawan dapat  tertolong oleh  dalil  limit  pusat  yang  menyatakan  bahwa  sebaran  rataan  mendekati  normal apabila sampel yang diambil berukuran besar, tak peduli apa sebaran asalnya. Namun, kenyataan  yang  dialami  kadang  tidak  sesempurna  itu.  Pada  suatu  kesempatan, mungkin saja sampel yang diambil berukuran kecil sehingga dalil limit pusat tidak bisa menjadi  sandaran,  dan  pada  saat  yang  sama  sebaran  populasi  sama  sekali  tidak diketahui.  

Kalau  sampelnya  cukup  besar,  meskipun  sebaran  populasi  tidak  diketahui kenormalan  data  masih  bisa  diidentifikasi  dengan  uji  kebaikan  suai,  tapi  kalau sampelnya kecil uji kebaikan suai umumnya gagal memberi garansi kenormalan. 

Sampel  kecil  bukanlah  satu‐satunya  masalah  yang  dapat  menghambat pekerjaan  statistikawan. Masalah  lain  yang  dapat muncul  adalah  ketika  yang mau dievaluasi  bukan  statistik  rataan,  misalnya  median.  Kita  tahu  t‐student  tidak di”ciptakan” sebagai alat untuk menganalisis median;  lalu bagaimana kalau kita tetap ingin tahu standar errornya? Apakah hal itu bisa dilakukan? 

Page 3: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 2

Kadangkala ada oknum statistikawan yang memaksakan penggunaan statistik t‐student  agar  dapat  memenuhi  keinginannya  melakukan  inferensi  dengan  cara menyatakan  bahwa  data  yang  dianalisis  diasumsikan  menyebar  normal,  meskipun sebenarnya asumsi tersebut bukan berasal dari fakta atau hasil pengujian yang ketat, melainkan  harapan  belaka.  Tindakan  ini  menanggung  konsekuensi:  kalau  pada kenyataaan asumsi kenormalan tidak terpenuhi maka hasil inferensinya akan salah.  

Kesalahan yang dilakukan oleh seorang statistikawan bisa saja berakibat  fatal. Pengujian pengaruh obat, misalnya, menuntut ketelitian dan keabsahan dari metode yang digunakan.  Jika metodenya salah maka hasil pengujiannya bisa salah, dan pada akhirnya  kesalahan  tersebut  bisa  mengancam  jiwa  manusia.    Gambaran  ini  akan membuat  statistikawan  merasa  terpojok.  Lantas  apa  yang  bisa  dilakukan  saat  kita berada  dalam  kondisi  yang  penuh  keterbatasan?  Metode  apa  yang  bisa  dijadikan sebagai  jalan  keluar?  Tidak  ada  solusi  tunggal  dan  pasti,  namun metode  Bootstrap memungkinkan kita menemukan jalan keluar. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 4: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 3

TINJAUAN METODE BOOTSTRAP 

Metode  pem‐bootstrap‐an  pertama  kali  diperkenalkan  oleh  Efron  sebagai sebuah metode untuk menurunkan nilai dugaan galat baku (standard error) dari suatu penduga tak tentu. Mencari galat baku suatu nilai dugaan adalah sebuah kegiatan yang penting bagi setiap statistikawan karena umumnya tidak merasa cukup hanya dengan nilai dugaan  titik;  kita  selalu  ingin  tahu  sebarapa  layakkah  si penduga — bagaimana keragaman  dari  penduga?  Dalam  kenyataannya,  kadang  para  statistikawan  begitu ”serakah” dan tidak hanya ingin tahu dugaan titik dan galat bakunya saja tapi juga hal‐hal lain seperti bias atau bahkan sebaran lengkap dari penduga (Nancy Barker). 

Bootstrap ialah sebuah jalan keluar yang patut dicoba ketika statistikawan yang ”serakah”  terperangkap  sejumlah  persoalan,  seperti  tidak  terpenuhinya  asumsi kenormalan  akibat  dari  sampel  kecil,  adanya  hubungan  tak  linear  antar  peubah (misalnya  rasio),  atau  ketika  statistik  yang  ingin dievaluasi  bukanlah  rataan. Dengan Bootstrap,  kita  dapat  membuat  inferensi  seperti  selang  kepercayaan  tanpa mengetahui  sebaran  populasi.  Penjelasan detail  tentang metode  ini dapat  dibaca  di dalam  buku  yang  ditulis  Efron  dan  Tibshirani:  ”An  Introduction  to  the  Bootstrap” (1993).   

Menurut  Efron  dan  Tibshirani,  teori  statistika  berusaha  menjawab  tiga pertanyaan mendasar: 

1) Bagaimana cara mengumpulkada data? 

2) Bagaimana cara menganalisis dan meringkas data yang telah terkumpul? 

3) Seberapa akurat ringkasan data yang telah dibuat? 

Pertanyaan  ketiga, menaksir AKURASI,  berhubungan  dengan  proses  inferensi statistik. Bootstrap merupakan suatu teknik baru dan terus berkembang sebagai upaya untuk menjawabnya  

Menaksir  akurasi  dari  suatu  penduga  merupakan  salah  satu  tujuan  yang umumnya  ingin  dicapai  oleh  statistikawan,  tapi  sayangnya  hal  ini  tidak  selamanya mudah dilakukan.  Jika yang  sedang dievaluasi adalah  rataan,  formula  tingkat akurasi 

bisa diperoleh dengan mudah, yakni n

s 2

, yang dikenal sebagai dugaan standard error. 

Tapi  kalau  yang  dievaluasi  adalah  statistik  selain  rataan,  itu  berarti  statistikawan sedang menjumpai  masalah. 

 

MENDUGA STANDARD ERROR 

Standard  error  dari  suatu  penduga  didefinisikan  sebagai  akar  kuadrat  dari ragamnya. Ini merupakan ukuran yang paling umum untuk akurasi suatu penduga.  

Menduga standard error adalah  langkah awal yang sangat baik untuk berpikir kritis  terhadap  nilai  dugaan.  Sayangnya  standar  error mempunyai  kelemahan  besar: untuk  kebanyakan  penduga  selain  rataan  tidak  tersedia  formula  untuk  dugaan standard  error.  Dengan  kata  lain,  sulit  menerka  akurasi  suatu  nilai  dugaan  selain 

Page 5: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 4

rataan. Lalu bagaimana caranya mengetahui tingkat keakuratan statistik selain rataan, misalnya median? Bootstrap hadir untuk menjawab pertanyaan seperti ini .  

Untuk memahami  bagaimana  proses metode  bootstrap  dalam mengestimasi standard  errror  suatu  statistik,  Efron  dan  Tibshirani memberikan  gambaran  dengan skema di bawah ini: 

 

 

 

 

 

 

 

 

 

 

 

 

 

Skema di atas menjelaskan bahwa standar error dari suatu statistik s(X) dapat diduga oleh standar deviasi dari nilai‐nilai replikasi bootstrap s(X*1), s(X*2), ..., s(X*B), di mana B adalah banyaknya sampel bootstrap yang dibangkitkan dari data melalui penarikan sampel  dengan  pengembalian,  dan  masing‐masing  sampel  bootstrap  berukuran  n (banyaknya observasi pada data asal). 

 

MENETUKAN SELANG KEPERCAYAAN BOOTSTRAP 

Lebih  jauh, Efron dan Tibshirani menjelaskan dengan sangat detail bagaimana teknik menduga selang kepercayaan dari suatu parameter: melalui ”tabel” bootstrap (t‐boostrap)  dan  persentil  bootstrap,  serta  berbagai  metode  yang  bisa  digunakan untuk  mengoreksi  hasilnya.  Merujuk  ke  Efron  dan  Tibshirani,  Nancy  Barker menjelaskannya dengan cara yang lebih ringkas. 

Misalkan  ada  suatu  nilai  dugaan    dan  dugaan  standard  error  es ,  maka  selang kepercayaan 95% yang umum ialah:   

RATAAN ± 1.96*SE =  es*96.1ˆ  

Ini didasarkan pada asumsi bahwa: 

Page 6: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 5

)1,0(~ˆ

ˆN

esZ

 (yakni mendekati sebaran normal baku) 

Ini sah  jika n , tapi hanya sebuah pendekatan untuk sampel terbatas. Pendekatan yang mungkin lebih baik ialah dengan menggunakan sebaran t dengan mengasumsikan  

)1(~ˆ

ˆ

nt

esZ

 (yakni mendekati sebaran t dengan derajat bebas n‐1). 

Untuk  sampel  kecil  ini merupakan  pendekatan  yang  lebih  baik,  namun  penggunaan sebaran‐t  tidak  meng‐adjust  selang  kepercayaan  untuk  menjelaskan  kemenjuluran 

yang asli dari populasi – atau galat lain yang muncul ketika   bukan rataan. 

Dengan  menggunakan  metode  bootstrap  bisa  diperoleh  selang  yang  akurat  tanpa harus membuat asumsi teori normal.  

SELANG T‐BOOTSTRAP 

Metode  ini menyediakan  jalan bagi  kita untuk menduga  sebaran  statistik es

ˆ  

secara  langsung  dari  data. Misalkan  kita  buat  sekumpulan  sampel  bootstrap.  Pada setiap sampel bootstrap kita duga nilai‐nilai Z dengan cara berikut: 

)(*ˆ

ˆ)(*ˆ)(*

bes

bbZ

 

di mana  )(*ˆ b adalah  nilai dugaan untuk  sampel  bootstrap  ke‐b dan  )(*ˆ bes adalah 

dugaan standar error untuk  *  dari sampel bootstrap ke‐b. 

Persentil ke‐α dari  )(* bZ diduga sebagai nilai  )(ˆ t , sedemikian: 

B

tbZ )(ˆ)(*#  

dimana {x} merupakan banyaknya observasi yang memenuhi kondisi x. 

Selang kepercayaan kemudian ditentukan sebagai berikut: 

estest ˆ.ˆˆ,ˆˆˆ )()1(  

Namun demikian, apa yang terjadi  jika kita  ingin melihat suatu statistik yang di mana tidak ada pendekatan parametrik untuk standar errornya (misalnya statistik median)? Untuk mendekati  standar  errornya  kita  harus menghitung  dugaan  bootstrap  untuk setiap  sampel  bootstrap.  Dengan  kata  lain,  dibuat  dua  level  yang  tersarang  dari pembootrstrapan. Tapi membatasi kajian, dalam tulisan ini kita hanya akan membahas metode bootstrap dalam mengevaluasi statistik rataan saja. 

  

Page 7: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 6

SELANG PERSENTIL 

Ini adalah metode yang paling sederhana untuk menghitung suatu selang kepercayaan bootstrap.  Jika  kita  ingin  menghitung  selang  kepercayaan  95%  kita  pilih  nilai‐nilai dugaan  bootstrap  yang  terentang  antara  persentil  ke  2.5  dan  persentil  ke  97.5. Misalnya  saja kita  telah menghitung 10000 nilai‐nilai dugaan bootstrap. Kita urutkan nilai‐nilai tersebut dari yang terendah sampai tertinggi dan ambil nilai ke‐250 sebagai batas bawah dan nilai ke‐9750 sebagai batas atas (Barker). 

 

ALGORITME BOOTSTRAP 

Untuk mempermudah  pemahaman,  Barker meringkas  teknik  bootstrap  ke  dalam  3 langkah berikut: 

1. Buat replikasi Bootstrap melalui re‐sampling dengan pemulihan 

2. Hitung statistik yang mau dievaluasi untuk setiap sampel 

3. Gunakan sebaran statistik hasil replikasi untuk membuat inferensi 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 8: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 7

SIMULASI BOOTSTRAP UNTUK SATU DATA SAMPEL  

CONTOH KASUS: INFERENSI RATAAN PADA KELOMPOK ”ACTIVE” 

 

Kembali  ke  kasus  kita  untuk mengkaji  penjelasan Nancy  Barker  dalam menerapkan metode bootstrap pada data kelompok ACTIVE dengan cara menelusuri program SAS yang dibuatnya.   

RATAAN DATA ORIGINAL 

Yang pertama akan kita lakukan adalah mengetahui statistik rataan kelompok ACTIVE. Untuk memulai  pekerjaan,  kita  buat  terlebih  dahulu  gugus  data  kelompok  ACTIVE dengan memasukkan pernyataan berikut: 

 

 

 

 

 

 

Ouput dari PROC PRINT atas data ORIGINAL ditampilkan di bawah ini. 

 

 

 

 

 

 

Selanjutnya kita  lihat statistik rataan dari data ORIGINAL tersebut dengan pernyataan berikut: 

 

 

 

 

data ORIGINAL; input active@@; cards; 196 -12 280 212 52 100 -206 188 -100 202 ; run; proc print data=ORIGINAL; run;

Obs active 1 196 2 -12 3 280 4 212 5 52 6 100 7 -206 8 188 9 -100 10 202

proc means data=ORIGINAL noprint nway; var active; output out=MEAN_ORIGINAL mean=mean_original; run;

Page 9: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 8

Hasil PROC MEANS di atas  tidak dicetak,  tapi disimpan di  suati gugus data bernama “MEAN_ORIGINAL”. Jika dicetak,  isi dari gugus data MEAN_ORIGINAL tersebut adalah sebagai berikut: 

 

 

 

 

Sekarang kita tahu bahwa nilai rataan kelompok ACTIVE adalah 91.2.  

 

RESAMPLING DATA ORIGINAL: MEMBUAT SEBUAH SAMPEL BOOTSTRAP 

Selanjutnya  kita  masukkan  pernyataan  program  untuk  membuat  1  buah  sampel bootstrap (resampling dengan pemulihan) dari data ORIGINAL, dan menelusuri maksud dari setiap pernyataannya. Pernyataan tersebut adalah sebagai berikut: 

 

 

 

 

 

 

Jika dicetak, isi gugus data BOOTSAMP bisa digambarkan sebagai berikut: 

 

 

 

 

 

 

 

Gugus  data  BOOTSAMP  di  atas  terdiri  dari  10  observasi  dan  2  kolom  (kolom  i  dan active). Nilai‐nilai pada kolom active merupakan hasil penarikan sampel berukuran 10 dari  data ORIGINAL dengan  pemulihan. Adanya unsur  pemulihan  dapat  terlihat dari munculnya sejumlah nilai yang sama pada kolom active, yaitu: 188 (muncul 3 kali) dan 196 (muncul 3 kali). 

 

data BOOTSAMP; do i = 1 to nobs; x = round(ranuni(0) * nobs); set original nobs = nobs point = x; output; end; stop; run;

Obs i active 1 1 188 2 2 196 3 3 212 4 4 202 5 5 188 6 6 196 7 7 196 8 8 188 9 9 280 10 10 52

mean_ Obs _TYPE_ _FREQ_ original 1 0 10 91.2

Page 10: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 9

Berikut ini adalah penjelasan maksud dari setiap baris pernyataan dalam tahapan data BOOTSAMP. 

 

NO  PERNYATAAN  MAKSUD DAN KEGUNAAN 

1  data BOOTSAMP; Membuat gugus data bernama “BOOTSAMP” 

2  do i = 1 to nobs;

Membuat DO‐iterasi dengan ulangan sebanyak nobs, dimulai dari i=1 sampai i=nobs. nobs merupakan nilai dari suatu peubah yang pendefinisiannya terletak pada baris pernyataan ke‐4 di bawah. 

Pada baris pernyataan ke‐4, pernyataan SET ditambahkan dengan OPTION nobs=nobs. nobs disebelah kiri ”=” berarti jumlah observasi pada data original, sedangkan nobs di sebelah kanan “=” adalah nama peubah yang didefinisikan.  

Dalam kasus kita ini, jumlah observasi pada data original adalah 10, sehingga pernyataan do i = 1 to nobs setara dengan pernyataan do i = 1 to 10. 

3 x = round(ranuni(0) * nobs);

Membangkitkan sebuah bilangan acak dari sebaran seragam(0,1), lalu bilangan acak tersebut dikalikan dengan nobs (nilai dari peubah yang didefinisikan pada baris ke‐4). Selanjutnya hasil perkalian tersebut dibulatkan dan nilainya dimasukkan ke dalam suatu peubah yang bernama x. 

Jelasnya bisa dicermati ilustrasi berikut: 

1. misalkan ranuni(0) = 0.7992 

2. (ranuni(0) * nobs)  0.7992*10= 7.992 

3. x = round(ranuni(0) * nobs) = 8 

 

Perlu diketahui bahwa fungsi RANUNI mengandung argumen (seed). Argumen seed merupakan sebuah bilangan bulat tak negatif yang harus diisi secara sembarang dengan batasan seed<231‐1. Jika kita menggunakan seed positif, kita bisa mereplikasi aliran angka acak dengan menggunakan tahapan data yang sama. Jika kita menggunakan nol sebagai seed (seperti dalam program ini), maka jam komputer yang menginisialisasi alirannya, sehingga aliran angka acak tidak berulang. 

4 set ORIGINAL nobs = nobs point = x;

Menggunakan gugus data ORIGINAL, dengan menambahkan OPTIONS nobs=nobs dan point=x. 

OPTIONS nobs=nobs sudah dijelaskan pada No.2 di 

Page 11: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 10

atas. 

OPTIONS point = x maksudnya adalah menunjuk baris ke‐x pada data original. 

Melanjutkan ilustrasi pada penjelasan No.3 di atas, jika misalkan x=8, maka Point = x maksudnya menunjuk baris ke‐8 ada data original, yiatu baris yang berisi nilai active= 188. 

5  output; Menyimpan satu baris data ORIGINAL yang telah ditunjuk ke dalam gugus data BOOTSAMP.   

6  end; Mengakhiri DO‐iterasi 

7  stop; Menghentikan kegiatan menunjuk baris pada data ORIGINAL 

8  run; Menjalankan prosedur tahapan data BOOTSAMP 

 

 

RESAMPLING DATA ORIGINAL: MEMBUAT 1000 BUAH SAMPEL BOOTSTRAP 

Sekarang  kita  buat  program  SAS  untuk menarik  1000  sample  bootstrap  (resampling 1000 kali) terhadap data original, dengan memasukkan pernyataan berikut: 

 

Perhatikan,  untuk  membuat  1000  sampel  bootstrap  kita  hanya  menambahkan pernyataan DO‐iterasi do sampnum = 1 to 1000; dan mengahirinya dengan

end; pada pernyataan tahapan data BOOTSAMP yang dideskripsikan sebelumnya.  

 

Jika gugus data BOOTSAMP dicetak, hasilnya bisa digambarkan sebagai berikut: 

     

data BOOTSAMP; do sampnum = 1 to 1000; do i = 1 to nobs; x = round(ranuni(0) * nobs); set original nobs = nobs point = x; output; end; end; stop; run;

Page 12: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 11

 

 

 

 

 

REPLIKASI  BOOTSTRAP:  RATAAN DAN  STANDAR  ERROR MASING‐MASING  SAMPLE BOOTSTRAP  

Sekarang  kita  hitung  rataan  dan  standar  error  dari  masing‐masing  (1000)  sampel bootstrap.  Untuk tujuan tersebut, pertama kita buat pernyataan berikut: 

 

Pernyataan di atas dimaksudkan untuk memperoleh rataan‐rataan serta standar error dari 1000 sampel bootstrap, hasilnya tidak dicetak, tapi dimasukkan ke dalam sebuah gugus  data  baru  bernama  ”MEAN_BOOTSTRAP”;  nama  kolom  untuk  rataan  adalah mean_bootstrap  sedangkan  nama  kolom  untuk  standar  error  adalah  se_bootstrap. Sementara  itu  OPTIONS  nway  ditambahkan  dengan  maksud  agar  statistik‐statistik (mean dan standar error) yang dihasilkan PROC MEANS ditampilkan pada kolom‐kolom tersendiri yang terpisah. 

Jika gugus data MEAN_BOOTSTRAP dicetak, maka outputnya bisa digambarkan sebagai berikut: 

proc means data=BOOTSAMP noprint nway noprint; var active; class sampnum; output out=MEAN_BOOTSTRAP n=n mean=mean_bootstrap stderr=se_bootstrap; run;

Obs sampnum i active 1 1 1 196 2 1 2 212 3 1 3 212 4 1 4 52 5 1 5 52 6 1 6 196 7 1 7 52 8 1 8 -206 9 1 9 188 10 1 10 188 ... ... ... ..... ... ... ... ..... ... ... ... ..... 9991 1000 1 100 9992 1000 2 -100 9993 1000 3 -100 9994 1000 4 280 9995 1000 5 -206 9996 1000 6 -206 9997 1000 7 -206 9998 1000 8 188 9999 1000 9 -100 10000 1000 10 -100

Page 13: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 12

 

 

STANDAR ERROR DUGAAN 

Dari   Gugus  data MEAN_BOOTSTRAP  selanjutnya  kita  hitung  standard  error  dugaan untuk rataan data ORIGINAL. Untuk tujuan tersebut kita buat pernyataan berikut: 

 

 

 

 

Output pernyataan tersebut adalah sebagai berikut: 

 

 

 

 

 

 

Dari  output  di  atas  dapat  dilihat  bahwa  standar  deviasi  dari  rataan‐rataan  replikasi bootstrap  adalah  49.70;  ini  adalah  dugaan  standar  error  untuk  rataan  pada  data ORIGINAL. Standar error dugaan tersebut rencananya akan kita gunakan dalam proses inferensi rataan.  

Sementara  itu,  nilai  rataan  dari  rataan‐rataan  replikasi  bootstrap  (83.09) seharusnya  tidak  perlu  menjadi  perhatian  kita.  Namun  untuk  kali  ini  kita  harus mencermatinya dengan serius.  

   

mean_ Obs sampnum _TYPE_ _FREQ_ n bootstrap se_bootstrap 1 1 1 10 10 124.2 47.9393 2 2 1 10 10 88.0 49.9982 3 3 1 10 10 29.8 46.3517 .... .... .. .. .. ..... ....... .... .... .. .. .. ..... ....... .... .... .. .. .. ..... ....... 1000 1000 1 10 10 129.2 34.2218

The MEANS Procedure

Analysis Variable : MEAN_BOOTSTRAP

Mean Std Dev ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ 83.0918740 49.701981

ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ

proc means data=MEAN_BOOTSTRAP mean stddev nway ; var mean_bootstrap; run;

Page 14: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 13

PROGRAM SAS YANG DIBUAT NANCY BARKER HARUS DIREVISI!  

Jika diperhatikan, ada yang  janggal dari output nilai  rataan dari  rataan‐rataan replikasi bootstrap  (83.09). Nilai  rataan  tersebut  tampak  cukup  jauh melenceng dari rataan data ORIGINAL  (91.20). Ada  kecenderungan bahwa  rataan bootstrap berbias, dengan bias ≈ 83.09‐91.20 = ‐ 8.11. Ini hal yang aneh, sebab secara teori rataan sampel merupakan  penduga  tak  bias  bagi  rataan  populasi  (data ORIGINAL  bisa  diandaikan sebagai populasi dari  sampel bootstrap). Apakah karena  sampel bootstrap  yang  kita buat tidak cukup banyak, hanya 1000, maka hasilnya tidak cukup baik digunakan untuk mengidentifikasi bias dari penduga?  

Baiklah, untuk menghapus  keraguan,  kita  tes bagaimana hasilnya  seandainya sampel  bootstrap  dibuat  lebih  banyak,  yaitu  1000.000,  bukan  hanya  1.000.  Kita harapkan dengan replikasi yang 1000 kali lebih banyak dari sebelumnya maka kita tak lagi menjumpai perbedaan yang besar antara rataan sampel ORIGINAL dan rataan dari rataan‐rataan bootstrap. Untuk tujuan tersebut, maka kita buat program SAS berikut: 

 

Ouput dari serangkaian pernyataan di atas ditampilkan di bawah ini: 

     

 

Output  PROC  MEANS  di  atas  memperlihatkan  bahwa  rataan  dari  rataan‐rataan bootstrap  tetap  berbias,  padahal  telah  kita  telah membuat  replikasi  bootstrap  yang sangat  banyak  (1000.000).    Biasnya  tetap  besar  ≈  85.42‐91.20  =  ‐  5.78.  Apa  yang 

data BOOTSAMP; do sampnum = 1 to 1000000; do i = 1 to nobs; x = round(ranuni(0) * nobs); set original nobs = nobs point = x; output; end; end; stop; proc means data=BOOTSAMP noprint nway noprint; var active; class sampnum; output out=MEAN_BOOTSTRAP n=n mean=mean_bootstrap stderr=se_bootstrap; proc means data=MEAN_BOOTSTRAP mean stddev nway ; var mean_bootstrap; run;

The MEANS Procedure Analysis Variable : MEAN_BOOTSTRAP Mean Std Dev ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ 85.4246530 49.5637555 ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ

Page 15: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 14

sebenarnya  terjadi?    Untuk  menjawab  pertanyaan  ini,  mari  kita  cermati  kembali pernyataan program SAS yang dibuat Barker khususnya pada bagian resampling: 

          

 

Penyataan  SAS  tersebut dibuat oleh Barker dalam  rangka menarik  sampel dari data original. Teknisnya: memilih secara acak salah satu dari 10 baris data ORIGINAL, dan mengulangnya sampai 10 kali dengan pengembalian.  

Penggunaan  fungsi  RANUNI  pada  pernyataan  tersebut  menjelaskan  bahwa  Barker bermaksud membuat  setiap baris pada data original mempunyai peluang yang sama untuk terambil (seragam): peluang baris ke‐1 terambil adalah 10%, peluang baris ke‐2 terambil 10%,  ... dan peluang baris ke‐10 terambil  juga 10%. Maksud Barker tersebut jelasnya dituangkan dalam pernyataan baris ketiga dan keempat: 

x = round(ranuni(0) * nobs); set original nobs = nobs point = x;

Tapi, tampaknya Barker telah membuat kesalahan.  

Bila  kita  cermati,  pernyataan  x = round(ranuni(0) * nobs); adalah  sumber masalah yang menyebabkan rataan bootstrap menjadi penduga yang bias untuk rataan data  ORIGINAL,  karena  dengan  pernyataan  seperti  itu maka  baris  ke‐10  pada  data original (active=202) mempunyai peluang terambil yang lebih kecil.  

Tepatnya,  peluang  masing‐masing  baris  terambil  sebagai  sampel  bootstrap  adalah sebagai berikut: 

Baris  active  Peluang terambil 

1  196  10.52632% 

2  ‐12  10.52632% 3  280  10.52632% 4  212  10.52632% 5  52  10.52632% 6  100  10.52632% 7  ‐206  10.52632% 8  188  10.52632% 9  ‐100  10.52632% 10  202  5.26316% 

 Kenapa demikian, ikuti penjelasan berikut ini. 

data BOOTSAMP; do i = 1 to nobs; x = round(ranuni(0) * nobs); set original nobs = nobs point = x; output; end; stop; run; proc print data=BOOTSAMP; run;

Page 16: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 15

OPTION POINT =  

Proses yang dijalankan oleh SAS ketika option POINT = digunakan dijelaskan  sebagai berikut:  

POINT  =  x  pada  SAS  didesain  untuk  menunjuk  baris  ke  x  dengan  terlebih  dahulu membulatkan nilai x, dengan ketentuan: 

jika x ≥ 1, bulatkan nilai x ke bawah dan tunjuk nilai x yang sudah dibulatkan ke bawah tersebut. 

misal: x=2.7 dibulatkan menjadi x=2, lalu ditunjuk baris ke‐2. 

Jika 0<x<1, bulatkan nilai x menjadi 1 dan tunjuk nilai 1 tersebut. 

misal: x=0.2 dibulatkan menjadi x=1, lalu ditunjuk baris ke‐1. 

Jika x ≤ 0, tunjuk nilai yang sama dengan yang ditunjuk sebelumnya. 

misal:  jika  yang  ditunjuk  sebelumnya  adalah  baris  ke‐10, maka  sekarang baris  ke‐10  tersebut  ditunjuk  kembali.  Kalau  sebelumnya  tidak  ada  yang ditunjuk, maka  sekarang  tidak menunjuk  apapun;  dalam  kasus menunjuk baris ini maka hasilnya adalah nilai‐nilai ”missing”. 

 DEMONSTRASI  PROSES  SAS  ATAS  PROGRAM  RESAMPLING  YANG  DIBUAT  NANCY BARKER 

Penjelasan  option  POINT  di  atas  mungkin  terlalu  telalu  abstrak  dan  menguras pikiran. Untuk mempermudah, ikuti demonstrasi berikut. 

  

Pernyataan  RANUNI(0)  adalah  untuk  membangkitkan  bilangan  acak  yang menyebar  seragam(0,1).  Dengan  demikian,  maka  sebaran  peluangnya  bisa digambarkan dengan tabel di bawah ini. 

Selang Angka Acak0.00

- 0.05

0.05 -

0.10

0.10 -

0.15

0.15 -

0.20

0.20 -

0.25

0.25 -

0.30

0.30 -

0.35

0.35 -

0.40

0.40 -

0.45

0.45 -

0.50

0.50 -

0.55

0.55 -

0.60

0.60 -

0.65

0.65 -

0.70

0.70 -

0.75

0.75 -

0.80

0.80 -

0.85

0.85 -

0.90

0.90 -

0.95

0.95 -

1.00

Peluang 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 

  

Pernyataan  ranuni(0) * nobs; membuat  tabel  sebaran  peluang  di  atas berubah menjadi: 

 

Selang Angka Acak0.0-0.5

0.5-1.0

1.0-1.5

1.5-2.0

2.0-2.5

2.5-3.0

3.0-3.5

3.5-4.0

4.0-4.5

4.5-5.0

5.0-5.5

5.5-6.0

6.0-6.5

6.5-7.0

7.0-7.5

7.5-8.0

8.0-8.5

8.5-9.0

9.0-9.5

9.5-10

Peluang 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 

    

Page 17: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 16

Peryataan x = round(ranuni(0) * nobs) membuat tabel sebaran peluang di atas berubah menjadi: 

 

x 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10

Peluang 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 

   

Selanjutnya,  peryataan  set original point = x dimaksudkan  untuk menunjuk baris ke‐x pada data original. Ilustrasinya sebagai berikut: 

 

x 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10

Peluang 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 

     

1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10

196 196 -12 -12 280 280 212 212 52 52 100 100 -206 -206 188 188 -100 -100 202

5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5%

0.263% 0.263% 0.263% 0.263% 0.263% 0.263% 0.263% 0.263% 0.263% 0.263% 0.263% 0.263% 0.263% 0.263% 0.263% 0.263% 0.263% 0.263% 0.263%

5.263% 5.263% 5.263% 5.263% 5.263% 5.263% 5.263% 5.263% 5.263% 5.263% 5.263% 5.263% 5.263% 5.263% 5.263% 5.263% 5.263% 5.263% 5.263%Total Peluang

observasi

active

P(X=observasi)

P(X=0, X=observasi) =5%/19

    Tabel  sebaran  peluang  terambilnya  observasi  pada  data  ORIGINAL  di  atas  dapat disederhanakan sebagai berikut:  

observasi 1 2 3 4 5 6 7 8 9 10

active 196 -12 280 212 52 100 -206 188 -100 202

Peluang 10.52632% 10.52632% 10.52632% 10.52632% 10.52632% 10.52632% 10.52632% 10.52632% 10.52632% 5.26316%

  

 Dari  tabel di atas dapat kita  lihat bahwa peluang P(ACTIVE=active)  tidak  seragam, di mana  P(ACTIVE=202)  =  5.26316%  lebih  kecil  dari  P(ACTIVE=lainnya)  =  10.52632%. Dengan  kata  lain unsur‐unsur pada data OBSERVASI  tidak mempunyai peluang  yang sama untuk terambil sebagai sampel bootstrap.  Kondisi ini menyebabkan nilai harapan 

dari  sampel  bootstrap  berbias  dari  rataan  ORIGINAL,  E( *X )  ≠  X ,  dan  otomatis 

membuat E( *X ) ≠  X . 

Page 18: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 17

Dengan tabel sebaran peluang seperti di atas kita bisa hitung nilai harapan dari sampel 

bootstrap:  E( *X )  =  )(10

1i

ii activepactive

=  196*10.53%  +  (‐12)*10.53%  + 

280*10.53% + ... + 202*5.26% = 85.4. Hasilnya sama dengan output simulasi 1000.000 replikasi rataan bootstrap yang berbias dari data original.  REVISI PROGRAM SAS NANCY BARKER 

Supaya  setiap  observasi  pada  data  ORIGINAL  berpeluang  terambil  yang  sama sebagai sampel, maka pernyataan resampling yang dibuat Nancy Barker harus direvisi. Cara merevisinya sangat sederhana, yakni hanya dengan mengubah pernyataan 

x = round(ranuni(0) * nobs);

menjadi 

x = round(ranuni(0) * nobs + 0.5);

 

Berikut revisi program resampling secara lengkap: 

         

 

Setelah  menggunakan  program  resampling  yang  baru  (revisi)  tersebut  dan melanjutkannya  ke  tahapan mencari dugaan  standar error, maka didapatkan output PROC MEANS sebagaimana ditampilkan berikut: 

     

   

Terlihat  nilai  rataan  dari  replikasi‐replikasi  rataan  (rataan  bootstrap)  (91.7)  sangat dekat  dengan  rataan  data  original  (91.2).  Artinya  kita  telah  berhasil menghilangkan 

data BOOTSAMP; do sampnum = 1 to 1000; do i = 1 to nobs; x = round(ranuni(0) * nobs + 0.5); set original nobs = nobs point = x; output; end; end; stop; run;

The MEANS Procedure

Analysis Variable : MEAN_BOOTSTRAP

Mean Std Dev ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ 91.7020000 46.6932494 ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ

Page 19: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 18

masalah  bias  rataan  bootstrap,  dan  juga  berarti  telah  berhasil  merevisi  kesalahan program SAS buatan Nancy Barker. 

Revisi  ini sangat penting, sebab kesalahan kecil atas program resampling mempunyai dampak  yang besar dan  sistemik: membuat proses‐proses  selanjutnya menghasilkan output yang salah.  

MEMBUAT TABEL BOOTSTRAP 

Sejauh  ini  kita  telah  membuat  replikasi  bootstrap  berupa  rataan‐rataan  beserta standar  errornya,  dan  semuanya  telah  dikumpulkan  dalam  sebuah  gugus  data bernama MEAN_BOOTSTRAP.  

Dalam rangka rangka melakukan inferensi terhadap rataan kita lanjutkan pekerjaan ini 

dengan membuat tabel boostrap yang berisi nilai‐nilai   )(*ˆ

ˆ)(*ˆ)(*

bes

bbZ

. Untuk  itu 

kita buat program berikut ini: 

 

 

 

 

 

 

 

 

 

Jika  gugus  data  TABEL_BOOTSTRAP  tersebut  dicetak,  maka  outputnya  bisa digambarkan sebagai berikut: 

data TABEL_BOOTSTRAP (keep=sampnum n mean_bootstrap mean_original se_bootstrap t_bootstrap); do i=1 to 1000; x=1; set MEAN_BOOTSTRAP point =i; set MEAN_ORIGINAL point=x; t_bootstrap=(mean_bootstrap-mean_original)/se_bootstrap; output; end; stop; ; run;

mean_ mean_ Obs sampnum n bootstrap se_bootstrap original t_bootstrap 1 1 10 124.2 47.9393 91.2 0.68837 2 2 10 88.0 49.9982 91.2 -0.06400 3 3 10 29.8 46.3517 91.2 -1.32465 .... .... .. ..... ....... .... ........ .... .... .. ..... ....... .... ........ .... .... .. ..... ....... .... ........ 1000 1000 10 129.2 34.2218 91.2 1.11040

Page 20: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 19

SELANG KEPERCAYAAN 90% DENGAN METODE SELANG T‐BOOTSTRAP 

Selanjutnya kita duga selang kepercayaan 90% untuk rataan melalui metode selang t‐bootstrap.  Pertama  kita  urutkan  data  TABEL_BOOTSTRAP  berdasarkan  kolom t_bootstrap  dari  nilai  terkecil  sampai  yang  terbesar  dengan  membuat  pernyataan berikut: 

 

Kemudian kita cari berapa nilai t‐bootstrap pada posisi urutan ke‐50  %)5(t dan posisi 

urutan ke‐950  %)95(t . Untuk tujuan tersebut kita buat pernyataan berikut:

 

 

 

 

 

 

 

Output dari PROC PRINT atas data T_BOOTSTRAP di atas di ditampilkan di bawah ini. 

 

 

 

 

Lalu  kita  duga  selang  kepercayaan  rataan  dengan  mengikuti  formula  selang 

kepercayaan t‐bootstrap:  estest ˆ.ˆˆ,ˆˆˆ )()1( . 

x 91.2 

SK 90%  α=5%  

%)5()( ˆˆ tt = ‐1.58 

%)95()1( ˆˆ tt = 2.25 

es = 46.69 

Dengan demikian, selang kepercayaan 90% untuk rataan adalah: 

( 91.2 − 2.25 ×46.69 , 91.2 +1.58 × 46.69 ) = (‐13.85 , 164.97 ) 

proc sort data=TABEL_BOOTSTRAP out=TABEL_BOOTSTRAP; BY t_bootstrap; run;

data T_BOOTSTRAP; set TABEL_BOOTSTRAP end=eof; retain t_5 t_95; if _n_= 50 then t_5=t_bootstrap; if _n_=950 then t_95=t_bootstrap; if eof then output; keep t_5 t_95; proc print DATA=T_BOOTSTRAP NOOBS; run;

t_5 t_95 -1.57935 2.25493

Page 21: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 20

SELANG KEPERCAYAAN 90% BOOTSTRAP DENGAN METODE PERSENTIL 

Sebagai  alternatif,  sebagaimana  diterangkan  oleh  Efron  kita  bisa  menggunakan pendekatan persentil untuk mengukur selang kepercayaan.  

Untuk  tujuan  tersebut,  pertama  kita  urutkan  terlebih  dahulu  data  gugus  data TABEL_BOOTSTRAP berdasakan kolom mean_bootstrap, dengan membuat pernyataan berikut: 

    

 Setelah data diurutkan, kemudian kita buat  pernyataan berikut: 

         

  Ouput dari pernyataan di atas adalah: 

    

 

Jadi,  dugaan  selang  kepercayaan  untuk  rata‐rata  dengan metode  persentil  adalah: antara 14.8 sampai 164.2.  

Jika  dibandingkan  dengan  hasil  dugaan  selang  t‐bootstrap,  selang  persentil  di  atas lebih  rapat.  Dengan  demikian,  metode  selang  persentil  memberikan  nilai  dugaan akurasi yang lebih optimistis dibandingkan metode selang t‐bootstrap. 

 

    

proc sort data=TABEL_BOOTSTRAP out=TABEL_BOOTSTRAP; by mean_bootstrap; run;

data PERC_BOOTSTRAP; set TABEL_BOOTSTRAP end=eof; retain Percentil5 Percentil95; if _n_= 50 then Percentil5=mean_bootstrap; if _n_=950 then Percentil95=mean_bootstrap; if eof then output; keep Percentil5 Percentil95; proc print data=PERC_BOOTSTRAP NOOBS; run;

Percentil5 Percentil95 14.8 164.2

Page 22: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 21

SIMULASI BOOTSTRAP UNTUK DUA DATA SAMPEL: 

CONTOH KASUS: MEMBANDINGKAN NILAI RATAAN PADA KELOMPOK ACTIVE DAN KELOMPOK PLACEBO 

  Sebagaimana  dijelaskan pada bagian  pendahuluan,  dalam makalahnya Nancy 

Barker juga menjelaskan bagaimana menerapkan teknik Bootstrap untuk menganalisis perbadingan  rataan  dua  kelompok:  kelompok  yang  diberikan  pengobatan  aktif (AKTIVE) dan kelompok yang diberikan pengobatan placebo (PLACEBO). 

Data sampel untuk masing‐masing kelompok adalah sebagai berikut: 

KELOMPOK ACTIVE  KELOMPOK PLACEBO 

Obs  CHANGE  Obs  CHANGE 

1  196  1  120 

2  ‐12  2  ‐80 

3  280  3  ‐63 

4  212  4  200 

5  52  5  23 

6  100  6  54 

7  ‐206  7  ‐198 

8  188  8  165 

9  ‐100  9  ‐8 

10  202  10  19 

 Untuk memulai simulasi, kita buat pernyataan tahapan data sebagai berikut: 

        

Gugus data original di atas terdiri dari 20 baris dan 2 kolom; kolom pertama bernama CHANGE (respons perubahan setelah pemberian obat) dan kelom kedua bernama TRT (Treatmen: 1=ACTIVE, 2=PLACEBO).  

 

Jika gugus data original ini dicetak, hasil sebagaimana ditampilkan di bawah ini. 

 

 

 

 

data original; input CHANGE TRT@@; cards; 196 1 -12 1 280 1 212 1 52 1 100 1 -206 1 188 1 -100 1 202 1 120 2 -80 2 -63 2 200 2 23 2 54 2 -198 2 165 2 -8 2 19 2 ; run;

Page 23: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 22

 

 

        

 

Sekarang mari kita cermati dan telusuri maksud dari setiap baris pernyataan di dalam macro SAS yang dibuat oleh Nancy Barker di bawah ini. 

                           

%macro bootse(b); data orig1 (where=(trt=1)) orig2 (where=(trt=2)); set original; run; data boot; %do t=1 %to 2; do sample=1 to &b; do i = 1 to nobs; pt = round(ranuni(&t)*nobs+0.5) ; set orig&t nobs = nobs point=pt; output; end; end; %end; stop; run; proc means data=boot noprint nway; class sample trt; var change; output out=x mean=mean; run; data diffmean; merge x (where=(trt=1) rename=(mean=mean1)) x (where=(trt=2) rename=(mean=mean2)); by sample; diffmean=mean1-mean2; run; proc means data=diffmean std noprint; var diffmean; output out=bootse std=bootse; run; %mend;

Pernyataan +0.5 ini ditambahkan sebagai revisi dari pernyataan resampling yang dibuat Barker

Obs CHANGE TRT 1 196 1 2 -12 1 3 280 1 4 212 1 5 52 1 6 100 1 7 -206 1 8 188 1 9 -100 1 10 202 1 11 120 2 12 -80 2 13 -63 2 14 200 2 15 23 2 16 54 2 17 -198 2 18 165 2 19 -8 2 20 19 2

Page 24: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 23

Berikut ini penjelasan dari setiap pernyataan macro SAS di atas: 

NO  PERNYATAAN  MAKSUD DAN KEGUNAAN 

1  %macro bootse(b); Memulai progam macro yang diberi nama “bootse” dengan argumen (b) 

data orig1 (where=(trt=1)) orig2 (where=(trt=2)); set original; run;

Membuat dua buah gugus data bernama “orig1” dan “orig2”.  

Gugus data orig1 berisi seluruh observasi pada data original yang memenuhi trt=1, yaitu data untuk kelompok ACTIVE. 

Gugus data orig2 berisi seluruh observasi pada data original yang memenuhi trt=2, yaitu data untuk kelompok PLACEBO. 

Bila dicetak, isi gugus data orig1 dan orig2 adalah sebagai berikut: 

Gugus Data Orig1 Gugus Data Orig1 Obs CHANGE TRT 1 196 1 2 -12 1 3 280 1 4 212 1 5 52 1 6 100 1 7 -206 1 8 188 1 9 -100 1 10 202 1

Obs CHANGE TRT 1 120 2 2 -80 2 3 -63 2 4 200 2 5 23 2 6 54 2 7 -198 2 8 165 2 9 -8 2 10 19 2

 

 

1) data boot; 2) %do t=1 %to 2; 3) do sample=1 to &b; 4) do i = 1 to nobs; 5) pt =

round(ranuni(&t) *nobs+0.5);

6) set orig&t nobs = nobs point=pt;

7) output; 8) end; 9) end; 10) %end; 11) stop; 12) run;

1) Membuat sebuah gugus data bernama “boot”.  

2) Membuat DO‐iterasi sebanyak 2 ulangan, dimulai dari t=1 sampai t=2 

3) Membuat DO‐iterasi dengan ulangan sebanyak b, dimulai dari sample=1 sampai sampel=b 

4) Membuat DO‐iterasi dengan ulangan sebanyak nobs, dimulai dari i=1 sampai i=nobs 

5) Membangkitkan sebuah bilangan acak dari sebaran seragam(0,1), lalu bilangan acak tersebut dikalikan dengan nobs (nilai dari peubah yang didefinisikan pada baris ke‐ 6) ). Selanjutnya hasil perkalian tersebut dibulatkan dan nilainya dimasukkan ke dalam suatu peubah yang bernama pt. 

Page 25: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 24

6) Menggunakan gugus data orig&t, dengan menambahkan OPTIONS nobs=nobs dan point=pt. 

Ketika iterasi DO t=1 maka yang digunakan adalah gugus data orig1, dan ketika DO t=2 yang digunakan adalah gugus data orig2. 

OPTION nobs=nobs: nobs disebelah kiri ”=” berarti jumlah observasi pada data orig&t, sedangkan nobs di sebelah kanan “=” adalah nama peubah yang didefinisikan. 

OPTIONS point = pt maksudnya adalah menunjuk baris ke‐pt pada data orig&t. 

7) Menyimpan baris data yang ditunjuk di dalam gugus data boot. 

8) Mengakhiri DO‐iterasi  do i = 1 to nobs; 

9) Mengakhiri DO‐iterasi  do sample=1 to &b; 

10) Mengakhiri DO‐iterasi  %do t=1 %to 2; 

11) Menghentikan kegiatan menunjuk baris pada data orig1 dan orig2 

12) Menjalankan prosedur tahapan data boot 

 

Bila dicetak, isi gugus data boot bisa digambarkan seperti yang ditampilkan pada kolom sebelah kiri. 

 

 

 

 

 

proc means data=boot noprint nway; class sample trt; var change; output out=x mean=mean; run;

Pernyataan PROC MEANS yang dimaksudkan untuk memperoleh output rataan‐rataan dari b replikasi sampel bootstrap atas data kelompok ACTIVE dan PLACEBO, hasilnya tidak dicetak, tapi dimasukkan ke dalam sebuah gugus data baru bernama ”X”. Jika dicetak, isi gugus data X bisa digambarkan sebagai berikut (misal:b=10000): 

 

sample i CHANGE TRT 1 1 -12 1 1 2 202 1 1 3 212 1 1 4 280 1 1 5 202 1 1 6 202 1 1 7 100 1 1 8 100 1 1 9 196 1 1 10 196 1 2 1 -100 1 2 2 100 1 2 3 -100 1 ... ... .... ... ... ... .... ... 10000 1 280 1 10000 2 212 1 10000 3 280 1 10000 4 52 1 10000 5 280 1 10000 6 202 1 10000 7 188 1 10000 8 -100 1 10000 9 -100 1 10000 10 196 1 1 1 23 2 1 2 23 2 1 3 23 2 1 4 165 2 1 5 23 2 1 6 120 2 1 7 19 2 1 8 19 2 1 9 -63 2 1 10 -8 2 2 1 23 2 2 2 165 2 2 3 200 2 ... ... ... ... ... ... ... ... 10000 1 23 2 10000 2 -80 2 10000 3 -198 2 10000 4 54 2 10000 5 23 2 10000 6 -198 2 10000 7 -63 2 10000 8 120 2 10000 9 200 2 10000 10 -80 2

Page 26: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 25

 

 

 

   

data diffmean; merge x (where=(trt=1) rename=(mean=mean1)) x (where=(trt=2) rename=(mean=mean2)); by sample; diffmean=mean1-mean2; run;

Membuat suatu gugus data bernama ”diffmean” yang merupakan modifikasi dari gugus data ”X”, sedemikian rupa sehingga rataan‐rataan  bootstrap pada kelompok ACTIVE ditampilkan di masing‐masing kolom yang terpisah, yaitu kolom mean1 untuk trt=1 dan kolom mean2 untuk trt=2. Selanjutnya dihitung beda rataan antara mean1 dan mean2 (mean1‐mean2) dan nilai‐nilai beda rataan tersebut dimasukkan ke kolom yang baru bernama diffmean. Jika gugus data diffmean dicetak, hasilnya dapat digambarkan seperti di bawah ini. 

 

 

 

proc means data=diffmean std noprint; var diffmean; output out=bootse std=bootse; run;

Pernyataan PROC MEANS yang dimaksudkan untuk memperoleh standar deviasi dari beda rataan, yang merupakan dugaan untuk standar error rataan. Hasilnya tidak diprint tapi dimasukkan ke suatu gugus data baru bernama ”bootse”. Jika gugus data bootse dicetak hasil bisa digambarkan seperti di bawah ini. 

 

 

 

7  %mend; Mengakhiri macro bootse. 

 Jadi, kegunaan utama dari pernyataan‐pernyataan dalam macro SAS di atas    (macro bootse(b)) ialah membuat replikasi‐replikasi bootstrap dan standar error dugaan untuk beda  rataan  ACTIVE  dan  PLACEBO.  Untuk  menjalankan  macro  bootse(b)  kita  buat pernyataan seperti berikut: %bootse(10000); disini angka 10000 adalah permisalan nilai untuk b, yang menerangkan jumlah replikasi bootstrap yang hendak dibuat. 

sample TRT _TYPE_ _FREQ_ mean 1 1 3 10 167.8 1 2 3 10 34.4 .... .. .. .. ..... .... .. .. .. ..... 10000 1 3 10 149.0 10000 2 3 10 -19.9

sample TRT _TYPE_ _FREQ_ mean1 mean2 diffmean 1 2 3 10 167.8 34.4 133.4 ..... .. .. .. ..... .... ..... 10000 2 3 10 149.0 -19.9 168.9

Obs _TYPE_ _FREQ_ bootse 1 0 10000 58.8932

Page 27: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 26

Pekerjaan kita belum selesai. Macro bootse(b) di atas belum memenuhi tujuan utama kita: menduga selang kepercayaan beda rataan kelompok ACTIVE dan PLACEBO.  Sekarang mari  lanjutkan pekerjaan  kita untuk membuat  selang  kepercayaan dengan metode selang t‐bootstrap serta metode selang persentil.   SELANG  KEPERCAYAAN  90%  DENGAN METODE  SELANG  T‐BOOTSTRAP:  INFERENSI BEDA RATAAN DUA KELOMPOK  Kita ikuti program SAS yang dibuat oleh Nancy Barker berikut ini.     .  Pernyataan diatas dimaksudkan untuk membuat gugus data baru bernama ”bootorig”, yang merupakan modifikasi  atas  data  boot;  teknisnya: menyisipkan  data  original  di atas data boot. Jika dicetak, isi gugus data bootorig adalah sebagai berikut: 

                         

data bootorig; set original (in=a) boot; if a then sample=0; run;

Obs CHANGE TRT sample i 1 196 1 0 . 2 -12 1 0 . 3 280 1 0 . 4 212 1 0 . 5 52 1 0 . 6 100 1 0 . 7 -206 1 0 . 8 188 1 0 . 9 -100 1 0 . 10 202 1 0 . 11 120 2 0 . 12 -80 2 0 . 13 -63 2 0 . 14 200 2 0 . 15 23 2 0 . 16 54 2 0 . 17 -198 2 0 . 18 165 2 0 . 19 -8 2 0 . 20 19 2 0 . 21 -12 1 1 1 22 202 1 1 2 23 212 1 1 3 24 280 1 1 4 25 202 1 1 5 26 202 1 1 6 27 100 1 1 7 28 100 1 1 8 29 196 1 1 9 30 196 1 1 10 .... .... .. .. .. .... .... .. .. .. .... .... .. .. .. 200011 23 2 10000 1 200012 -80 2 10000 2 200013 -198 2 10000 3 200014 54 2 10000 4 200015 23 2 10000 5 200016 -198 2 10000 6 200017 -63 2 10000 7 200018 120 2 10000 8 200019 200 2 10000 9 200020 -80 2 10000 10

Page 28: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 27

Selanjutnya,  kita  hitung  rataan  serta  ragam  replikasi  dari  setiap  sampel  bootstrap, dengan memasukkan pernyataan berikut:

Jika dicetak, isi gugus data X dapat digambarkan sebagai berikut:

Perhatikan, baris ke‐1 dan ke‐2 pada gugus data X adalah informasi mengenai rataan dari data original yang akan kita manfaatkan untuk membuat tabel bootstrap. Dan di bawah ini adalah pernyataan program untuk membuat tabel bootstrap.

Jika dicetak, isi gugus data diff_z digambarkan sebagai berikut:

proc means data=bootorig noprint nway; class sample trt; var change; output out=x mean=mean var=var n=n; run;

Obs sample TRT _TYPE_ _FREQ_ mean var n 1 0 1 3 10 91.2 24446.40 10 2 0 2 3 10 23.2 14409.51 10 3 1 1 3 10 167.8 6795.96 10 4 1 2 3 10 34.4 4073.60 10 5 2 1 3 10 113.4 33229.38 10 6 2 2 3 10 70.3 16821.57 10 ..... ..... .. .. .. ..... ........ .. ..... ..... .. .. .. ..... ........ .. 20001 10000 1 3 10 149.0 21711.33 10 20002 10000 2 3 10 -19.9 16621.21 10

data diff_z; merge x (where=(trt=1) rename=(mean=mean1 var=var1 n=n1)) x (where=(trt=2) rename=(mean=mean2 var=var2 n=n2)); by sample; diffmean=mean1-mean2; /* calculate the difference between the means */ diffse = sqrt((var1+var2)/(n1+n2)); /* estimate SE of difference */ retain origdiff; /* add value of original estimate */ if sample=0 then origdiff=diffmean; /* of difference to each record */ diff_z = (diffmean - origdiff)/diffse; run;

Page 29: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 28

Kolom paling kanan pada gugus data diff_z di atas adalah tabel bootstrap yang sejak awal ingin kita bangun.  

Sekarang,  dari  tabel  bootstrap  tersebut  (kolom  diff_z)  kita  cari  nilai  untuk %)5()( ˆˆ tt dan  %)95()1( ˆˆ tt dalam rangka membuat selang kepercayaan 90% atas nilai 

beda  rataan  antara  kelompok  ACTIVE  dan  PLACEBO.  Untuk  tujuan  tersebut,  kita urutkan terlebih dahulu nilai‐nilai pada kolom diff_z .   BERHENTI SEJENAK UNTUK MEREVISI KEMBALI PROGRAM SAS NANCY BARKER 

Namun  demikian,  sebelum  kita  mengurutkan  nilai‐nilai  t‐bootstrap,  coba perhatikan data pada tabel bootstrap. Lihat baris pertama: itu adalah statistik‐statistik dari  sampel  original,  bukan  dari  sampel  bootstrap.  Kita  tidak  memerlukan  baris pertama tersebut, bahkan harus dibuang.   Untuk membuang baris pertama kita buat pernyataan berikut: 

 

    

Pernyataan membuang baris di atas dapat kita anggap sebagai revisi (tambahan) untuk pernyataan program SAS yang dibuat Nancy Barker.  

MELANJUTKAN PEKERJAAN: MENENTUKAN SELANG KEPERCAYAAN 90% DENGAN METODE SELANG T‐BOOTSTRAP 

 Sekarang, kita urutkan nilai‐nilai t‐bootstrap yang sudah kita hitung, dari yang terkecil sampai terbesar, dengan memasukkan pernyataan berikut: 

proc sort data=diff_z; by diff_z; run;

d o i r s _ _ f d i d a T F m m f i g i m Y R e v e v m f d f O p T P E a a a a e f i f b l R E Q n r n n r n a s f _ s e T _ _ 1 1 1 2 2 2 n e f z 1 0 2 3 10 91.2 24446.40 10 23.2 14409.51 10 68.0 44.0772 68 0.00000 2 1 2 3 10 167.8 6795.96 10 34.4 4073.60 10 133.4 23.3126 68 2.80535 3 2 2 3 10 113.4 33229.38 10 70.3 16821.57 10 43.1 50.0255 68 -0.49775 4 3 2 3 10 38.4 26542.04 10 26.5 12280.28 10 11.9 44.0581 68 -1.27332 ..... ..... .. .. .. ..... ........ .. .... ........ .. ..... ....... .. ........ 10000 9999 2 3 10 121.8 42698.18 10 60.2 16317.51 10 61.6 54.3211 68 -0.11782 10001 10000 2 3 10 149.0 21711.33 10 -19.9 16621.21 10 168.9 43.7793 68 2.30474

data diff_z; set diff_z; where sample>0; run;

Page 30: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 29

Setelah diurutkan, isi gugus data diff_z dapat digambarkan sebagai berikut:

  Selanjutnya kita buat pernyataan berikut untuk menentukan nilai t‐bootstrap(5%) dan t‐bootstrap(95%).        Jika dicetak, isi gugus data t_vals dapat digambarkan sebagai berikut:            Dari output di atas diketahui bahwa nilai  t‐bootstrap(5%)  adalah  t_hi=‐2.29662, dan nilai t‐bootstrap(95%) adalah t_lo=2.59207.  Langkah  terakhir,  kita  buat  pernyataan  berikut  untuk  menghitung  batas  selang kepercayaan.       

data t_vals; set diff_z end=eof; retain t_lo t_hi; if _n_=9500 then t_lo=diff_z; if _n_= 500 then t_hi=diff_z; if eof then output; run;

data ci_t; merge t_vals (keep=origdiff) bootse (keep=bootse) t_vals (keep=t_:); conf_lo = origdiff - (t_lo * bootse); conf_hi = origdiff - (t_hi * bootse); keep origdiff bootse t_lo t_hi conf_lo conf_hi; run; proc print data=ci_t; run;

d o i r s _ _ f d i d a T F m m f i g i m Y R e v e v m f d f t t O p T P E a a a a e f i f _ _ b l R E Q n r n n r n a s f _ l h s e T _ _ 1 1 1 2 2 2 n e f z o i 1 4398 2 3 10 228 3164.44 10 -52 5034 10 280 20.2465 68 10.4709 2.59207 -2.29662

Obs sample TRT _TYPE_ _FREQ_ mean1 var1 n1 mean2 var2 n2 diffmean diffse origdiff diff_z 1 745 2 3 10 -45.2 15921.07 10 100.6 7421.38 10 -145.8 34.1632 68 -6.25820 2 7853 2 3 10 -38.2 17119.51 10 116.3 8332.46 10 -154.5 35.6735 68 -6.23712 3 1932 2 3 10 -77.0 26326.44 10 82.3 7599.12 10 -159.3 41.1859 68 -5.51888 4 9517 2 3 10 -30.0 20291.56 10 98.9 5430.77 10 -128.9 35.8625 68 -5.49042 .. .... .. .. .. ..... ........ .. ..... ....... .. ...... ....... .. ........ .. .... .. .. .. ..... ........ .. ..... ....... .. ...... ....... .. ........ 9998 1119 2 3 10 193.0 6426.89 10 -81.3 5695.57 10 274.3 24.6196 68 8.37950 9999 3491 2 3 10 227.0 1388.67 10 -50.8 8196.62 10 277.8 21.8921 68 9.58340 10000 4398 2 3 10 228.0 3164.44 10 -52.0 5034.00 10 280.0 20.2465 68 10.47090

Page 31: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 30

Setelah dicetak, isi gugus data ci_t adalah sebagai berikut:   

 

 

Dengan  demikian,  berdasarkan  metode  selang  t‐bootstrap,  beda  rataan  antara kelompok AKTIVE dan PLACEBO pada selang kepercayaan 90% adalah antara ‐84.6550 sampai 203.255.   SELANG KEPERCAYAAN 90% DENGAN METODE SELANG PERSENTIL: INFERENSI BEDA RATAAN DUA KELOMPOK 

 

Sekarang  kita  tentukan  selang  kepercayaan  90%  melalui  metode  selang  persentil. Untuk  itu  pertama  kita  urutkan  nilai‐nilai  rataan  replikasi  bootstrap  dengan memasukkan pernyataan berikut: 

   

Setelah diurutkan, isi dari gugus data diffmean dapat digambarkan sebagai berikut.

Kemudian kita buat pernyataan berikut untuk menghitung batas selang kepercayaan.

     

Obs origdiff bootse t_lo t_hi conf_lo conf_hi 1 68 58.8932 2.59207 -2.29662 -84.6550 203.255

Obs sample TRT _TYPE_ _FREQ_ mean1 mean2 diffmean 1 1932 2 3 10 -77.0 82.3 -159.3 2 7853 2 3 10 -38.2 116.3 -154.5 3 745 2 3 10 -45.2 100.6 -145.8 4 9131 2 3 10 -47.8 85.1 -132.9 .... .... .. .. .. ..... ..... ...... .... .... .. .. .. ..... ..... ...... 9999 4398 2 3 10 228.0 -52 280.0 10000 2536 2 3 10 178.2 -104 282.2

data ci_perc; set diffmean end=eof; retain conf_lo conf_hi; if _n_= 500 then conf_lo=diffmean; if _n_=9500 then conf_hi=diffmean; if eof then output; keep conf_lo conf_hi; run; proc print data=ci_perc; run;

proc sort data=diffmean; by diffmean; run;

Page 32: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 31

Setelah dicetak, isi gugus data ci_t adalah sebagai berikut:

Dengan demikian, berdasarkan metode selang persentil, beda rataan antara kelompok AKTIVE dan PLACEBO pada selang kepercayaan 90% adalah antara ‐49.9 sampai 181.3. 

Obs conf_lo conf_hi 1 -49.9 181.3

Page 33: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 32

RINGKASAN HASIL 

 

Dari  hasil  simulasi  bootstrap  dengan  jumlah  replikasi  sebanyak  1000,  selang kepercayaan untuk rataan pada kelompok ACTIVE adalah sebagai berikut: 

o Metode t‐bootstrap: (‐13.85 , 164.97) 

o Metode persentil: (14.8 , 164.2) 

Dari  hasil  simulasi  bootstrap  dengan  jumlah  replikasi  sebanyak  10.000,  selang kepercayaan  untuk  beda  rataan  antara  kelompok  ACTIVE  dan  PLACEBO  adalah sebagai berikut: 

o Metode t‐bootstrap: (‐84.66 , 203.26) 

o Metode persentil: (‐49.9 , 181.3) 

Terlihat bahwa  selang kepercayaan  rataan berdasarkan metode persentil  lebih  rapat dibandingkan selang dengan metode t‐bootstrap. Dengan demikian, dapat disimpulkan bahwa  metode  persentil  memberikan  dugaan  akurasi  yang  lebih  optimis  jika dibandingkan dengan  metode t‐bootstrap. 

Saran: Program SAS Nancy Barker perlu direvisi 

Program SAS yang dibuat oleh Nancy Barker sangat membantu kita memahami proses dalam metode bootstrap dengan baik. Namun demikian,  tampaknya program tersebut masih mengandung  kesalahan.  Kesalahan  yang  pertama  yaitu  pada  bagian proses resampling, dan kesalahan kedua pada bagian pembuatan tabel bootstrap.  

Di antara dua kesalahan program tersebut, yang paling krusial adalah kesalahan program  untuk  kegiatan  resampling. Metode  bootstrap  sangat  bergantung  kepada proses sampling yang benar. Karena itu kalau resamplingnya sudah salah, maka semua hasil dari metode  ini  juga akan  salah. Untuk menghindari kesalahpahaman,  sebelum digunakan, disarankan untuk memperbaiki program tersebut terlebih dahulu.  

Page 34: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 33

Lampiran 1: Pernyataan Program SAS  simulasi metode bootstrap untuk mengiferensi rataan dari satu data sampel  options nodate; data ORIGINAL; input active@@; cards; 196 -12 280 212 52 100 -206 188 -100 202 ; run; proc means data=ORIGINAL noprint nway; var active; output out=MEAN_ORIGINAL mean=mean_original; run; data BOOTSAMP; do sampnum = 1 to 1000; do i = 1 to nobs; x = round(ranuni(0) * nobs +0.5); set original nobs = nobs point = x; output; end; end; stop; proc means data=BOOTSAMP noprint nway noprint; var active; class sampnum; output out=MEAN_BOOTSTRAP n=n mean=mean_bootstrap stderr=se_bootstrap; title 'RATAAN DAN STANDAR ERROR DUGAAN BOOTSTRAP'; proc means data=MEAN_BOOTSTRAP mean stddev nway ; var mean_bootstrap; data TABEL_BOOTSTRAP (keep=sampnum n mean_bootstrap mean_original se_bootstrap t_bootstrap); do i=1 to 1000; x=1; set MEAN_BOOTSTRAP point =i; set MEAN_ORIGINAL point=x; t_bootstrap=(mean_bootstrap-mean_original)/se_bootstrap; output; end; stop; ; proc sort data=TABEL_BOOTSTRAP out=TABEL_BOOTSTRAP; BY t_bootstrap; data T_BOOTSTRAP; set TABEL_BOOTSTRAP end=eof; retain t_5 t_95; if _n_= 50 then t_5=t_bootstrap; if _n_=950 then t_95=t_bootstrap; if eof then output; keep t_5 t_95; title 'NILAI T-BOOTSTRAP'; proc print DATA=T_BOOTSTRAP NOOBS; proc sort data=TABEL_BOOTSTRAP out=TABEL_BOOTSTRAP; by mean_bootstrap; data PERC_BOOTSTRAP;

Page 35: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 34

Lampiran 1: Pernyataan Program SAS  simulasi metode bootstrap untuk mengiferensi rataan dari satu data sampel (lanjutan)  set TABEL_BOOTSTRAP end=eof; retain Percentil5 Percentil95; if _n_= 50 then Percentil5=mean_bootstrap; if _n_=950 then Percentil95=mean_bootstrap; if eof then output; keep Percentil5 Percentil95; title 'PERSENTIL 5% DAN 95% DARI DATA RATAAN BOOTSTRAP'; proc print data=PERC_BOOTSTRAP NOOBS; run;

                                   

Page 36: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 35

Lampiran  2:  Pernyataan  Program  SAS  simulasi  metode  bootstrap  untuk membandingkan rataan dari dua data sampel   data original; input CHANGE TRT@@; cards; 196 1 -12 1 280 1 212 1 52 1 100 1 -206 1 188 1 -100 1 202 1 120 2 -80 2 -63 2 200 2 23 2 54 2 -198 2 165 2 -8 2 19 2 ; run; %macro bootse(b); data orig1 (where=(trt=1)) orig2 (where=(trt=2)); set original; run; data boot; %do t=1 %to 2; do sample=1 to &b; do i = 1 to nobs; pt = round(ranuni(&t)*nobs+0.5) ; set orig&t nobs = nobs point=pt; output; end; end; %end; stop; run; proc means data=boot noprint nway; class sample trt; var change; output out=x mean=mean; run; data diffmean; merge x (where=(trt=1) rename=(mean=mean1)) x (where=(trt=2) rename=(mean=mean2)); by sample; diffmean=mean1-mean2; run; proc means data=diffmean std noprint; var diffmean; output out=bootse std=bootse; run; %mend bootse; %bootse(10000); data bootorig; /* set original and sample data together so can */ set original (in=a) /* calculate mean values in one procedure */ boot; if a then sample=0; run; proc means data=bootorig noprint

Page 37: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 36

nway; class sample trt; var change; output out=x /* mean and standard error for each sample */ mean=mean var=var n=n; run; data diff_z; merge x (where=(trt=1) rename=(mean=mean1 var=var1 n=n1)) x (where=(trt=2) rename=(mean=mean2 var=var2 n=n2)); by sample; diffmean=mean1-mean2; /* calculate the difference between the means */ diffse = sqrt((var1+var2)/(n1+n2)); /* estimate SE of difference */ retain origdiff; /* add value of original estimate */ if sample=0 then origdiff=diffmean; /* of difference to each record */ diff_z = (diffmean - origdiff)/diffse; run; data diff_z; set diff_z; where sample>0; run; proc sort data=diff_z; /* order diff_z from low to high */ by diff_z; run; data t_vals; /* data set containing values for t(0.975) and t(0.025) */ set diff_z end=eof; retain t_lo t_hi; if _n_=9500 then t_lo=diff_z; if _n_= 500 then t_hi=diff_z; if eof then output; run; data ci_t; merge t_vals (keep=origdiff) bootse (keep=bootse) t_vals (keep=t_:); conf_lo = origdiff - (t_lo * bootse); conf_hi = origdiff - (t_hi * bootse); keep origdiff bootse t_lo t_hi conf_lo conf_hi; run; proc print data=ci_t; run; proc sort data=diffmean; /* sort estimates for difference from low to high */ by diffmean; run; data ci_perc; set diffmean end=eof; /* pull out 250th and 9750th values as confidence limits */ retain conf_lo conf_hi;

Page 38: Tugas Kelompok Komstat Jan2011- Simulasi Bootstrap-Deni Irvani

●●●●●●●●●●●●●●●●●●●●●●●●●● Deni Irvani (G152100111)

TUGAS KELOMPOK KOMPUTASI STATISTIKA – Simulasi Bootstrap 37

if _n_= 500 then conf_lo=diffmean; if _n_=9500 then conf_hi=diffmean; if eof then output; keep conf_lo conf_hi; run; proc print data=ci_perc; run;