2014-06-11 5 views
0

Я хотел узнать о оптимизации MAP im pymc. Я получил следующее заднее распределение lambda после взятия проб с использованием MCMC enter image description hereДва выполнения MAP в pymc дают разные значения

Очевидно, что задняя максимальна при лямбда = 0,20 и 95% интервалы [0,17, 0,24] (пожалуйста, поправьте меня, если я ошибаюсь)

Насколько я знаю, MAP дает оценку точки (значение лямбда, которая имеет максимальную заднюю вероятность), но когда я дважды запускаю MAP, я получаю разные значения, которых не должно быть.

Я печатаю значения лямбда до nd после использования карты в 2 исполнения одной и той же программы.

Перед использованием MAP 0,200091865615 После использования MAP +0,197584715205

Перед использованием MAP +1,28960939539 После использования MAP +2,70871770586

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

ответ

0

Возможны проблемы с конвергенцией с оптимизатором при втором стартовом значении. Можете ли вы попробовать другой оптимизатор? Например:

MAP(method='fmin_powell') 
+0

Но как я узнаю заранее, что мне придется использовать какой-то другой оптимизатор? У меня уже был задний, поэтому я мог проверить здесь, но это может быть не каждый раз. – turing

+0

У вас нет. Искусство, стоящее за оптимизацией, может выбрать разумную стартовую ценность. Вы можете сделать это в PyMC, установив аргумент 'value =' (иначе он использует случайную ничью). –