Bagaimana cara menghitung Kullback-Leibler divergence / distance?

10

Saya memiliki tiga set data X, Y dan Z. Setiap set data menentukan frekuensi suatu peristiwa yang terjadi. Sebagai contoh:

Kumpulan Data X: E1: 4, E2: 0, E3: 10, E4: 5, E5: 0, E6: 0 dan seterusnya ..
Kumpulan Data Y: E1: 2, E2: 3, E3: 7, E4: 6, E5: 0, E6: 0 dan seterusnya ..
Kumpulan Data Z: E1: 0, E2: 4, E3: 8, E4: 4, E5: 1, E6: 0 dan seterusnya ..

Saya harus menemukan perbedaan KL antara X dan Y; dan antara X dan Z. Seperti yang dapat Anda lihat untuk beberapa acara akan ada nilai 0 dan non-nol. Untuk beberapa acara, ketiga set data adalah 0.

Saya akan sangat menghargai jika seseorang dapat membantu saya menemukan perbedaan KL untuk ini. Saya tidak terlalu ahli statistik, jadi saya tidak punya banyak ide. Tutorial yang saya cari di internet agak terlalu rumit untuk pemahaman saya.

PS1
sumber

Jawaban:

11

Untuk menjawab pertanyaan Anda, kami harus mengingat definisi divergensi KL :

DKL(Y||X)=i=1Nln(YiXi)Yi

Pertama-tama Anda harus beralih dari apa yang Anda miliki ke distribusi probabilitas. Untuk ini, Anda harus menormalkan data Anda sehingga jumlahnya menjadi satu:

Xi:=Xii=1NXi ; ; Yi:=Yii=1NYiZi:=Zii=1NZi

Kemudian, untuk nilai diskrit kami memiliki satu asumsi yang sangat penting yang diperlukan untuk mengevaluasi KL-divergence dan yang sering dilanggar:

Xi=0 harus menyiratkan .Yi=0

Jika dan sama dengan nol, diasumsikan nol (sebagai nilai batas).XiYiln(Yi/Xi)Yi

Dalam dataset Anda itu berarti Anda dapat menemukan , tetapi tidak misalnya (karena entri kedua).DKL(X||Y)DKL(Y||X)

Apa yang bisa saya sarankan dari sudut pandang praktis adalah:

baik membuat acara Anda "lebih besar" sehingga Anda akan memiliki lebih sedikit nol

atau mendapatkan lebih banyak data, sehingga Anda dapat meliput bahkan peristiwa langka dengan setidaknya satu entri.

Jika Anda tidak dapat menggunakan saran di atas, maka Anda mungkin perlu menemukan metrik lain di antara distribusi. Sebagai contoh,

Informasi timbal balik , didefinisikan sebagai . Di mana adalah probabilitas gabungan dari dua peristiwa.I(X,Y)=i=1Nj=1Np(Xi,Yj)ln(p(Xi,Yj)p(Xi)p(Yj))p(Xi,Yi)

Semoga ini bisa membantu.

Dmitry Laptev
sumber
0

masukkan deskripsi gambar di sini

Anda mungkin ingin mengatur \ epsilon ke beberapa nilai yang sangat kecil 0,00001 (katakanlah) dan teruskan dengan nilai-nilai yang tidak nol untuk semua Probabilitas dan hitung skor KL.

Tolong beri tahu saya jika ini berhasil.

Kalidas Y
sumber
2
Bisa tolong tambahkan kutipan yang sesuai untuk gambar terlampir, jika ini bukan milik Anda (jika tidak, Anda dapat menggunakan untuk mengesetnya), dan juga menunjukkan bagaimana itu berlaku untuk masalah spesifik yang dihadapi? (OP dengan jelas menyatakan bahwa ia tidak terlalu berpengalaman dalam statistik matematika.)LATEX
chl