PENAKSIRAN FUNGSI DENSITAS UNTUK SUATU DATA DENGAN PENAKSIR KERNEL Netty Sunandi R. Alam Malau ABSTRACT One of the estimating of density function which has been recognized is histogram. Histogram has some weaknesses, i.e. the different starting points and the width of class intervals. Different starting points or different class intervals result different histogram forms. This article is about the estimating of the density function by using kernel function. This method does not require the determination starting points and the interval class width. The obtained curve has a smooth density function, a small sampling variance, and the important information from data are still kept. Keywords : kernel function, oversmoothing, cross validation, Schwartz Bayesian Criterion PENDAHULUAN Fungsi densitas merupakan suatu konsep dasar dalam statistika yaitu sebagai penentu besar probabilitas untuk suatu selang yang diberikan. b Misalnya: P(a < X < b) = f x dx , di mana f(x) ialah fungsi densitas dari peubah acak X. a Dalam praktek fungsi densitas dari suatu peubah acak tidak diketahui, jadi perlu ditaksir. Pada penaksiran fungsi densitas secara parametrik diperlukan asumsi mengenai distribusi suatu peubah acak (misalnya distribusi normal, gamma) dan yang ditaksir ialah parameter-parameter dari distribusi tersebut dengan menggunakan data tentang peubah acaknya. Sedangkan penaksiran fungsi densitas secara nonparametrik (yang akan dibahas di sini) tidak memerlukan asumsi mengenai distribusi, data diperbolehkan berbicara mengenai dirinya sendiri. Pendekatan ini digunakan jika tidak ada informasi yang tepat mengenai bentuk dari fungsi densitas yang sebenarnya. Taksiran fungsi densitas yang diperoleh diharapkan dapat menggambarkan keadaan data tersebut. Penaksir tersebut dapat memberikan petunjuk mengenai kemiringan, modus ganda, variansi, klasifikasi dari suatu peubah acak.[5] Tujuan penaksiran fungsi densitas ini ialah untuk mendapatkan kurva fungsi densitas yang merupakan kurva mulus dengan variansi sampling tidak besar dan informasi penting dari data tidak hilang. Sunandi, N., & Malau, A. Penaksiran Fungsi Densitas Untuk Suatu.. . Salah satu penaksiran fungsi densitas yang sudah dikenal ialah histogram. Histogram mempunyai beberapa kelemahan yaitu bentuknya dipengaruhi oleh pemilihan titik awal dan lebar interval kelas. Dengan titik awal yang berbeda akan didapat bentuk histogram yang berbeda, begitu pula dengan lebar interval kelas yang berbeda. Juga karena histogram mempunyai bentuk yang tidak kontinu pada batas kelas, sedangkan fungsi densitas yang sebenarnya merupakan fungsi yang kontinu, maka di sini akan dibahas penaksiran fungsi densitas yang memberikan suatu fungsi yang kontinu. Salah satunya ialah penaksiran fungsi densitas dengan metode kernel. Penaksir kernel untuk suatu fungsi densitas dari peubah acak X berbentuk 1 n x X i fˆn x K , dengan x = suatu nilai tertentu, Xi = peubah acak yang independen dan nh i1 h berdistribusi identik, K(.) = fungsi kernel, n = besar sampel (banyak data), h = lebar bandwith. Penaksir ini tidak bergantung kepada pemilihan titik awal tetapi bergantung kepada h, sehingga supaya didapat penaksir fungsi densitas yang baik, maka pemilihan h menjadi penting. Pemilihan h optimal akan ditentukan dengan memperhatikan fungsi validasi silang. [3] Setelah h optimal dirumuskan secara teoretis, penghitungan h optimal untuk suatu data yang diberikan didapat dengan bantuan komputer di mana di sini akan digunakan program S-plus. Kemudian dapat dibuat penaksiran fungsi densitasnya.([1],[2]) Penaksir Kernel Jika peubah acak X mempunyai fungsi densitas f, maka 1 2h f x lim P x h X x h fi , di mana n ialah besar sampel dengan peubah acak X1,X2,…,Xn n dan fi ialah banyak Xi yang ada dalam selang (x-h,x+h). Sehingga suatu penaksir untuk f dapat 1 banyak X ijˆ x h, x h dengan memilih h yang kecil. ditentukan sebagai fˆ x 2hn fˆ x ini disebut penaksir naïf.[5] P(x-h < X < x+h) ditaksir dengan 1 , ˆ Jika f x dinyatakan dengan fungsi bobot w, maka wu 2 0, n 1 1 x X i sehingga : fˆ x w n i1 h h jika u 1 jika u 1 Penaksir naif menghasilkan fˆ y ang tidak kontinu (ada tangga-tangga). Kesulitan ini diatasi dengan mengganti fungsi w dengan fungsi K yang memenuhi: K t dt 1 dan K simetris terhadap titik 0. 25 Jurnal Matematika, Saint, dan Teknologi, Volume 4, Nomor 1, Maret 2003, 24-34 Untuk mendapat fˆ yang kontinu dipilih K yang kontinu. Contoh kernel adalah fungsi densitas Gaussian : K u 1 1 exp u 2 , Y < U < Y 2 2π Jadi didapat penaksir kernel untuk suatu fungsi densitas f : 1 n x X i fˆ x K nh i1 h dengan x = suatu nilai tertentu, Xi = peubah acak yang independen dan berdistribusi identik, K(.) = fungsi kernel, n = besar sampel (banyak data), h = lebar pita (bandwith). Integral dari fˆ x h x yaitu fˆn x dx 1 , sehingga fˆh x merupakan suatu fungsi densitas. Karena penaksir kernel dijabarkan dari penaksir naïf, maka penaksir kernel tidak bergantung kepada pemilihan titik awal. Dalam penaksir kernel terdapat dua parameter yaitu h yang juga disebut lebar pita (bandwith) dan fungsi kernel K. Secara teoritis [3] dapat dijelaskan bahwa dengan menggunakan fungsi kernel yang berbeda bentuk global dari taksiran fungsi densitas suatu data ialah sama. Sedangkan perubahan h mempengaruhi bentuk global dari taksiran fungsi densitas. Jadi penentuan h menjadi penting. Validasi Silang (Cross Validation) Akan ditentukan bagaimana menentukan h optimal yang dapat digunakan dalam praktek. Di sini akan dibahas dua macam validasi silang, yaitu :[3] 1. Validasi silang dengan memaksimumkan fungsi kemungkinan (validasi silang Kulback Liebler). 2. Validasi silang kuadrat terkecil. Untuk yang pertama, mula-mula ingin diuji: H0 : h(x) = f(x) terhadap H1 : h(x)1 f(x) untuk suatu h tertentu. Akan digunakan uji ratio kemungkinan (likelihood ratio test) f(x)/ ini dekat dengan satu. Jadi E[log E[log (x)] = ò log h(x) . Untuk h yang baik, statistik (x)] dekat dengan 0. (x) f(x) dx dikenal sebagai informasi Kulback-Liebler. Informasi Kulback-Liebler ini memenuhi sifat-sifat suatu jarak sehingga dinotasikan dengan dKL(f, h) dan dKL(f, h) ini tidak dapat dihitung dari data, karena fungsi densitas f(x) tak diketahui. Tetapi dapat disimpulkan bahwa jika dKL(f, yang meminimumkan dKL(f, h) dekat nol, maka H0 benar. Oleh karena itu akan dicari h h). 26 Sunandi, N., & Malau, A. Penaksiran Fungsi Densitas Untuk Suatu.. . Misalkan bahwa ada observasi-observasi tambahan X1,X2,…,Xn yang independen. Fungsi kemungkinan (likelihood function) untuk observasi-observasi tersebut ialah: f(X1).f(X2)…f(Xn). Taksiran dari fungsi kemungkinan di atas ialah : h(X1). h(X2) … h(Xn) = Tetapi biasanya tidak ada observasi-observasi tambahan dari suatu data yang diberikan. Cara mengatasi penentuan ialah dengan menggantinya dengan h(Xi) h,,i(Xi) = yaitu satu observasi untuk prediksi dan (n-1)observasi sisanya untuk menaksir. Taksiran seperti ini disebut validasi silang (cross validation = CV) atau leave-one-out estimate. Jadi fungsi kemungkinan ditaksir dengan : = Jika statistik ini diambil logaritmanya, kemudian dikalikan dengan 1/n didapat CVKL(h) = = log {log( h,i(Xi) )} - {log(n-1)h} h optimal ialah yang h yang memaksimumkan CVKL(h) dengan alasan sebagai berikut: E[CVKL(h)] = E[log = ò [log = - dKL(f, h,i(Xi)] h) h,i(Xi)] f(x) dx + ò [logf(x)]f(x) dx Suku ke dua tidak bergantung kepada h, sehingga nilai h yang membuat : Maks CVKL(h) = Maks E[CVKL(h)] = Min dKL(f, h). Untuk yang kedua, tinjau integrasi dari kuadrat kesalahan Squared Error) dari h : ISE(h) = d1(h) =ò( =ò h h 2 h terhadap f yaitu ISE (Integrated -f )2(x) dx (x) dx - 2ò ( h f )(x) dx + ò f 2(x) dx Suku pertama dihitung dari data, suku ketiga tidak bergantung kepada h, jadi suku kedua ialah satusatunya suku yang harus ditaksir dari data. Nilai h yang optimal ialah nilai h yang meminimumkan ISE(h). Nilai h optimal tersebut membuat: 27 Jurnal Matematika, Saint, dan Teknologi, Volume 4, Nomor 1, Maret 2003, 24-34 Min ISE(h) = Min {d1(h) - ò f 2(x) dx} = Min { ò ò( h h 2 (x) dx - 2ò ( h f )(x) dx} f )(x) dx dapat dinyatakan sebagai E[ Sehingga sebagai taksiran dari E[ h(x) h(x) ]. ] diambil Jadi nilai h yang optimal akan meminimumkan : CVLS(h) = ò . 2 h (x) dx - Terlalu mulus (Oversmoothing) [4] Suatu batas atas untuk h optimal dengan kernel Gaussian ialah : hos = 1.144 s n-1/5 Lebar pita terbaik Lebar bandwith h yang terbaik merupakan nilai minimum antara hopt dan hos. Lebar pita terbaik ini menjadi lebar bandwith untuk menaksir fungsi densitas suatu data. Penggunaan Penaksiran suatu fungsi densitas akan ditentukan yaitu dengan menggambarkan kurva penaksiran fungsi densitasnya dengan menggunakan program S-plus.([1], [2]) Untuk menaksir fungsi densitas dengan penaksir kernel perlu ditentukan lebar bandwith (=h) yang sesuai. Karena itu dibuat fungsi validasi silang dengan program S-plus. Dalam validasi silang Kulback-Liebler ditentukan hopt yang memaksimumkan fungsi validasi silangnya. Sedangkan dalam validasi silang kuadrat terkecil tentukan hopt yang meminimumkan validasi silangnya. Kemudian bandingkan hopt tersebut dengan hos. Pilih h yang merupakan minimum antara hopt dan hos. Lebar bandwith terbaik ini menjadi lebar pita untuk menaksir fungsi densitas suatu data. Menentukan suatu fungsi densitas untuk suatu data Setelah memperoleh taksiran fungsi densitas suatu data, langkah selanjutnya adalah menentukan fungsi densitasnya, dengan kata lain menentukan parameter-parameternya. Dengan mengacu pada kurva taksiran fungsi densitas dan membandingkannya dengan kurva fungsi densitas (teoretis) dari distribusi yang sudah dikenal, dapat ditentukan kandidat-kandidat distribusi dari suatu data. Seleksilah kandidat-kandidat tersebut dengan PP dan QQ plot. 28 Sunandi, N., & Malau, A. Penaksiran Fungsi Densitas Untuk Suatu.. . Untuk kandidat-kandidat yang masuk seleksi akan ditentukan taksiran parameternya secara parametrik. Taksiran titik dari parameter-parameter suatu fungsi densitas dapat ditentukan dengan metode momen dan metode maksimum likelihood. Jadi akan didapat sekelompok fungsi densitas yang dapat dijadikan kandidat dari fungsi densitas yang akan dicari. Yang dibutuhkan sekarang ialah menentukan pilihan pada suatu fungsi densitas yang paling tepat. Salah satunya adalah menggunakan salah satu uji "Goosness of fit" yaitu uji Kolmogorov Smirnov. Uji Kolmogorov-Smirnov Misalkan akan diuji : H0 : H1 : tidak demikian , dengan adalah fungsi tangga sehingga untuk maksimum akan diperoleh pada titik lompatan nilai dari tabel sebagai berikut : Tingkat Signifikansi kontinu, nilai . Maksimum Dn dibandingkan dengan Nilai Kritis 0.20 1.07/ 0.10 1.22/ 0.05 1.36/ 0.01 1.63/ Ho ditolak jika Dn > Nilai kritis Jika fungsi densitas yang satu lebih sederhana dari yang lain yaitu jika yang satu mempunyai banyak parameter berbeda dengan yang lain maka digunakan Uji Ratio Likelihood kemudian NLL(negative log likelihood) dikoreksi dengan 'penalty'. Uji likelihood ratio ialah suatu uji yang menguji Ho : distribusi yang lebih sederhana lebih baik (I) H1 : distribusi yang lebih kompleks lebih baik (II) Statistik Uji yang digunakan adalah : X2 = 2 Dengan NLL = negative log likelihood yaitu negatif dari besarnya fungsi likelihood pada titik maksimum, = beda banyaknya parameter pada I dan II. 29 Jurnal Matematika, Saint, dan Teknologi, Volume 4, Nomor 1, Maret 2003, 24-34 Ho ditolak jika X 2 > nilai tabel. Besarnya 'penalty' untuk NLL adalah r log (n / 2p ) dengan r adalah banyaknya parameter dan n adalah ukuran sampel. Metode ini dikenal dengan Schwartz Bayesian Criterion (SBC) Contoh: Dengan n = 217, suatu data mempunyai kandidat sebagai berikut: Model Inverse exponential Lognormal Burr NLL 520,27 498,29 498,41 Penalty 3,54 7,08 10,63 Score 523,81 505,37 509,04 Dalam contoh ini dapat disimpulkan bahwa data berdistribusi lognormal. KESIMPULAN Berdasarkan uraian di atas maka dapat disimpulkan bahwa untuk mencari fungsi densitas yang terbaik perhatikan : Taksir terlebih dahulu fungsi densitas dan tentukan kandidat-kandidat fungsi densitas teoretis. Kemudian bandingkan taksiran fungsi densitas dengan kandidat. NLL (makin kecil makin bagus) Nilai dari Statistik Uji Kolmogorov Smirnov (makin kecil makin bagus) REFERENSI 1. Becker, R. A., Chamber, J.M. 1988. The New S Language. Bell Telephone Laboratories, Inc., Murray Hill, New Yersey. 2. Elan Computer Group . 1993. S-plus User’s Manual Version 3.2. Math. Soft. Inc., Seattle. 3. Hardle,W. 1991. Smoothing Techniques. Springer-Verlag, New York. 4. Scott, D.W. 1992. Multivariate Density Estimation. John Wiley, New York. 5. Silverman,B.W. 1986. Density Estimation for Statistics and Data Analysis. Chapman and Hall, London. 6. Hogg, R. V., and Klugman, S. A. 1984. Loss Distributions. Library of Congress Cataloging in Publications Data. Lampiran: Contoh Penggunaan Suatu data berukuran n=35. 30 Sunandi, N., & Malau, A. Penaksiran Fungsi Densitas Untuk Suatu.. . 6766 7123 10562 14474 15351 16983 18383 19030 25304 29112 30146 33727 40596 41409 47905 49397 52600 59917 63123 77809 102942 103217 123680 140136 192013 198446 227338 329511 361200 421680 513586 545778 750389 863881 1638000 Penaksiran Fungsi Densitas dengan Program S-PLUS #Masukkan data yang ada di "a:\data.txt". > X <- scan("a:/data.txt") #Untuk mengurutkan data : > X <- sort(X) #Menghitung nilai batas atas h (= hos) : > s <- sqrt(var(X)) > hend <- 1.144*s*(length(X)^(-0.2)) > hend #Masukkan function Kulback dan densitas : > kulb<-function(X,h) +{ + cvkl<-1:length(h) + jum<-1:length(X) + a<-1:length(X) + for(j in 1:length(h)) +{ + for(i in 1:length(X)) +{ + d<-(X[i]-X)/h[j] + K<-dnorm(d) + jum[i]<-sum(K)-dnorm(0) + a[i]<-log(jum[i]) +} + n<-length(X) + cvkl[j]<-(sum(a)/n)-log((n-1)*h[j]) +} 31 Jurnal Matematika, Saint, dan Teknologi, Volume 4, Nomor 1, Maret 2003, 24-34 + cvkl +} > densitas<- function(x,h,X) + {K<-0 + for(i in 1:length(X)) + {K<-K+dnorm((X[i]-x)/h)} + fh<-K/(length(X)*h) + fh} #Masukkan nilai nilai h : > h <- 1:20 >h #Mencari nilai h optimal dari CVKL(h) yang dinamakan hmax : > m <- kulb(X,h) > cbind(m,h) > max(m) > hmax <- 10 #Karena nilai hmax lebih kecil dari pada hend maka untuk membuat fungsi #densitas digunakan nilai hmax. #Menentukan nilai x yang akan dicari nilai fungsi densitasnya : > lb <- (max(X)+1-min(X)+1)/30 > x <- min(X)-1+lb*c(0:30) >x #Bandingkan dengan nilai data : >X Menentukan nilai nilai fungsi densitas dari x : > fd <- densitas(x,hmax,X) Membuat grafik fungsi densitas dengan metode Kulback Liebler : > win.graph() > plot(x,fd,type="l",main="Taksiran Fungsi Densitas dengan Kulback") > 32 Sunandi, N., & Malau, A. Penaksiran Fungsi Densitas Untuk Suatu.. . #Masukkan function CVLS : > cvls<-function(X,h) +{ + m<-length(h) + cv<-rep(0,m) + n<-length(X) + n1<-n-1 + nn1<-2+(2/n1) + for(i in 1:n1) +{ + for(j in (i+1):n) +{ + d<-X[j]-X[i] + for(k in 1:m) +{ + dh<-d/h[k] + cv[k]<-cv[k]+dnorm(dh,0,1.414)-(dnorm(dh)*nn1) +}}} + for(k in 1:m) +{ + cv[k]<-cv[k]+(dnorm(0,0,1.414)*n*0.5) 33 Jurnal Matematika, Saint, dan Teknologi, Volume 4, Nomor 1, Maret 2003, 24-34 + cv[k]<-cv[k]*2/(n*n*h[k]) +} + cv } #Mencari nilai h optimal dengan meminimumkan CVLS(h) yang dinamakan #hmin : > p <-cvls(X,h) > cbind(p,h) > min(p) > hmin <- 9 #Membuat grafik fungsi densitas dengan metode kuadrat terkecil : > win.graph() > pdf <- densitas(x,hmin,X) > plot(x,pdf,main="Taksiran Fungsi Densitas dengan LS") 34