PyMC: Как я могу описать модель пространства состояний?

Раньше я кодировал свой MCMC с помощью C. Но я хотел бы попробовать PyMC.

Предположим, что X_n - это базовое состояние, динамика которого следует за цепью Маркова, а Y_n - наблюдаемые данные. Особенно,

Y_n имеет распределение Пуассона со средним значением, зависящим от X_n и многомерным неизвестным параметром theta X_n | X_ {n-1} имеет распределение в зависимости от тета

Как мне описать эту модель с помощью PyMC?

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


person William Zhang    schedule 08.12.2013    source источник


Ответы (1)


Вот пример модели пространства состояний в PyMC в вики PyMC. В основном это включает заполнение списка и разрешение PyMC рассматривать его как контейнер узлов PyMC.

Что касается второй части вопроса, вы, безусловно, можете заранее рассчитать некоторые из ваших сопряженных апостериорных зубов и поместить их в модель. Например, если вы наблюдали биномиальные данные x=4, n=10, вы можете вставить бета-узел p = Beta('p', 5, 7), чтобы представить этот апостериорный (на самом деле, это только апостериорные данные, что касается модели, но это апостериорные данные x). Затем PyMC будет рисовать образец для этой апостериорной оценки на каждой итерации, который будет использоваться везде, где это необходимо в модели.

person Chris Fonnesbeck    schedule 08.12.2013
comment
Спасибо! Я в основном понимаю вашу идею относительно моего второго вопроса о сопряженных априорных значениях, но до сих пор не знаю, как его настроить. например Я определенно не могу жестко запрограммировать 100 таких узлов, если хочу запустить 100 обновлений MCMC. Есть ли какой-нибудь пример кода в репозитории PyMC? - person William Zhang; 10.12.2013