Rabu, 07 Desember 2016

Re-Sampling menggunakan Metode Bootstrap Pada R 3.3.2

Selamat malam sobat semua, wah kayaknya lagi pada sibuk nonton Indonesia vs Vietnam nih, kita doakan supaya timnas menang yah. Oke menemani malam ini saya akan berbagi tentang Bootstrapping.
Sebelum lebih lanjut, sobat harus tau dulu apa itu Statistika. Jadi apa? jadi, Statistika adalah ilmu yang mempelajari bagaimana merencanakan, mengumpulkan, menganalisis, menginterpretasi, dan mempresentasikan data (Wikipedia). Singkatnya, statistika adalah ilmu tentang data (tidak bisa hidup tanpa data gtu deh). Berbicara masalah data, jadi ingat kalau teman saya pernah mengalami permasalahan tentang data yaitu saat sampling, terkadang hanya mendapatkan jumlah sampel yang kecil  dan bahkan estimasi parameter yang diperoleh bias, underestimate atau bisa jadi overestimate.

Kali ini saya berbagi solusi untuk mengatasi hal itu nih. Dalam ilmu statistika ada yang dinamakan metode bootstrap. Sudah tau belum?, kalau belum tau jangan ngaku anak Statistika deh. Nah, jadi Metode Bootstrap ini diperkenalkan oleh Efron sekitar tahun 70-an, Efron memperkenalkan Metode Bootstrap untuk menduga parameter dari sebaran yang tidak diketahui bentuknya. Bootstrapping ini merupakan teknik modifikasi dari Jacknife yang diperkenalkan oleh Queneiville pada tahun 1948. Berhubung metode ini pada awalnya tidak membobotkan model peluang, tetapi berbasis pada data, bootstrap dikenal sebagai data driven approach. Pada dekade 80-an perkembangan metode nonparametrik mulai sering digunakan seperti pada regresi nonparametrik, estimasi distribusi dengan kernel, dan neural network.

Metode bootstrap adalah metode berbasis resampling data sampel dengan syarat pengembalian pada datanya dalam menyelesaikan statistik ukuran suatu sampel dengan harapan sampel tersebut mewakili data populai sebenarnya, biasanya ukuran resampling diambil secara ribuan kali agar dapat mewakili data populasinya. Bootstrap memungkinkan seseorang untuk melakukan inferensi statistik tanpa membuat asumsi distribusi yang kuat dan tidak memerlukan formulasi analitis untuk distribusi sampling suatu estimator. Sebagai pengganti, bootstrap menggunakan distribusi empiris untuk mengestimasi distribusi sampling. Jadi jika penyelesaian analitik tidak mungkin dilakukan dimana anggapan (suatu distribusi, misalnya kenormalan data) tidak dipenuhi maka dengan menggunakan Boosttrap masih dapat dilakukan suatu inferensi.

Dasar pendekatan Bootstrap adalah dengan memperlakukan sampel sebagai populasi dan dengan menggunakan sampling Monte Carlo untuk membangkitkan dan mengkonstruksi estimator empiris dari distribusi sampling statistik. Distribusi sampling dapat dipandang sebagai harga-harga statistik yang dihitung dari sejumlah tak terhingga sampel random berukuran n dari suatu populasi yang diberikan. Sampling Monte Carlo mengambil konsep ini untuk membangun distribusi sampling suatu estimator dengan mengambil sejumlah besar sampel erukuran n secara random dari populasi dan menghitung statistik tersebut dari harga-harga distribusi sampling tersebut. Estimasi Monte Carlo yang sebenarnya memerlukan pengetahuan tentang seluruh populasi yang tidak mungkin selalu tersedia dalam prakteknya karena yang dipunyai dari hasil riset praktek adalah sampel dari populasi oleh karena itu dilakukan inferensi untuk Tetha dari distribusi samplingnya.


Pendekatan bootstrap dilakukan dengan proses resampling pada observasi dan residual dari model regresi :

Apabila regresor adalah random, metode bootstrap yang dipakai adalah dengan melakukan resampling pada observasi dengan probabilitas setiap observasi akan terambil sebanyak 1/n untuk jumlah sampel (i) = 1,2,…, n dan untuk sejumlah variabel (j) = 1,2,…,k. Resampling dilakukan sebanyak B kali. Dimana jumlah B diisyaratkan cukup besar, hingga diperoleh estimasi parameter yang konvergen atau bahkan sampai sejumlah n pangkat n sampel. Dengan jumlah B yang cukup besar ini, diharapkan estimasi parameter regresi yang dihasilkan akan lebih kuat (robust).

