Здається, що повні умови часто бувають досить важкими, але такі програми, як JAGS та BUGS, отримують їх автоматично. Чи може хтось пояснити, як вони алгоритмічно генерують повні умови для будь-якої довільної специфікації моделі?
Здається, що повні умови часто бувають досить важкими, але такі програми, як JAGS та BUGS, отримують їх автоматично. Чи може хтось пояснити, як вони алгоритмічно генерують повні умови для будь-якої довільної специфікації моделі?
Відповіді:
Читаючи коментарі до інших відповідей, я вважаю, що правильна відповідь на питання, яке планувалося задати, "взагалі вони не роблять". Як вже було сказано, вони складають DAG і дивляться на ковдру Маркова, а потім (приблизно) роблять наступне.
Це не зовсім те, що робиться; наприклад, JAGS використовуватиме деякі інші хитрощі для побудови оновлень блоків. Але це повинно дати уявлення про те, що вони роблять.
rjags
, є функція, яка перераховує зразки, які він використовує, щось подібне, list_samplers
але ви можете перевірити звичайну документацію, R
щоб знайти це.
Я не впевнений, чому ви вважаєте, що повних умов важко отримати. Враховуючи повну щільність попередньої ймовірності як для параметрів, так і для даних, повну умовність, скажімо, θ i, задану θ - i, і дані легко отримати: вона просто пропорційна суглобу до параметрів і даних . Інспекцією легко визначити, які елементи θ
Автоматичні пробовідбірники Гіббса проводять цю "перевірку" шляхом розбору специфікації моделі на ймовірнісно орієнтовану ациклічну модель графа . Потім вони обчислюють повні умови, пропорційні повній щільності суглоба