Top Banner
5 Komputasi Statistika Bootstra p dan Jacknife Disusun oleh: Fahrul Rozi Perdana 1309100016 Dimas Agung Dermawan 1309100080 Muinah Khusnul Khotimah 1309100091
17

Bootstrap Dan Jacknife2

Dec 26, 2015

Download

Documents

Farisca Susiani

It's all about statistics
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: Bootstrap Dan Jacknife2

5

Komputasi Statistika

Bootstrap

dan JacknifeDisusun oleh:

Fahrul Rozi Perdana 1309100016

Dimas Agung Dermawan 1309100080

Muinah Khusnul Khotimah 1309100091

Page 2: Bootstrap Dan Jacknife2

BOOTSTRAP DAN JACKNIFE

5. Bootstrap dan Jacknife

5.1 Konsep Dasar Bootstrap dan Jacknife

Bootstrap dan jackknife adalah teknik nonparametrik dan resampling yang bertujuan

untuk menaksir standart eror dan confidence interval parameter populasi, seperti : mean,

median, proporsi, koefisien korelasi dan regresi, dengan tidak selalu memperhatikan

asumsi distribusi.

Berikut ini adalah tahapan untuk melakukan proses resampling bootstrap:

1.) Misal dilakukan proses penyampelan dari data, eksperimen atau simulasi

berukuran N

2.) Resample dengan pengembalian, didapat-kan Resampel ke i (i = 1, 2, . . . , REP),

REP biasanya 1000 atau lebih, makin banyak makin baik.

3.) Perhitungan penaksir setiap hasil resample didapatkan θ̂b , 1 , θ̂b , 2 , . . . , θ̂b , REP ,

bentuk umumnya θ̂b , i .

4.) Perhitungan penaksir bootstrap, θ̂bootstrap=θ̂b=

1REP

∑i=1

REP

θ̂b ,i

θ̂b , i atau θ̂ j ,i suatu penaksir parameter, pada penerapannya dapat berupa : mean, varian,

standart deviasi, korelasi, dan koefisien regresi.

Berikut ini adalah tahapan untuk melakukan proses resampling jacknife:

1.) Misal dilakukan proses penyampelan dari data, eksperimen atau simulasi

berukuran N

2.) Resample dengan mengeluarkan elemen sampel ke i, i = 1, 2, ... , N. Didapatkan

Resample ke i (i = 1, 2, . . . , N).

3.) Perhitungan penaksir setiap hasil resample didapatkan : θ̂ j ,1 , θ̂ j ,2 , . . . , θ̂ j , n ;

bentuk umumnya θ̂ j ,i .

4.) Perhitungan penaksir jackknife, θ̂ jackknife = θ̂ j=

1n∑i=1

n

θ̂ j , i

θ̂b , i atau θ̂ j ,i suatu penaksir parameter, pada penerapannya dapat berupa : mean, varian,

standart deviasi, korelasi, dan koefisien regresi.

2FAHRUL ROZI PERDANA 1309100016DIMAS AGUNG DERMAWAN 1309100080MUINAH KHUSNUL KHOTIMAH 1309100091

Page 3: Bootstrap Dan Jacknife2

BOOTSTRAP DAN JACKNIFE

5.2 Function with R

Dari konsep dasar bootstrap dan jacknife yang telah dibahas pada subbab diatas,

berikut adalah function di R yang digunakan untuk menaksir paramaeter bootstrap.

Gambar 5.1 R function untuk bootstrap

Dan berikut ini adalah function di R untuk menaksir parameter jacknife.

Gambar 5.2 R function untuk jacknife

5.3 Algoritma

Pada subbab ini akan dijelaskan algoritma dari function yang telah dibahas pada

subbab sebelumnya.

a. Algoritma Bootstrap

Algoritma dari proses resampling bootstrap secara umum sebagai berikut3

FAHRUL ROZI PERDANA 1309100016DIMAS AGUNG DERMAWAN 1309100080MUINAH KHUSNUL KHOTIMAH 1309100091

Page 4: Bootstrap Dan Jacknife2

BOOTSTRAP DAN JACKNIFE

1.) Mula-mula membuat matrik yang pertama dengan baris sebanyak m dan kolom