Apabila regresor adalah variabel yang fix, metode bootstrap yang dipakai adalah dengan melakukan resampling pada residual (hasil bentukan model OLS, pada sampel). Dari nilai residual ini selanjutnya diestimasikan parameter model regresi. Proses ini dilakukan berulang sampai sebanyak B kali.

Baik pada regresor yang fix maupun random, estimasi parameter regresi (beta), diperoleh dengan menjumlahkan beta pada setiap resampling dan membagi dengan nila B. Jadi merupakan rata-rata dari taksiran beta di setiap proses resampling.

Apakah hanya bootstrap ?
Ada lagi metode resampling yang lain, yakni dengan pendekatan jacknife. Jacknife resampling lebih umum digunakan apabila variabel regressor adalah fix. Ada dua cara dalam proses jacknife resampling, yaitu :

Estimasi parameter dengan OLS, namum menghilangkan satu per satu observasi, dilakukan berulang sampai (n-1) kali dan mencari taksiran parameter dari rata-rata parameter (beta) setiap kali resampling dilakukan.

Estimasi model dengan menghilangkan d-observasi sekaligus, dilakukan berulang sampai sebanyak S kali, dimana S (S = n kombinasi d). Taksiran parameter diperoleh dengan merata-ratakan parameter yang diperoleh disetiap kali resampling.

Menggunakan boostrap atau jacknife ? Adalah sebuah pilihan, bergantung pada kasus yang dihadapi. Sekedar mengetahui estimasi parameter, atau perlu membangkitkan sejumlah data untuk mendapatkan estimasi parameter dan estimasi varians lebih robust.

Metode bootstrap dapat digunakan untuk berbagai hal, salah satu adalah menentukan nilai t statistik seperti yg dilakukan dalam model SEM Partial Least Square. Denga metode bootstarp atau melakukan resampling sampai 500 kali, maka kita dapat menghitung nilai standard error (SE) jika dikatehui standart errornya, maka kita dapat menghitung nilai t statistik dengan membagi koefisien regresi dengan standar errornya. Hanya setiap kali anda melakukan bootstrap nilai t statistik akan berbeda-beda karena menggunakan iterasi yang dilakukan secara random, tetapi dengan bootstraping 500 kali umunya hasilnya stabil sehingga jika dilihat dari nilai signifikansi statistik akan konsisten hasilnya walaupun nilai t berbeda-beda.

Coba kita praktekan ya !!

Jalankan script berikut ini di program R kalian, tapi jangan lupa pastikan bahwa packages "boot" telah ter-install. Setelah dipastikan maka sobat langsung jalankan packages nya seperti berikut :

library(boot) #load the package

Nah, setelah itu kita memerlukan suatu fungsi untuk melakukan estimasi.
pada kasus ini menggunakan fungsi beta.

betfun = function(data,b,formula){  

# b adalah indeks random untuk melakukan resample bootstrap

d = data[b,] 
return(lm(d[,1]~d[,2], data = d)$coef[2])  

# itu untuk koefisien beta
}

# sekarang, kita coba untuk melakukan bootsrap:

bootbet = boot(data=validation, statistic=betfun, R=5000) 

# misalkan saya memiliki data dengan nama "validation"
# R adalah seberapa besar sampel yang mau dibootstrap

names(bootbet)
plot(bootbet)
hist(bootbet$t, breaks = 100)



# untuk melihat hasilnya dapat menuliskan script di atas atau juga dapat melihat di gambar berikut:

boobet$t

# melihat data hasil bootstrap dengan memanggil hasil bootstrap$t


Mungkin cukup sekian dari saya, have fun !!


2 komentar:

  1. tanya ...bootstrap yg saya fahami dilakukan bila sampelnya kecil seandainya sampelnya cukup besar apakah juga harus dilakukan? misal sampelnya 250. Butuh pencerahannya....

    BalasHapus
  2. Olah Data Semarang
    Jasa Olah Data SPSS, AMOS, LISREL, Frontier 4.1
    EVIEWS, SMARTPLS, STATA, DEAP 2.1, DLL
    Contact Person WhatsApp
    Klik Link Dibawah
    Contact Person WhatsApp +6285227746673

    BalasHapus