Малюнок із розподілу Діріхле


25

Скажімо , у нас є розподіл Діріхле з - мірного векторного параметра & alpha ; = [ & alpha ; 1 , & alpha ; 2 , . . . , α K ] . Як я можу зробити з цього розподілу зразок ( K- розмірний вектор)? Мені потрібно (можливо) просте пояснення.Кα=[α1,α2,...,αК]К

Відповіді:


25

Спочатку намалюйте незалежних випадкових зразків y 1 , , y K з розподілів Gamma, кожен з щільністюКу1,,уК

Гамма(αi,1)=уiαi-1е-уiΓ(αi),

а потім встановити

хi=уij=1Куj.

Тепер, буде слідувати розподілу Діріхлех1,...,хК

Сторінка Вікіпедії в дирихлетському дистрибуції розповідає вам, як саме відібрати вибір з дистрихлетського дистрибутива.

Також у Rбібліотеці MCMCpackє функція вибірки випадкових змінних з розподілу Діріхле.


2
Реалізація функції для випадкового генерування від Dirichlet
Tim

2

Простий метод (в той час як не точний) полягає у використанні того факту, що малювання розподілу Діріхле еквівалентно експерименту урни Полі. (Малюючи з набору кольорових кульок і кожного разу, коли ви малюєте кульку, ви кладете її назад в урну з другою кулькою того ж кольору)

αi

Потім :

повторити N разів

αi

αi

кінець повторити

α

Якщо я не помиляюся, цей метод є асимптотично точним. Але оскільки N є кінцевим, ви НІКОЛИ не будете малювати деякі розподіли з дуже невеликими попередніми ймовірностями (тоді як ви повинні малювати їх з дуже малою частотою). Я думаю, що це може задовольнити в більшості випадків N = K.10.


Я підозрюю, що такий спосіб np.random.dirichletреалізований, оскільки він генерує точні нулі у вибіркових векторах ймовірності, хоча такі вектори не належать до жодної підтримки Диріхле. Ось що мене тут привело.
Елі Корвіго
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.