Відбій Кулбека-Лейблера для двох зразків


10

Я намагався реалізувати числову оцінку дивергенції Куллбека-Лейблера для двох зразків. Для налагодження реалізації намалюйте вибірки з двох нормальних розподілів та .N(0,1)N(1,2)

Для простої оцінки я створив дві гістограми і спробував числово наблизити інтеграл. Я застряг в обробці тих частин гістограми, де бункери однієї гістограми дорівнюють нулю, так що я або закінчую діленням на нуль, або логарифмом нуля. Як вирішити цю проблему?

У мене на думці виникло пов'язане питання: як точно обчислити KL-розбіжність між двома різними рівномірними розподілами? Чи потрібно обмежувати інтеграл до об'єднання підтримки обох дистрибутивів?


Ну, підтримка нормального розподілу - це безліч реальних чисел. У чистому математиці немає жодних проблем, але так, для вашого чисельного наближення вам потрібно переконатися, що розмір вибірки є досить великим щодо регіону, в який ви хочете інтегруватися. Ви не зможете інтегруватись над (-inf, + inf), як можете, в чистому математиці ... Перейти на щось розумне? Якщо у вас більше ніж 3 стандартні відхилення від середнього значення, це буде дуже худим ...
Меттью Ганн

1
Що стосується вашого другого питання, розбіжність KL між двома різними рівномірними розподілами не визначена ( не визначено). Аналогічно, розбіжність KL для двох емпіричних розподілів не визначена, якщо кожен зразок має принаймні одне спостереження з тим же значенням, що і кожне спостереження в іншому зразку. log(0)
jbowman

@jbowman Маленька примітка. Хоча ви праві, що не визначено (або ), в теорії інформації прийнято трактувати як . log(0)log(0)00
Лука Сіті

Аналогічне запитання: mathoverflow.net/questions/119752/…
kjetil b halvorsen

Відповіді:


9

Розбіжність Куллбека-Лейблера визначається як щоб обчислити (оцінити) це з емпіричних даних, нам, можливо, знадобляться деякі оцінки функцій щільності . Таким чином, природним початковим моментом може бути оцінка щільності (а після цього просто числова інтеграція). Наскільки хорошим чи стабільним був би такий метод, я не знаю.

KL(P||Q)=p(x)logp(x)q(x)dx
p(x),q(x)

Але спочатку ваше друге питання, потім я повернусь до першого. Скажімо, і - однакові щільності на та відповідно. Тоді тоді як важче визначити, але наскільки я бачу, єдине розумне значення для цього є , оскільки це передбачає інтегруючи який ми можемо вибрати для інтерпретації як . Ці результати обґрунтовані з інтерпретації, яку я даю в Інтуїції щодо розбіжності Кулбека-Лейблера (KL)pq[0,1][0,10]KL(p||q)=log10KL(q||p)log(1/0)log

Повертаючись до головного питання. Це задається дуже непараметричним чином, і припущення щодо густин не висловлюються. Напевно, потрібні певні припущення. Але якщо припустити, що обидві щільності запропоновані як конкуруючі моделі для одного і того ж явища, ми можемо припустити, що вони мають однаковий домінуючий показник: розбіжність KL між безперервним та дискретним розподілом ймовірностей завжди буде нескінченністю, наприклад. Один документ, що стосується цього питання, такий: https://pdfs.semanticscholar.org/1fbd/31b690e078ce938f73f14462fceadc2748bf.pdf Вони пропонують метод, який не потребує попереднього оцінювання щільності, та аналізують його властивості.

(Є багато інших робіт). Я повернусь і опублікую деякі деталі з цього паперу, ідеї.

 EDIT               

Деякі ідеї цього документу, які стосуються оцінки розбіжності KL із зразками iid із абсолютно неперервних розподілів. Я показую їх пропозицію щодо одновимірних розподілів, але вони дають рішення і для векторів (використовуючи оцінку щільності найближчого сусіда). Для доказів прочитайте папір!

Вони пропонують використовувати версію функції емпіричного розподілу, але лінійно інтерпольовану між точками вибірки, щоб отримати безперервну версію. Вони визначають де - крок функції Heavyyside, але визначений так, що . Тоді ця функція, інтерпольована лінійно (і розширена горизонтально за межі діапазону), є ( для безперервної). Тоді вони пропонують оцінити розбіжність Куллбека-Лейблера за де і

Pe(x)=1ni=1nU(xxi)
UU(0)=0.5Pcc
D^(PQ)=1ni=1nlog(δPc(xi)δQc(xi))
δPc=Pc(xi)Pc(xiϵ)ϵ є числом, меншим за найменший інтервал між зразками.

R код для потрібної нам емпіричної функції розподілу

my.ecdf  <-  function(x)   {
    x   <-   sort(x)
    x.u <-   unique(x)
    n  <-  length(x) 
    x.rle  <-  rle(x)$lengths
    y  <-  (cumsum(x.rle)-0.5) / n
    FUN  <-  approxfun(x.u, y, method="linear", yleft=0, yright=1,
                           rule=2)
    FUN
}          

зауважте, що rleвикористовується для опіки справи з дублікатами в x.

Тоді оцінка розбіжності KL дається по

KL_est  <-  function(x, y)   {
    dx  <-  diff(sort(unique(x)))
    dy  <-  diff(sort(unique(y)))
    ex  <-  min(dx) ; ey  <-  min(dy)
    e   <-  min(ex, ey)/2
    n   <-  length(x)    
    P  <-   my.ecdf(x) ; Q  <-  my.ecdf(y)
    KL  <-  sum( log( (P(x)-P(x-e))/(Q(x)-Q(x-e)))) / n
    KL              
}

Потім я показую невелике моделювання:

KL  <-  replicate(1000, {x  <-  rnorm(100)
                         y <- rt(100, df=5)
                         KL_est(x, y)})
hist(KL, prob=TRUE)

яка дає наступну гістограму, що показує (оцінку) розподілу вибірки цього оцінника:

Розподіл вибірки оцінювача KL

Для порівняння, ми обчислюємо дивергенцію KL у цьому прикладі шляхом числової інтеграції:

LR  <-  function(x) dnorm(x,log=TRUE)-dt(x,5,log=TRUE)
100*integrate(function(x) dnorm(x)*LR(x),lower=-Inf,upper=Inf)$value
[1] 3.337668

хм ... різниця є достатньо великою, що тут є багато для вивчення!


5

Трохи розширюючи відповідь kjetil-b-halvorsen , і вибачте, що не коментую, у мене немає репутації:

  1. У мене є відчуття, що аналітичні обчислення повинні бути (без множення на 100):

LR <- function(x) dnorm(x,log=TRUE)-dt(x,5,log=TRUE) integrate(function(x) dnorm(x)*LR(x),lower=-Inf,upper=Inf)$value

  1. Якщо я маю рацію, оцінювач не сходить до дивергенції KL, але конвергенція зазначена як: . Стрілка представляє собою конвергенцію.D^(P||Q)D^(P||Q)1D(P||Q)

Після внесення цих двох виправлень результати здаються більш реалістичними.


Дякую, я вивчу це питання та оновлю свою відповідь.
kjetil b halvorsen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.