penaksiran fungsi densitas untuk suatu data dengan penaksir kernel

advertisement
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 i1  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 wu   2



 0,
n
1
1  x  X i 
sehingga : fˆ  x  w 

n i1 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 i1  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
Download