MCMC сходится к одному значению?


13

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

Итак, для каждого докладчика: и где и управляют тем, насколько является распределение вокруг и .θ м ~ б е т в ( μ м × κ м , ( 1 - μ м ) × κ м ) каппа р κ 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сходимся к отдельным значениям. Я работал с четырьмя цепочками, и каждая цепочка не имеет одинакового значения, но внутри каждой цепочки есть только одно значение.

Я довольно новичок в подборе иерархических моделей с использованием методов MCMC, поэтому мне интересно, насколько это плохо. Должен ли я принять это как знак того, что эта модель безнадежно подходит, что что-то не так с моими приоры, или это нормально?

Редактировать: В случае, если это имеет значение, значение для к оно сходилось (усреднено по цепочкам), было 0,91, а - 1,78κ мμmκm


Если я вас правильно понимаю, эти параметры «сходятся» на одно фиксированное значение в каждой цепочке (после некоторых итераций оно вообще не меняется), но это значение отличается для каждой цепочки, которую вы запускаете? Звучит плохо, как, может быть, действительно дурацкий шаг Метрополиса Гастингса. Это может быть ваша модель, это может быть JAGS, это может быть комбинация обоих. Предположительно, эта модель не займет много времени, поэтому я постараюсь сначала запустить (намного) более длинные цепи, особенно в период адаптации.
JMS

Итак, я обновил модель еще на 5000 итераций, и рассматриваемые параметры не сдвинулись с места. Я не понимал, что они могут попасть в локальные минимумы, как это.
JoFrhwld

1
быстрые sugesstions: 1. Попробуйте использовать dbin, с n = 1. И использовать границы, чтобы ограничить значение р. Примерно так: p.bound [i] <- max (0, min (1, p [i]))
Маноэль Гальдино

1
Пара уточняющих вопросов: 1. У вас есть 38 предметов в категории P и 38 предметов в категории M, например, длина (y) = 76? 2. Не могли бы вы дать дополнительную справочную информацию об обосновании гиперпараметров и эксперимента? Это немного смущает меня.
Маноэль Гальдино

1
Вероятно, я бы просто исправил все гиперпараметры, как в theta [j, 1] ~ dbeta (1.1, 1.1) или что-то еще, и посмотрел бы, какие результаты вы получите, прежде чем пытаться перейти к гиперприору. Кроме того, предшествующее значение тэты [j, 2] является продуктом двух бета-версий, которые, как правило, не являются самой бета-версией, и, конечно, в результате тэта [j, 2] <тета [j, 1]. Похоже, вы хотели это; просто из любопытства, почему?
Jbowman

Ответы:


2

Это скорее комментарий, но так как у меня недостаточно репутации, я бы тоже мог ответить.

Из моего ограниченного опыта работы с пробоотборниками MCMC я заметил, что параметры имеют тенденцию оставаться неизменными, когда гиперпараметры слишком узкие. Поскольку они контролируют распространение параметров, они препятствуют эффективной выборке пространства решения.

Попробуйте взять большие значения для гиперпараметров и посмотрите, что произойдет.

Этот технический документ помог мне понять семплеры MCMC. Он состоит из двух сэмплеров, Gibbs (тот, который вы используете) и Hybrid Monte Carlo, и быстро объясняет, как выбирать априоры, гиперприоры и значения для параметров и гиперпараметров.


0

Это может быть проблемой структуры цепи. От того, где вы окажетесь, зависит, с чего вы начнете. Чтобы использовать MCMC, вы хотите, чтобы цепочка была повторяющейся, что означает, что независимо от того, с чего вы начинаете, вы можете перейти в любое другое состояние в пространстве состояний. Если цепочка не повторяется, вы можете попасть в подмножество пространства состояний. Идея MCMC состоит в том, чтобы иметь существующее стационарное распределение, в котором цепочка в конечном итоге окажется. Это стационарное распределение обычно имеет положительную вероятность оказаться в каком-либо из состояний в цепочке, а не попасть в ловушку в одной точке, как вы описали , Я не могу проверить ваш алгоритм, но, возможно, у вас есть ошибка в нем. Также возможно, что вы определили проблему, когда ваша цепь Маркова не повторяется.

Если вы хотите получить знания в MCMC, я рекомендую вам взглянуть на «Справочник цепи Маркова Монте-Карло», в котором есть статьи, описывающие каждый аспект MCMC. Он был опубликован CRC Press в 2011 году.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.