sebanyak n

2.) Membuat matrik baris dengan kolom sebanyak n

3.) Melakukan sampel dari data sebanyak m dan menempatkan pada baris ke-i pada

matrik yang pertama

4.) Mengulang langkah 3.) sebanyak n

5.) Menghitung mean dari masing-masing kolom pada matrik pertama dan

menempatkanya pada matrik baris

6.) Menghitung mean dari matrik baris

Dari algoritma secara umum diatas akan dijelaskan algoritma yang lebih rinci

sebagai berikut.

Tabel 5.1 Algoritma untuk bootstrap

Function Penjelasan

bootstrap=function(data,m,n) Membuat fungsi yang dinamai "bootstrap" dengan output data, m,

dan n

resam=matrix(nrow=m,ncol=n) Membuat matrik berukuran m baris dan n kolom yang dinamai

"resam"

rata=matrix(nrow=1,ncol=n) Membuat matrik berukran 1 baris dan n kolom yang dinamai "rata"

for (i in 1:n) Membuat pengulangan dari 1 sampai n

resam[ ,i]=sample(data,m) Mengisikan masing-masing kolom pada matrik "resam" dengan

sampel dari data sebanyak m

rata[ ,i]=mean(resam[ ,i]) Mengisikan kolom ke-i pada matrik "rata" dengan mean dari kolom

ke-i pada matrik "resam"

bootstrap=mean(rata) Mencari nilai mean dari matrik "rata" yang dinamai dengan

"bootstrap"

list(....) Menampilkan hasil

b. Algoritma Jacknife

Algoritma dari proses resampling jacknife secara umum sebagai berikut

1.) Mula-mula membuat matrik yang pertama dengan baris sebanyak n-1 dan kolom

sebanyak n

2.) Membuat matrik baris dengan kolom sebanyak n

3.) Membuat urutan dari data

4FAHRUL ROZI PERDANA 1309100016DIMAS AGUNG DERMAWAN 1309100080MUINAH KHUSNUL KHOTIMAH 1309100091

Page 5: Bootstrap Dan Jacknife2

BOOTSTRAP DAN JACKNIFE

4.) Mengisikan kolom ke-i pada matrik yang pertama dengan data yang telah urut

dengan tanpa menyertakan urutan ke-i

5.) Mengulang langkah 4.) sebanyak n

6.) Menghitung mean dari masing masing kolom pada matrik yang pertama dan

menempatkanya pada matrik baris

7.) Menghitung mean dari matrik baris

Dari algoritma secara umum diatas akan dijelaskan algoritma yang lebih rinci

sebagai berikut.

Tabel 5.2 Algoritma untuk jacknife

Function Penjelasan

jacknife=function(data) Membuat fungsi yang dinamai "jacknife" dengan output data

n=length(data) Menamai panjang data dengan n

resam=matrix(nrow=(n-

1),ncol=n)

Membuat matrik dengan jumlah baris sebanyak n-1 dan kolom

sebanyak n yang dinamai "resam"

rata=matrix(nrow=1,ncol=n) Membuat matrik baris dengan kolom sebanyak n yang dinamai

"rata"

for (i in 1:n) Membuat pengulangan dari 1 sampai n

urut=c(1:n) Membuat data 1 sampai n dengan nama "urut"

dd=which(urut!=i) Membuat data dimana data urut disajikan tanpa data ke-i yang

dinamai "dd"

resam[ ,i]=data[dd] Mengisikan masing-masing kolom pada matrik "resam" dengan data

yang memenuhi syarat "dd"

rata[ ,i]=mean(resam[ ,i]) Mengisikan kolom ke-i pada matrik "rata" dengan mean dari kolom

ke-i pada matrik "resam"

jacknife=mean(rata) Mencari nilai mean dari matrik "rata" yang dinamai dengan

"jacknife"

list(....) Menampilkan hasil

5.4 R Package

Program R juga menyediakan paket-paket yang telah jadi untuk menjalankan

beberapa fungsi seperti bootstrap dan jacknife. Untuk menampilkan fungsi bootstrap ketik

bootstrap. Jika tidak berhasil klik menu packages pada toolbar kemudian pilih load

