Estimasi Densitas dengan Kernel

13.1. Estimasi Densitas dengan Kernel

Estimasi nonparametrik dari fungsi densitas probabilitas merupakan suatu topik yang luas. Beberapa buku yang membahas tentang hal ini adalah Silverman (1986), Härdle (1991), Scott (1992), serta Wand dan Jones (1995). Metode estimasi yang dibahas dalam bagian ini adalah metode estimasi nonparametrik dengan kernel.

Perintah untuk membuat histogram yaitu hist dengan argumen freq=FALSE adalah juga suatu estimator dari fungsi densitas. Jika tiap‐tiap titik tengah dari kelas di masing ‐masing histogram dihubungkan maka akan diperoleh estimator fungsi densitas dalam bentuk poligon frekuensi. Berikut ini adalah contoh script untuk mendapatkan histogram dalam frekuensi relatif (probabilitas) yang dapat digunakan sebagai estimator dari fungsi densitas pada suatu data, yaitu geyser$duration yang sudah tersedia di R.

> data(geyser, package="MASS") > x <‐ geyser$duration > hist(x, breaks=22, freq=FALSE, main = "Smoothing with Gaussian Kernel")

Output dari script ini dapat dilihat pada Gambar 13.1. Dari gambar tersebut dapat dijelaskan bahwa data geyser$duration bersifat bimodal, yaitu mempunyai dua macam puncak di sekitar angka 2 dan 4.

R menyediakan fasilitas estimasi nonparametrik dari fungsi densitas probabilitas dengan perintah density di library stats dan beberapa perintah di library KernSmooth. Secara matematis, implementasi penghalus densitas dengan kernel adalah

1 n ⎛− x x ⎞

untuk suatu sampel x 1 , x 2 , K , x n , dengan K ( ) suatu kernel tertentu dan b adalah bandwith yang digunakan.

Gambar

13.1. Output histogram frekuensi relatif pada data duration

Pada bagian ini, penjelasan tentang estimasi nonparametrik dari suatu fungsi densitas akan ditekankan pada penggunaan perintah‐perintah yang ada di library KernSmooth. Beberapa jenis kernel yang tersedia di library KernSmooth dapat dilihat pada tabel berikut ini.

Argumen Kernel Keterangan Jenis Kernel

“normal” Kernel Gaussian (pilihan default) “box” Kernel Rectangular box "epanech" Kernel Epanechnikov (the centred beta(2,2) density) "biweight" Kernel Biweight (the centred beta(3,3) density) "triweight" Kernel Triweight (the centred beta(4,4) density)

Berikut ini adalah contoh grafik dari bentuk‐bentuk kernel untuk estimasi nonparametrik dari suatu fungsi densitas.

Gambar

13.2. Grafik dari berbagai kernel untuk estimasi densitas

Perintah dpik pada library KernSmooth dapat digunakan untuk mendapatkan nilai bandwith yang optimal pada suatu kernel yang diimplentasikan pada suatu data. Berikut ini adalah script untuk implementasi estimasi nonparametrik dari fungsi densitas pada data geyser$duration yang sudah tersedia di R, dengan menggunakan pilihan bandwith optimal.

> data(geyser, package="MASS") > x <‐ geyser$duration > h.n <‐ dpik(x,kernel="normal") # Pemilihan bandwith yang optimal > est.n <‐ bkde(x,kernel="normal",bandwidth=h.n)

> h.b <‐ dpik(x,kernel="box") > est.b <‐ bkde(x,kernel="box",bandwidth=h.b) >

h.e <‐ dpik(x,kernel="epanech") > est.e <‐ bkde(x,kernel="epanech",bandwidth=h.e) > h.bi <‐ dpik(x,kernel="biweight")

> est.bi <‐ bkde(x,kernel="biweight",bandwidth=h.bi) > h.tri <‐ dpik(x,kernel="triweight")

> est.tri <‐ bkde(x,kernel="triweight",bandwidth=h.tri)

Tampilan besarnya bandwith optimal dan hasil perbandingan grafik dari estimator ‐estimator densitas pada data geyser$duration dapat dilakukan dengan menggunakan script berikut ini.

> # Perbandingan bandwith optimal pada masing‐masing kernel > hopt <‐ cbind(h.n,h.b,h.e,h.bi,h.tri) > hopt

h.n h.b h.e h.bi h.tri

> win.graph() > hist(x, breaks=22, freq=FALSE,main = "Smoothing with Kernels") > lines(est.n, col='red') # densitas dengan kernel normal > lines(est.b, col='blue') # densitas dengan kernel rectangular > lines(est.e, col='gray') # densitas dengan kernel e panechnikov > lines(est.bi, col='green') # densitas dengan kernel biweight > lines(est.tri, col='pink') # densitas dengan kernel triangular

Output dari script diatas adalah estimasi dari bentuk fungsi densitas probabilitas seperti pada gambar di bawah ini.

Gambar

13.3. Grafik dari berbagai kernel untuk estimasi densitas

Sebagai tambahan, pada library KernSmooth juga tersedia fasilitas untuk analisis kernel dua dimensi, yaitu dengan perintah bkde2D . Berikut ini adalah contoh script tentang analisis kernel dua dimensi pada data geyser yang sudah ada di R.

> data(geyser, package="MASS") > x <‐ cbind(geyser$duration, geyser$waiting) > est <‐ bkde2D(x, bandwidth=c(0.7,7)) > contour(est$x1, est$x2, est$fhat) > persp(est$fhat)

Berikut ini adalah output dari script diatas.

13.4. Grafik dari estimasi densitas dua dimensi pada data geyser