01 сентября 2012

RStan: быстрый расчет байесовских моделей со смешанными эффектами в R



В последние лет десять одной из стандартных программ для аналитиков, представляющих байесовскую школу, была система статистических вычислений BUGS (Bayesian inference Using Gibbs Sampler; позднее также ее open-source инкарнации OpenBugs и JAGS). BUGS (может вызываться из R благодаря пакету R2WinBUGS) служит для построения статистических моделей со смешанными эффектами (mixed-effects models; также multilevel models - многоуровневые модели, или hierarchical models - иерархические модели). Будучи основанной на определенном подходе к математическому описанию таких моделей, программа позволяет задать случайным эффектам необходимые статистические распределения, назначить байесовские априорные оценки параметров этих распределений, а также указать взаимодействия между случайными эффектами. Несмотря на развитый математический аппарат таких моделей, расчет их параметров представляет собой нетривиальную вычислительную проблему и требует значительных машинных ресурсов, поскольку параллельно выполняются несколько сотен или тысяч симуляций Монте Карло для каждой случайной переменной. Соответствующие симуляции обычно выполняются по схеме марковских цепей с использованием сэмплера Гиббса. К сожалению, расчеты моделей с большим и даже умеренным количеством параметров могут занимать очень много времени и даже оканчиваться неудачей в связи с несходимостью алгоритма.

Пару дней назад Эндрю Гелман (Andrew Gelman, автор известной книги по многоуровневым моделям) с коллегами из Университета Колумбии объявили о создании STAN - высокоэффективной программы с открытым кодом для построения байсовских моделей со смешанными эффектами. Новая программа обладает той же легкостью в использовании, что и традиционная BUGS, но основана на гибридном алгоритме Монте Карло (также известном как алгоритм Гамильтона), позволяющем значительно ускорить вычисления. Повышение скорости вычислений достигается также за счет конвертации моделей в cкомпилированный C++ код (см. сравнения с BUGS и JAGS здесь).

Работа с STAN осуществляется через командную строку. Параллельно с публикацией первой версии этой программы, авторы также опубликовали пакет RStan, обеспечивающий доступ к функционалу STAN из среды R. Подробные инструкции по работе с STAN изложены в соответствующем 178-страничном руководстве пользователя. Небольшое введение в работу с RStan приведено здесь.

--
Сообщение подготовлено по материалам блога Revolution Analytics.


4 комментария :

zmeygor комментирует...

Я немного поверхностно интересуюсь байесовскими моделями и всем, что с этим связано, но про термин "байсовская модель со смешанными эффектами" никогда не слышал. Гугл тоже ничего внятного не подсказывает. Вы не могли направить меня на референс по этой теме? В первую очередь интересует концепция и применимость.
Спасибо.

Сергей Мастицкий комментирует...

Попытка поиска информации по этой теме на русском языке Вас действительно почти ни к чему не приведет - ищите на английском. Например, спросив у Google что-то вроде "Bayesian multilevel models", получите массу информации.

Отправными точками могут быть также:
- Упомянутая в статье "маст-хэв" книга Gelman A, Hill J (2006) Data Analysis Using Regression and Multilevel/Hierarchical Models
http://www.stat.columbia.edu/~gelman/arm/

- Статья Lunn DJ, Thomas A, Best N, Spiegelhalter D (2000) WinBUGS - a Bayesian modelling framework: concepts, structure, and extensibility. Statistics and Computing, 10:325-337
У этой статьи >1600 цитирований, так что читать ее нужно обязательно, если интересуетесь байесовскими методами. PDF можно взять здесь:
http://www.panic-lab.rutgers.edu/users/kkonst/Papers_03_10_05/content.asp.pdf

- Сайт проекта BUGS: http://www.mrc-bsu.cam.ac.uk/bugs/

zmeygor комментирует...

Огромное спасибо!

alexandre-putt комментирует...

Весьма любопытно, спасибо за информацию

Отправить комментарий