package...

5FAHRUL ROZI PERDANA 1309100016DIMAS AGUNG DERMAWAN 1309100080MUINAH KHUSNUL KHOTIMAH 1309100091

Page 6: Bootstrap Dan Jacknife2

BOOTSTRAP DAN JACKNIFE

Gambar 5.3 Langkah menjalankan R Package

Kemudian pilih boot dan tekan OK.

Gambar 5.4 Memilih paket boot untuk fungsi bootstrap

Maka akan ditampilkan fungsi untuk mencari bootstrap sebagai berikut.

6FAHRUL ROZI PERDANA 1309100016DIMAS AGUNG DERMAWAN 1309100080MUINAH KHUSNUL KHOTIMAH 1309100091

Page 7: Bootstrap Dan Jacknife2

BOOTSTRAP DAN JACKNIFE

> bootstrap

function (x, nboot, theta, ..., func = NULL)

{

call <- match.call()

n <- length(x)

bootsam <- matrix(sample(x, size = n * nboot, replace = TRUE),

nrow = nboot)

thetastar <- apply(bootsam, 1, theta, ...)

func.thetastar <- NULL

jack.boot.val <- NULL

jack.boot.se <- NULL

if (!is.null(func)) {

match1 <- function(bootx, x) {

duplicated(c(bootx, x))[(length(x) + 1):(2 * length(x))]

}

matchs <- t(apply(bootsam, 1, match1, x))

func.thetastar <- func(thetastar)

jack.boot <- function(inout, thetastar, func) {

func(thetastar[!inout])

}

jack.boot.val <- apply(matchs, 2, jack.boot, thetastar,

func)

if (sum(is.na(jack.boot.val) > 0)) {

cat("At least one jackknife influence value for func(theta) is undefined",

fill = TRUE)

cat(" Increase nboot and try again", fill = TRUE)

return()

}

if (sum(is.na(jack.boot.val)) == 0) {

jack.boot.se <- sqrt(((n - 1)/n) * sum((jack.boot.val -

mean(jack.boot.val))^2))

}

}

7FAHRUL ROZI PERDANA 1309100016DIMAS AGUNG DERMAWAN 1309100080MUINAH KHUSNUL KHOTIMAH 1309100091

Page 8: Bootstrap Dan Jacknife2

BOOTSTRAP DAN JACKNIFE

return(list(thetastar = thetastar, func.thetastar = func.thetastar,

jack.boot.val = jack.boot.val, jack.boot.se = jack.boot.se,

call = call))

}

5.5 Studi Kasus

Untuk lebih memahami penggunaan bootstrap dan jacknife, dilakukan studi kasus

sebagai berikut.

Akan dicari parameter bootstrap dan jacknife untuk data pembelian daging dan ikan

di 150 supermarket sebagai berikut.

Tabel 5.3 Data penjualan di supermarket

id

superma

r meat fish id

superma

r meat fish id

superma

r meat fish

1 Asda 10,322653

2,386123

1 51 Asda 1,7157256 4,3758162

10

1

Kwiksav

e

1,302784

6 0,0125994

2 Asda 1,4643201 3,004063 52

Kwiksav

e 2,4994077 1,0452275

10

2

Waitros

e

7,137085

1 4,655144

3 Tesco 8,0185099

2,594804

4 53

Kwiksav

e 0,4370254 0,0948342

10

3 Asda

15,20694

9 4,567109

4 Tesco 4,0296163 4,517541 54 Asda 19,380455 2,5996484

10

4 Asda

10,44023

7 5,403403

5 Asda 2,0955085

5,761566

5 55

Kwiksav

e 2,1710175 0,6352293

10

5 Asda

8,206468

2 6,5558877

6

Kwiksav

e 0,4303825

0,528786

8 56

Kwiksav

e 1,5538654 0,4365477

10

6 Tesco

15,29202

3 3,7915592

7 Asda 4,4599574

0,363381

3 57 Safeway 5,5151255 2,1715356

10

7 Safeway

5,283562

4 3,653286

8 Tesco 14,857673

3,065868

1 58

Waitros

e 6,4629234 13,060157

10

8 Safeway 3,325809 2,0736744

