Я пытаюсь подобрать иерархическую модель, используя jags и пакет rjags. Моя переменная результата - у, которая представляет собой последовательность испытаний Бернулли. У меня есть 38 человек, которые выступают в двух категориях: P и M. На основании моего анализа, у каждого выступающего есть вероятность успеха в категории P из и вероятность успеха в категории M из . Я также предполагаю, что есть некоторый гиперпараметр на уровне сообщества для P и M: и .θ p × θ mμ m
Итак, для каждого докладчика: и где и управляют тем, насколько является распределение вокруг и .θ м ~ б е т в ( μ м × κ м , ( 1 - μ м ) × κ м ) каппа р κ m μ p μ m
Также , .μ m ∼ b e t a ( A m , B m )
Вот моя модель зазубрин:
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
сходимся к отдельным значениям. Я работал с четырьмя цепочками, и каждая цепочка не имеет одинакового значения, но внутри каждой цепочки есть только одно значение.
Я довольно новичок в подборе иерархических моделей с использованием методов MCMC, поэтому мне интересно, насколько это плохо. Должен ли я принять это как знак того, что эта модель безнадежно подходит, что что-то не так с моими приоры, или это нормально?
Редактировать: В случае, если это имеет значение, значение для к оно сходилось (усреднено по цепочкам), было 0,91, а - 1,78κ м
источник
Ответы:
Это скорее комментарий, но так как у меня недостаточно репутации, я бы тоже мог ответить.
Из моего ограниченного опыта работы с пробоотборниками MCMC я заметил, что параметры имеют тенденцию оставаться неизменными, когда гиперпараметры слишком узкие. Поскольку они контролируют распространение параметров, они препятствуют эффективной выборке пространства решения.
Попробуйте взять большие значения для гиперпараметров и посмотрите, что произойдет.
Этот технический документ помог мне понять семплеры MCMC. Он состоит из двух сэмплеров, Gibbs (тот, который вы используете) и Hybrid Monte Carlo, и быстро объясняет, как выбирать априоры, гиперприоры и значения для параметров и гиперпараметров.
источник
Это может быть проблемой структуры цепи. От того, где вы окажетесь, зависит, с чего вы начнете. Чтобы использовать MCMC, вы хотите, чтобы цепочка была повторяющейся, что означает, что независимо от того, с чего вы начинаете, вы можете перейти в любое другое состояние в пространстве состояний. Если цепочка не повторяется, вы можете попасть в подмножество пространства состояний. Идея MCMC состоит в том, чтобы иметь существующее стационарное распределение, в котором цепочка в конечном итоге окажется. Это стационарное распределение обычно имеет положительную вероятность оказаться в каком-либо из состояний в цепочке, а не попасть в ловушку в одной точке, как вы описали , Я не могу проверить ваш алгоритм, но, возможно, у вас есть ошибка в нем. Также возможно, что вы определили проблему, когда ваша цепь Маркова не повторяется.
Если вы хотите получить знания в MCMC, я рекомендую вам взглянуть на «Справочник цепи Маркова Монте-Карло», в котором есть статьи, описывающие каждый аспект MCMC. Он был опубликован CRC Press в 2011 году.
источник