2013-09-10 7 views
2

Я относительно новичок в PyMC, и у меня есть быстрый вопрос о выходе сэмплера MCMC. Я хотел бы найти наиболее вероятное значение (максимум заднего) моих переменных, найденное сэмплером MCMC. Есть ли быстрый способ сделать это? Предположительно, значения переменных в максимуме задней части, найденные сэмплером MCMC, могут существенно отличаться от значений, обнаруженных методами MAP PyMC.Поиск наиболее вероятного значения с выхода пробоотборника MCMC

Благодарим разработчиков за предоставление PyMC. Это очень полезно для моей работы. Этот вопрос также был отправлен в группу Google PyMC.

+1

Гарантируется, что 'numpy.mean (model.my_variable.trace [:]) будет асимптотически приближаться к значению MAP' my_variable', так как ваша цепочка MCMC работает бесконечно долго. –

ответ

1

Редактировать: Как указывает Ахмед Фасих, я неправильно понял вопрос. Его совет в комментарии к вопросу - это способ сделать это =)


Эта функциональность встроена в PyMC. Класс MAP в основном пространстве имен pymc принимает массив переменных pymc (или класс Model) и предоставляет метод fit.

map = mc.MAP(model) #or [var1, var2, .. ] 
map.fit() 

тогда все переменные pymc будут установлены как максимальный апостериор.

+0

Камеру, хотя op использовал фразу «MAP», pymc.MAP не то, что они хотят: они хотят использовать выходы MCMC («Предположительно, значения переменных в максимуме задней части, найденные сэмплером MCMC, могут быть существенно разными от найденных методами MAP PyMC »). –

+0

Ах, отметил. Спасибо за альтернативный (и правильный) ответ. –