9 Asda 2,7347935

2,399126

5 59 Tesco 7,3345978 0,6319632

10

9 Safeway

3,302504

3 1,1152319

1

0

Kwiksav

e 4,6476714

1,058550

6 60 Tesco 12,530441 1,281835

11

0 Tesco

9,969709

6 0,4101632

1

1

Kwiksav

e 1,5326935

0,526003

2 61 Asda 16,611546 2,9776814

11

1 Asda

5,277015

3 1,2909824

1

2

Waitros

e 9,7226414

5,777987

5 62 Asda 9,0297608 6,0514262

11

2

Kwiksav

e

2,060808

7 0,7906768

1

3 Asda 0,0784094

0,294900

5 63 Tesco 0,764474 1,2844074

11

3

Kwiksav

e

4,328113

8 0,2856731

1 Asda 8,5275716 1,620300 64 Tesco 17,366112 5,410634 11 Asda 8,793571 2,8613383

8FAHRUL ROZI PERDANA 1309100016DIMAS AGUNG DERMAWAN 1309100080MUINAH KHUSNUL KHOTIMAH 1309100091

Page 9: Bootstrap Dan Jacknife2

BOOTSTRAP DAN JACKNIFE

4 6 4 9

1

5 Asda 9,2553499

2,047447

7 65 Asda 3,6480306 1,5389808

11

5

Kwiksav

e

1,155003

7 0,2234738

1

6 Tesco 0,4870781

4,860781

9 66

Kwiksav

e 3,0664937 0,006846

11

6

Kwiksav

e

3,239920

7 0,8439524

1

7 Safeway 12,661773

0,329507

2 67 Asda 5,1963218 4,0797687

11

7 Safeway

3,727160

3 3,8553719

1

8 Safeway 13,775829

0,336230

6 68 Tesco 8,1048925 5,5037817

11

8

Waitros

e

1,408003

1 11,436994

1

9 Safeway 13,325666

2,591686

3 69 Asda 2,8003585 2,7953703

11

9 Tesco

12,22515

2 0,4096869

2

0 Tesco 18,137614

3,757564

5 70

Kwiksav

e 2,3041155 0,6226478

12

0 Tesco

6,207596

9 2,495203

2

1 Asda 9,7876365

0,429417

1 71

Kwiksav

e 0,2540089 0,7631104

12

1 Asda

10,99978

1 1,0738673

2

2

Kwiksav

e 0,8753505

1,075680

9 72

Waitros

e 7,927984 3,7554579

12

2 Asda

11,69925

1 0,2279559

2

3

Kwiksav

e 2,488933

0,213730

3 73 Asda 8,6088623 4,5461244

12

3 Tesco

2,971005

3 0,294369

2

4 Asda 11,320505

1,457244

4 74 Asda 8,6721423 2,379338

12

4 Tesco

1,669468

8 0,6651582

2

5

Kwiksav

e 2,7819085

0,937746

4 75 Asda 5,0926088 1,4259416

12

5 Asda

3,276002

3 4,2658948

2

6

Kwiksav

e 1,4720683 0,298355 76 Tesco 13,72459 4,9287212

12

6

Kwiksav

e

0,696939

3 0,7073966

2

7 Safeway 1,9634489 4,594448 77 Safeway 17,402173 2,2440724

12

7 Asda

14,78058

8 0,520728

2

8

Waitros

e 0,8995939

11,78328

5 78 Safeway 12,706044 0,4455474

12

8 Tesco

11,62089

5 0,7547793

2

9 Tesco 16,475975

0,910433

9 79 Safeway 10,250837 2,2048052

12

9 Asda

6,961677

5 2,2703294

3

0 Tesco 1,6782493

1,985220

8 80 Tesco 9,9406217 6,9216456

13

0

Kwiksav

e

2,778079

8 0,5242639

3

1 Asda 16,467436

3,388267

5 81 Asda 14,748912 3,6329385

13

1

Kwiksav

e

2,781421

7 0,0966719

3

2 Asda 1,4849857 0,601632 82

Kwiksav

e 2,4834293 0,38972

13

2

Waitros

e

9,036623

6 14,479333

3

