Pendugaan Kepekatan Data Akhir Mahasiswa Julio Adisantoso G16109011/STK 7 Mei 2010 Ringkasan Diketahui data pengamatan dari sebaran dengan fungsi kepekatan f yang tidak diketahui. Fungsi f dapat diduga dengan pendekatan non-parametrik, dimana fungsi f diasumsikan merupakan fungsi yang mulus sehingga dapat diduga dengan menggunakan penduga kernel. Tingkat kemulusan fungsi penduga ditentukan oleh parameter pemulus, yaitu lebar jendela dan fungsi kernel. Lebar jendela sangat menentukan tingkat kemulusan fungsi penduga. Semakin besar lebar jendela yang digunakan, maka semakin mulus fungsi penduganya. Sedangkan fungsi kernel yang digunakan tidak banyak mempengaruhi tingkat kemulusan fungsi penduga. 1 Pendahuluan Proses analisis data pada prinsipnya merupakan upaya menelusuri dan mengungkapkan informasi yang relevan yang terkandung di dalam data melalui struktur dan pola data serta penyajian hasil dalam bentuk yang lebih ringkas dan sederhana. Penelusuran struktur data bertujuan untuk memeriksa apakah suatu data dapat membentuk suatu model tertentu, sedangkan penelusuran pola data bertujuan untuk memeriksa bagaimana sebaran data. Salah satu cara untuk memeriksa sebaran data adalah dengan menentukan fungsi kepekatan peluang (fkp) atau probability density function (pdf). Misalkan {X i, i = 1, 2,..., n} adalah data pengamatan yang saling bebas yang memiliki fungsi kepekatan peluang f(x). Untuk menduga f(x) dapat dilakukan dengan dua pendekatan, yaitu parametrik dan non-parametrik (Silverman, 1986). Pendekatan parametrik dilakukan jika fungsi f(x) diketahui sehingga pendugaannya dapat dilakukan dengan menduga parameter fungsi. Sedangkan pendekatan non-parametrik dilakukan jika fungsi f(x) tidak diketahui. Ada beberapa metode non-parametrik yang dapat dilakukan untuk menduga fungsi kepekatan peluang. Salah satu metode klasik yang paling popular adalah histogram. Metode lainnya adalah dengan menggunakan fungsi Kernel. Untuk memahami proses pendugaan fungsi kepekatan peluang, dilakukan analisis data menggunakan metode histogram dan fungsi Kernel. Beberapa karakteristik dari kedua metode tersebut dicobakan agar dapat dilakukan pembandingan dari masing-masing metode. 2 Bahan dan Metode Data yang dianalisis adalah nilai akhir dari 524 mahasiswa IPB semester ganjil tahun akademik 2008/2009 untuk mata pelajaran Algoritme dan Pemrograman. Data dianalisis menggunakan metode histogram pada beberapa kelas dan fungsi Kernel pada beberapa bandwidth. Program yang digunakan untuk menganalisis data adalah R versi 2.10.1. 1
Julio Adisantoso G161090011/STK 2 3 Tinjauan Teoritis 3.1 Histogram Misalkan {X i, i = 1, 2,..., n} adalah data pengamatan yang saling bebas. Metode klasik yang paling populer untuk mengetahui bentuk fungsi kepekatan peluang adalah metode histogram. Suatu histogram disusun dengan meletakkan titik-titik data ke dalam suatu bin atau kelas. Setiap bin dinyatakan secara grafik oleh segiempat dengan lebar sama dan tinggi proporsional dengan banyaknya titik-titik data yang terletak dalam bin tersebut. Bin ditentukan dengan memilih titik awal x 0 dan lebar bin atau pita (binwidth) h. Untuk sembarang bilangan bulat m, suatu bin mencakup interval atau selang setengah terbuka [x 0 + mh, x 0 + (m + 1)h). penduga histogram di sembarang titik x dapat dinyatakan sebagai f(x) = 1 nh (banyaknya X i dalam bin yang sama dengan x) Tidak ada ketentuan untuk memilih nilai bin h. Namun demikian, pemilihan nilai bin h yang kecil akan mengakibatkan histogram memuat banyak batang yang kecil-kecil, sedangkan pemilihan nilai bin h yang besar akan mengakibatkan histogram memuat sedikit batang yang besar-besar. 3.2 Penduga Naive Dari definisi kepekatan peluang, jika peubah acak X memiliki fungsi kepekatan f, maka 1 f(x) = lim P (x h < X < x + h) h 0 2h Untuk setiap nilai h, nilai P (x h < X < x + h) dapat diduga dengan proporsi sampel yang terletak pada selang (x h, x + h). Dengan demikian, penduga fungsi kepekatan f dapat diperoleh dengan memilih nilai h yang kecil dan f(x) = 1 2hn [banyaknya X 1,..., X n yang terletak pada selang (x h, x + h)] Penduga ini disebut sebagai penduga naive (naive estimator). Untuk menyatakan penduga secara lebih nyata, didefinisikan fungsi pembobot w sebagai berikut { 1 w(x) = 2 jika x < 1 0 selainnya Oleh karena itu, penduga naive dapat dituliskan sebagai f(x) = 1 n n ( ) 1 x h w Xi h i+1 Formula (1) menunjukkan bahwa penduga dibuat dengan menempatkan kotak dengan lebar 2h dan tinggi (2nh) 1 untuk setiap observasi kemudian menjumlahkannya untuk memperoleh penduga yang diinginkan. 3.3 Penduga Kernel Suatu fungsi K(.) disebut fungsi Kernel jika K merupakan fungsi kontinu, simetris, bernilai bilangan nyata, terhingga, dan K(t) dt = 1, tk(t) dt = 0, t 2 K(t) dt = k 2 0. (2) (1)
Julio Adisantoso G161090011/STK 3 Umumnya, tetapi tidak selalu, K merupakan fungsi kepekatan peluang normal, atau fungsi pembobot w yang menggunakan definisi penduga naive. Dengan cara yang sama dengan definisi dari penduga naive, penduga Kernel dengan kernel K didefinisikan sebagai f(x) = 1 nh n ( ) x Xi K h i=1 dimana h adalah lebar jendela, dan sering disebut sebagai parameter pemulus atau bandwidth. Ada beberapa kernel K(t) yang dapat digunakan sebagai tingkat pemulusan, antara lain Epanechnikov, Biweight, Triangular, Gaussian, dan Rectangular. Gambar 1 menunjukkan kurva beberapa fungsi kernel, sedangkan fungsi kernel seperti tercantum pada persamaan (4). K(x, p) = (3) (1 x 2 ) p 2 2p+1, x < 1 (4) B(p + 1, p + 1) dimana B(a, b) = Γ(a)Γ(b) Γ(a+b). Jika p = 0 maka persamaan (4) merupakan kernel Uniform, p=1 menjadi kernel Epanechnikov, dan p=2 menjadi kernel Biweight. Gambar 1: Kurva Beberapa Fungsi Kernel Kinerja suatu kernel dapat diukur dengan MISE (mean integrated squared error) atau AMISE (asymptotic MISE). Kernel Epanechnikov mampu meminimumkan AMISE sehingga optimal (Scheid, 2004). Oleh karena itu, efisiensi suatu kernel diukur dengan cara membandingkan dengan kernel Epanechnikov seperti yang tercantum pada persamaan (5). Tabel 1 menunjukkan beberapa fungsi kernel dan nilai efisiensinya. eff(k) = = { } 5/4 C(Ke ) C(K) { } 1/2 { 3 5 t 2 K(t) dt 5 K(t) 2 dt} 1 (5) 3.4 Memilih parameter pemulus Menurut Silverman (1986), tingkat kemulusan f ditentukan oleh fungsi kernel K dan lebar jendela h, tetapi pengaruh fungsi kernel K kurang signifikan dibanding pengaruh lebar jendela h. h yang kecil akan memberikan grafik yang kurang mulus, sebaliknya nilai h yang besar akan memberikan grafik yang sangat mulus. Oleh karena itu, perlu dipilih nilai h optimal untuk mendapatkan grafik optimal. Salah satu cara memilih parameter pemulus h optimal menurut
Julio Adisantoso G161090011/STK 4 Tabel 1: Beberapa kernel dan nilai efisiensinya Kernel K(t) Efisiensi Epanechnikov 3 4 (1 1 5 t2 ) 5, untuk t < 5 1 Biweight 15 16 (1 t2 ) 2, untuk t < 1 Triangular 1 t, untuk t < 1 Gaussian 1 2π e (1/2)t2 ( 3087 ) 1 2 3125 0.9939 ( 243 ) 1 2 250 0.9859 ( 26π ) 1 2 125 0.9512 1 Rectangular 2, untuk t < 1 ( 108 ) 1 2 125 0.9295 Hardle (1990) adalah dengan meminimalkan IMSE dari f. Dengan cara ini diperoleh h opt n 1 5. Jika f C 2 maka h opt n 1 (2r+1), dimana C adalah konstanta. Banyak metode yang dapat digunakan untuk menentukan parameter pemulus, antara lain adalah metode subyektif dan referensi sebaran baku. 3.4.1 Metode subyektif Metode sederhana untuk menentukan parameter pemulus adalah memplot beberapa kurva dan menentukan penduga yang paling sesuai. Proses ini dilakukan secara subyektif melalui pengamatan pada beberapa plot dari data yang semuanya dimuluskan dengan menggunakan beberapa fungsi kernel dan bandwidth yang berbeda-beda. 3.4.2 Referensi sebaran baku Pendekatan yang lebih mudah adalah menggunakan keluarga sebaran baku untuk menentukan nilai f (x) 2 dx pada persamaan (2) untuk lebar jendela yang ideal. Sebagai contoh, sebaran normal dengan ragam σ 2, tentukan φ untuk fungsi kepekatan normal baku, f (x) 2 dx = σ 5 φ (x) 2 dx = 3 8 π 1/2 σ 5 0.212σ 5 (6) Jika digunakan kernel Gaussian, maka lebar jendela (bandwidth) diperoleh dari persamaan (6) menjadi h opt = (4π) 1/10 ( 3 8 π 1/2 ) 1/5 σn 1/5 = ( ) 1/5 4 σn 1/5 = 1.06σn 1/5 (7) 3 Pada program R, persamaan (7) dikenal sebagai lebar jendela nrd. Hasil yang lebih baik diperoleh dengan menggunakan selang antar kuartil R untuk sebaran normal, sehingga persamaan (7) menjadi h opt = 0.79Rn 1/5 (8)
Julio Adisantoso G161090011/STK 5 Untuk data yang memiliki bimodal, maka persamaan (8) diganti dengan minimum dari standar deviasi dan selang antar kuartil per 1.34, sehingga lebar jendela menjadi h opt = 0.9An 1/5 (9) dimana A = min(σ, (Q 3 Q 1 )/1.34), Q 3 adalah kuartil ke-3, dan Q 1 adalah kuartil ke-1. Pada program R, persamaan (9) dilambangkan dengan lebar jendela nrd0. Lebar jendela nrd dan nrd0 mengasumsikan bahwa f adalah normal, sehingga akan menyebabkan oversmooth jika data menunjukkan multimodal atau f tidak normal. Metode lainnya adalah Unbiased cross-validation atau Least-squares cross validation, yang pada program R dilambangkan dengan ucv. Sedangkan Biased cross-validation pada program R dilambangkan dengan bcv. 4 Percobaan Seperti yang telah dijelaskan sebelumnya, data yang dianalisis adalah nilai akhir dari 524 mahasiswa IPB semester ganjil tahun akademik 2008/2009 untuk mata pelajaran Algoritme dan Pemrograman. Tabel 2 menunjukkan ringkasan statistik deskripsi data yang dianalisis, sedangkan diagram dahan-daun diperlihatkan pada Gambar 2. Tabel 2: Statistik deskripsi data Min. 1st Qu. Median Mean 3rd Qu. Max. -4.80 29.10 38.57 41.67 53.99 96.28 Berdasarkan Tabel 2 dan Gambar 2 terlihat bahwa data memiliki dua maksimum lokal (bimodal). Hal ini juga dapat dilihat pada histogram yang tercantum pada Gambar 3, dimana histogram sebelah kiri menggunakan banyaknya kelas menurut metode Sturges, yaitu 1 + 3.3log(n), sedangkan histogram sebelah kanan menggunakan breaks=15. Gambar 2: Diagram Dahan dan Daun Mahasiswa
Julio Adisantoso G161090011/STK 6 Mahasiswa(breaks=Sturges) Mahasiswa(breaks=15) 0.000 0.005 0.010 0.015 0.020 0.025 0.000 0.005 0.010 0.015 0.020 0.025 Gambar 3: Histogram nilai Algoritme dan Pemrograman 4.1 Lebar Jendela Pendugaan fungsi kepekatan dari data dilakukan dengan menggunakan fungsi kernel Gaussian untuk lebar jendela (h) yang berbeda-beda, yaitu h=0.5, 1, 2, 4, 6, dan 8, dan hasilnya dicantumkan pada Gambar 4. Dari tampilan Gambar 4 terlihat bahwa semakin besar h maka semakin mulus pendugaan fungsi kepekatannya. Pada h = 8 terlihat bahwa pendugaan fungsi kepekatannya mendekati data sebenarnya. Estimation (h=0.5) Estimation (h=1) Estimation (h=2) Estimation (h=4) Estimation (h=6) Estimation (h=8) Gambar 4: Pendugaan kepekatan dengan lebar jendela berbeda-beda Penentuan lebar jendela untuk fungsi kernel Gaussian dapat dilakukan dengan menggunakan pemilih bandwidth bcv, nrd0, nrd, ucv, dan SJ pada program R. Untuk data yang dianalisis, diperoleh lebar jendela untuk masing-masing pemilih bandwidth seperti tercantum pada Tabel 3, dan hasilnya seperti terlihat pada Gambar 5. Setiap nilai h yang terpilih pada Tabel 3 tidak memperlihatkan perbedaan penduga kepekatan yang nyata, tetapi pada h= SJ (Sheather & Jones) terlihat penduga kepekatannya lebih menyerupai data sebenarnya.
Julio Adisantoso G161090011/STK 7 Tabel 3: bandwidth selector untuk kernel Gaussian bcv nrd0 nrd ucv SJ 3.670768 4.779971 5.629744 3.097539 3.329436 Bandwidth:bcv Bandwidth:nrd0 Bandwidth:nrd Bandwidth:ucv Bandwidth:Sj ste Bandwidth:SJ dpi Gambar 5: Pendugaan kepekatan dengan kernel Gaussian untuk h berbeda 4.2 Fungsi Kernel Pemilihan nilai h sangat menentukan kemulusan dari hasil pendugaan fungsi kepekatannya. Hal ini tidak terjadi pada pemilihan fungsi kernel yang berbeda-beda untuk lebar jendela yang sama. Untuk melihat pengaruh fungsi kernel, dicobakan tujuh fungsi kernel, yaitu Gaussian, Epanechnikov, Rectangular, Triangular, Biweight, dan Cosine. Hasil percobaan ini dicantumkan pada Gambar 6. Kernel Rectangular menghasilkan penduga yang paling tidak mulus dibanding kernel lainnya. Kernel:GAUSSIAN Kernel:EPANECHNIKOV Kernel:RECTANGULAR Kernel:TRIANGULAR Kernel:BIWEIGHT Kernel:COSINE Gambar 6: Pendugaan kepekatan dengan kernel berbeda
Julio Adisantoso G161090011/STK 8 5 Kesimpulan Dari teori yang mendasari pendugaan fungsi kepekatan dan hasil percobaan yang dilakukan, dapat disimpulkan bahwa untuk menduga fungsi kepekatan f(x) jika informasi tentang model sebaran dari X tidak diketahui, dapat dilakukan dengan menggunakan pendekatan nonparametrik. Salah satu pendekatan non-parametrik adalah menggunakan teknik pemulus kernel. Tingkat kemulusan fungsi penduga ditentukan oleh parameter pemulus, yaitu lebar jendela dan fungsi kernel. Semakin besar lebar jendela yang digunakan, maka semakin mulus fungsi penduganya. Hal ini juga berlaku sebaliknya, yaitu semakin kecil lebar jendela yang digunakan, maka fungsi penduganya semakin tidak mulus. Parameter pemulus berupa lebar jendela ini sangat menentukan tingkat kemulusan fungsi penduga. Hal ini tidak terjadi pada pemilihan fungsi kernel. 6 Daftar Pustaka Hansen, B.E. 2004. Nonparametric Conditional Estimation. University of Wisconsin. Hardle,W. 1990. Smoothing Techniques With Implementation in S. Springer-Verlag. New York Scheid, S. 2004. Introduction to Kernel Smoothing. Chapman & Hall. Silverman, B.W. 1986. Estimation for Statistics and Data Analysis. J.W. Arrowsmith Ltd, Bristol. Suparti & Sudargo. 2006. Estimasi Densitas Mulus dengan Metode Kernel. LONTAR, Vol. 20 No.1,April 2006, ISSN 0853-0041. Venables, W.N & D.M. Smith. 2009. An Introduction to R: A Programming Environment for Data Analysis and Graphics, Version 2.10.1 (2009-12-14). The R Development Core Team.
Julio Adisantoso G161090011/STK 9 7 Lampiran Perintah-perintah R yang digunakan untuk analisis data nilai <- read.csv(file= algor.csv, header=true, sep=, ) x <- nilai$nilai par(mfrow = c(1, 2)) hist(x, breaks= Sturges, freq=false, xlab= ) hist(x, breaks=15, freq=false, xlab= ) par(mfrow = c(2, 3)) lebar <- c(0.5, 1, 2, 4, 6, 8) for (i in 1:6) { hist(x, breaks=15, freq=false, xlab= ) lines(density(x, bw=lebar[i]), col= red ) } b <- c( bcv, nrd0, nrd, ucv, SJ-ste, SJ-dpi ) b.h <- c(bw.bcv(x), bw.nrd0(x), bw.nrd(x), bw.ucv(x), bw.sj(x)) judul <- c( Bandwidth:bcv, Bandwidth:nrd0, Bandwidth:nrd, Bandwidth:ucv, Bandwidth:Sj-ste, Bandwidth:SJ-dpi ) par(mfrow = c(2, 3)) for (i in 1:6) { hist(x, breaks=15, xlab=, freq=false, main=judul[i]) lines(density(x, bw=b[i], col= red ) } k <- c( gaussian, epanechnikov, rectangular, triangular, biweight, cosine ) judul <- c( Kernel:GAUSSIAN, Kernel:EPANECHNIKOV, Kernel:RECTANGULAR, Kernel:TRIANGULAR, Kernel:BIWEIGHT, Kernel:COSINE ) par(mfrow = c(2, 3)) for (i in 1:6) { hist(x, breaks=15, xlab=, freq=false, main=judul[i]) lines(density(x, kernel=k[i]), col= red ) }