MCMC, що сходяться до одного значення?


13

Я намагаюся підігнати ієрархічну модель за допомогою джегів та пакету rjags. Моя змінна результат - y, яка є послідовністю випробувань Бернуллі. У мене є 38 людських предметів, які виступають у двох категоріях: P і M. На основі мого аналізу кожен оратор має ймовірність успіху в категорії P та ймовірність успіху в категорії M . Я також припускаю, що існує деякий гіперпараметр рівня спільноти для P і M: та .θ p × θ m µ p µ mθpθp×θmμpμm

Отже, для кожного оратора: та де та контролюють те, як досягнуто максимального розподілу навколо та .θ mb e t a ( μ m × κ m , ( 1 - μ m ) × κ m ) κ p κ m μ p μ mθpbeta(μp×κp,(1μp)×κp)θmbeta(μm×κm,(1μm)×κm)κpκmμpμm

Також , .μ mb e t a ( A m , B m )μpbeta(Ap,Bp)μmbeta(Am,Bm)

Ось моя модель джегів:

model{
## y = N bernoulli trials
## Each speaker has a theta value for each category
for(i in 1:length(y)){
    y[i] ~ dbern( theta[ speaker[i],category[i]])
}

## Category P has theta Ptheta
## Category M has theta Ptheta * Mtheta
## No observed data for pure Mtheta
##
## Kp and Km represent how similar speakers are to each other 
## for Ptheta and Mtheta
for(j in 1:max(speaker)){
    theta[j,1] ~ dbeta(Pmu*Kp, (1-Pmu)*Kp)
    catM[j] ~ dbeta(Mmu*Km, (1-Mmu)*Km)
    theta[j,2] <- theta[j,1] * catM[j]
}

## Priors for Pmu and Mmu
Pmu ~ dbeta(Ap,Bp)
Mmu ~ dbeta(Am,Bm)

## Priors for Kp and Km
Kp ~ dgamma(1,1/50)
Km ~ dgamma(1,1/50)

## Hyperpriors for Pmu and Mmu
Ap ~ dgamma(1,1/50)
Bp ~ dgamma(1,1/50)
Am ~ dgamma(1,1/50)
Bm ~ dgamma(1,1/50)
}

Проблема в мені полягає в тому, що коли я запускаю цю модель з 5000 ітерацій для адаптації, то беру 1000 зразків Mmuі Kmконвергую до єдиних значень. Я працював із 4 ланцюжками, і кожен ланцюг не має однакового значення, але всередині кожного ланцюга є лише одне значення.

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

Редагувати: Якщо це має значення, значення для він сходився (усереднено по ланцюгах), становило 0,91, а - 1,78κ мμmκm


Якщо я правильно вас розумію, ці параметри «сходяться» на одному фіксованому значенні в кожному ланцюжку (після деяких ітерацій воно зовсім не змінюється), але це значення відрізняється для кожного ланцюга, який ви запустите? Це звучить погано, як, можливо, дійсно хитрий крок Метрополіс Гастінгс. Це може бути ваша модель, це може бути JAGS, це може бути комбінація обох. Імовірно, ця модель не забирає занадто багато часу, щоб підходити, тому я б спробував спочатку запустити (набагато) довші ланцюги, особливо для адаптаційного періоду.
JMS

Отже, я оновив модель ще на 5000 ітерацій, і параметри, про які йдеться, не зрушуються з місця. Я не здогадувався, що вони можуть потрапити до таких мінімумів.
JoFrhwld

1
швидкі дози: 1. Спробуйте використовувати dbin, при цьому n = 1. І використовуйте межі для обмеження значення р. Щось подібне: p.bound [i] <- max (0, хв (1, p [i]))
Manoel Galdino

1
Кілька уточнюючих питань: 1. у вас є 38 предметів під категорією P та 38 предметів під категорією M, наприклад, довжина (y) = 76? 2. Чи могли б ви дати більше довідкової інформації про обґрунтування гіперпараметрів та експерименту? Це трохи заплутано для мене.
Маноел Галдіно

1
Я, мабуть, просто зафіксував би всі гіперпараметри, як у theta [j, 1] ~ dbeta (1.1, 1.1) чи щось таке, і подивимося, які результати ви отримуєте, перш ніж спробувати перейти до гіперприор. Крім того, пріоритет theta [j, 2] - це добуток двох бетас, що взагалі не є бета-версією, і, звичайно, theta [j, 2] <theta [j, 1] в результаті. Схоже, ти це задумав; просто з цікавості, чому?
jbowman

Відповіді:


2

Це більше коментар, але оскільки у мене недостатньо репутації, я б також міг відповісти.

З мого обмеженого досвіду з пробовідбірниками MCMC, я помітив, що параметри, як правило, залишаються фіксованими, коли гіперпараметри занадто вузькі. Оскільки вони контролюють поширення параметрів, вони перешкоджають ефективному відбору проб простору розчину.

Спробуйте взяти великі значення для гіперпараметрів і подивіться, що відбувається.

Цей технічний документ мені дуже допоміг зрозуміти пробовідбірники MCMC. Він складається з двох пробовідбірників, Гіббса (того, яким ви користуєтесь), і гібридного Монте-Карло, і швидко пояснюється, як вибрати пріори, гіперпріори та значення для параметрів та гіперпараметрів.


0

Це може бути проблемою структури ланцюга. Де ви опинитесь, залежить від того, з чого ви почнете. Щоб використовувати MCMC, ви хочете, щоб ланцюг був повторюваним, це означає, що незалежно від того, з чого ви запускаєтесь, ви можете потрапити до будь-якого іншого стану в просторі станів. Якщо ланцюг не повторюється, ви можете потрапити в підмножину простору станів. Ідея MCMC полягає в тому, щоб мати існуючий стаціонарний розподіл, в який ланцюг з часом згортається. Цей стаціонарний розподіл зазвичай має позитивну ймовірність перебування в будь-якому з станів ланцюга і не заводитися в пастку в одній точці, як ви описали . Я не можу перевірити ваш алгоритм, але, можливо, ви помилилися в ньому. Можливо також, що ви визначили проблему, коли ланцюг вашого Маркова не повторюється.

Якщо ви хочете ознайомитись з MCMC, я рекомендую ознайомитись з Посібником ланцюга Маркова Монте-Карло, в якому є статті, що описують усі аспекти MCMC. Він був опублікований CRC Press у 2011 році.

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