3 Tesco 12,40132

1,028280

9 83

Kwiksav

e 0,6221616 0,6079264

13

3 Asda

4,860605

9 3,0257983

3

4 Tesco 0,1289459

5,588381

5 84 Asda 13,928966 2,7649615

13

4 Asda

6,718558

2 4,3008814

3

5 Asda 14,150936

0,061581

5 85

Kwiksav

e 3,8941422 0,9302048

13

5 Asda

11,79546

1 1,5435084

9FAHRUL ROZI PERDANA 1309100016DIMAS AGUNG DERMAWAN 1309100080MUINAH KHUSNUL KHOTIMAH 1309100091

Page 10: Bootstrap Dan Jacknife2

BOOTSTRAP DAN JACKNIFE

3

6

Kwiksav

e 4,3348919

0,373355

3 86

Kwiksav

e 1,4050079 0,1376247

13

6 Tesco

18,92105

9 0,1616451

3

7 Asda 8,2222849

0,349002

8 87 Safeway 1,2944036 1,1178463

13

7 Safeway

14,81399

9 0,9354289

3

8 Tesco 13,838784

2,633147

1 88

Waitros

e 0,9010421 5,2298848

13

8 Safeway

2,046338

1 0,1402601

3

9 Asda 8,0989954

2,630588

1 89 Tesco 15,800813 2,5154729

13

9 Safeway

5,965744

9 2,8828583

4

0

Kwiksav

e 0,5780798

0,418526

1 90 Tesco 3,4893648 2,1090343

14

0 Tesco

3,151097

4 3,2320971

4

1

Kwiksav

e 1,750743

0,364596

5 91 Asda 1,493058 2,1172192

14

1 Asda

0,083769

2 0,5686055

4

2

Waitros

e 2,430366

13,50267

4 92 Asda 3,7915418 2,260102

14

2

Kwiksav

e

3,348327

5 0,5891881

4

3 Asda 9,0374358

4,682625

2 93 Tesco 13,322723 0,0315969

14

3

Kwiksav

e

4,023235

9 0,5951672

4

4 Asda 0,2223212

4,502175

1 94 Tesco 16,203732 1,5478631

14

4 Asda

4,461735

9 1,5064437

4

5 Asda 1,0549084

1,432809

4 95 Asda 14,15626 0,3543761

14

5

Kwiksav

e

4,523626

8 0,6984191

4

6 Tesco 16,134673

4,974820

6 96

Kwiksav

e 4,237961 0,6247754

14

6

Kwiksav

e

3,535109

5 0,0191963

4

7 Safeway 13,939698

0,087849

9 97 Asda 4,1038451 3,7764157

14

7 Safeway 3,359899 1,2045437

4

8 Safeway 12,890374

3,483064

1 98 Tesco 17,003936 3,5176455

14

8

Waitros

e

1,326975

9 10,969406

4

9 Safeway 18,535007

3,184045

5 99 Asda 15,937569 3,3615459

14

9 Tesco

5,219338

5 5,4446304

5

0 Tesco 13,969315

2,182867

4

10

0

Kwiksav

e 0,8117748 0,6807314

15

0 Tesco

0,248401

6 4,7082002

Penyelesaian :

1) Mula-mula lakukan pemanggilan data di R yang berlokasi di C: dengan syntax

sebagai berikut

> data=read.table("C://data.txt",header=TRUE)

2) Masukan function yang akan digunakan dengan mengkopinya ke R scrip

> bootstrap=function(data,m,n)

+ {

+ resam=matrix(nrow=m,ncol=n)

+ rata=matrix(nrow=1,ncol=n)

10FAHRUL ROZI PERDANA 1309100016DIMAS AGUNG DERMAWAN 1309100080MUINAH KHUSNUL KHOTIMAH 1309100091

Page 11: Bootstrap Dan Jacknife2

BOOTSTRAP DAN JACKNIFE

+ for (i in 1:n)

+ {

+ resam[ ,i]=sample(data,m)

+ rata[ ,i]=mean(resam[ ,i])

+ }

+ bootstrap=mean(rata)

+ list("Hasil sampling dari data adalah sebagai berikut",resam,

+ "Rata-rata dari masing-masing kolom adalah sebagai berikut",rata,

+ "Parameter Bootstrap",bootstrap)

+ }

