Как рассчитать расхождение / расстояние Кульбака-Лейблера?

10

У меня есть три набора данных X, Y и Z. Каждый набор данных определяет частоту происходящего события. Например:

Набор данных X: E1: 4, E2: 0, E3: 10, E4: 5, E5: 0, E6: 0 и т. Д.
Набор данных Y: E1: 2, E2: 3, E3: 7, E4: 6, E5: 0, E6: 0 и т. Д.
Набор данных Z: E1: 0, E2: 4, E3: 8, E4: 4, E5: 1, E6: 0 и т. Д.

Я должен найти KL-расхождение между X и Y; и между X и Z. Как видите, для некоторых событий будут 0 и ненулевые значения. Для некоторых событий все три набора данных равны 0.

Я был бы признателен, если кто-то может помочь мне найти дивергенцию KL для этого. Я не большой статистик, поэтому понятия не имею. Уроки, которые я просматривал в Интернете, были слишком сложными для моего понимания.

PS1
источник

Ответы:

11

Чтобы ответить на ваш вопрос, мы должны вспомнить определение дивергенции KL :

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

Прежде всего вы должны перейти от того, что у вас есть к вероятностным распределениям. Для этого вам следует нормализовать ваши данные так, чтобы они суммировали до одного:

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

Затем для дискретных значений у нас есть одно очень важное предположение, которое необходимо для оценки KL-дивергенции и которое часто нарушается:

Xi=0 должно подразумевать .Yi=0

В случае, когда и равны нулю, считается равным нулю (в качестве предельного значения).XiYiln(Yi/Xi)Yi

В вашем наборе данных это означает, что вы можете найти , но не, например, (из-за второй записи).DKL(X||Y)DKL(Y||X)

Что я мог бы посоветовать с практической точки зрения:

либо сделайте ваши события "более крупными", чтобы у вас было меньше нулей

или получить больше данных, так что вы будете покрывать даже редкие события хотя бы одной записью.

Если вы не можете использовать ни один из приведенных выше советов, то вам, вероятно, потребуется найти другой показатель между распределениями. Например,

Взаимная информация , определяемая как . Где - совместная вероятность двух событий.p(Xi,Yi)I(X,Y)=i=1Nj=1Np(Xi,Yj)ln(p(Xi,Yj)p(Xi)p(Yj))p(Xi,Yi)

Надеюсь, это поможет.

Дмитрий Лаптев
источник
0

введите описание изображения здесь

Возможно, вы захотите установить \ epsilon на очень маленькое значение 0,00001 (скажем) и продолжить с ненулевыми значениями для всех вероятностей и рассчитать баллы KL.

Пожалуйста, дайте мне знать, если это работает.

Калидас Y
источник
2
Не могли бы вы добавить соответствующую ссылку для прикрепленного изображения, если оно не ваше (в противном случае вы можете использовать для его набора), а также указать, как оно применяется к конкретной проблеме? (ОП четко заявил, что он не слишком разбирается в математической статистике.)LATEX
chl