dan

> jacknife=function(data)

+ {

+ n=length(data)

+ resam=matrix(nrow=(n-1),ncol=n)

+ rata=matrix(nrow=1,ncol=n)

+ for(i in 1:n)

+ {

+ urut=c(1:n)

+ dd=which(urut!=i)

+ resam[ ,i]=data[dd]

+ rata[ ,i]=mean(resam[ ,i])

+ }

+ jacknife=mean(rata)

+ list("Hasil sampling dari data adalah sebagai berikut",resam,

+ "Rata-rata dari masing-masing kolom adalah sebagai berikut",rata,

+ "Parameter Jacknife",jacknife)

+ }

3) Menjalankan program, mula-mula akan dicari parameter bootstrap untuk variabel

penjualan daging dengan sampel sebanyak sepuluh yang diulang sepuluh kali,

maka untuk menjalankan program synyax yang harus dimasukan adalah sebagai

berikut

> bootstrap(data$meat,10,10)

11FAHRUL ROZI PERDANA 1309100016DIMAS AGUNG DERMAWAN 1309100080MUINAH KHUSNUL KHOTIMAH 1309100091

Page 12: Bootstrap Dan Jacknife2

BOOTSTRAP DAN JACKNIFE

4) Setelah program dijalankan akan ditampilkan output sebagai beikut

Gambar 5.5 Output untuk bootstrap data penjualan daging

5) Dengan data yang sama, akan dicari parameter jacknife-nya dengan syntax sebagai

berikut

> jacknife(data$meat)

6) Setelah program dijalankan akan ditampilkan output sebagai beikut

(output terlalu besar untuk ditampilkan)

7) Dengan cara yang sama, akan dicari parameter bootstrap untuk variabel penjualan

ikan dengan syntax sebagai berikut

> bootstrap(data$fish,10,10)

8) Setelah program dijalankan akan ditampilkan output sebagai beikut

12FAHRUL ROZI PERDANA 1309100016DIMAS AGUNG DERMAWAN 1309100080MUINAH KHUSNUL KHOTIMAH 1309100091

Page 13: Bootstrap Dan Jacknife2

BOOTSTRAP DAN JACKNIFE

Gambar 5.6 Output untuk bootstrap data penjualan ikan

9) Dengan data yang sama, akan dicari parameter jacknife-nya dengan syntax sebagai

berikut

> jacknife(data$fish)

10) Setelah program dijalankan akan ditampilkan output sebagai beikut

(output terlalu besar untuk ditampilkan)

5.6 Intepretasi

a.) Bootstrap

Dari studi kasus diatas parameter bootstrap untuk rata-rata pembelian daging di

supermarket dengan sampel sebanyak sepuluh dan diulang sebanyak sepuluh kali

diperoleh sebesar 74,2. Sedangkan untuk parameter bootstrap dari penjualan ikan di

supermarket yang disampel sebanyak sepuluh kali dan diulang sebanyak sepuluh kali

diperoleh parameter bootstrap sebesar 71,63.

13FAHRUL ROZI PERDANA 1309100016DIMAS AGUNG DERMAWAN 1309100080MUINAH KHUSNUL KHOTIMAH 1309100091

Page 14: Bootstrap Dan Jacknife2

BOOTSTRAP DAN JACKNIFE

b.) Jacknife

Dari studi kasus diatas parameter jacknife untuk rata-rata pembelian daging di

supermarket diperoleh sebesar 75,5. Sedangkan untuk parameter jacknife dari

penjualan ikan di supermarket diperoleh sebesar 75,5.

5.7 Referensi

elesys.fst.unair.ac.id/admin/materi/modul%207%20Regresi%20Bootstrap.pdf

elesys.fst.unair.ac.id/admin/materi/modul%206%20Regresi%20Jackknife.pdf

http://cran.r-project.org/web/packages/bootstrap/bootstrap.pdf

14FAHRUL ROZI PERDANA 1309100016DIMAS AGUNG DERMAWAN 1309100080MUINAH KHUSNUL KHOTIMAH 1309100091