Stan (программное обеспечение)
редактировать
Stan - это вероятностный язык программирования для статистического вывода написано на C ++. Язык Stan используется для определения (байесовской) статистической модели с помощью императивной программы, вычисляющей log функции плотности вероятности.
Stan лицензирован в рамках New Лицензия BSD. Стэн назван в честь Станислава Улама, пионера метода Монте-Карло.
Стэн был создан командой разработчиков, состоящей из 34 человек, в которую входят Эндрю Гельман, Боб Карпентер, Мэтт Хоффман и Дэниел Ли.
Содержание
- 1 Интерфейсы
- 2 Алгоритмы
- 3 Автоматическое дифференцирование
- 4 Использование
- 5 Ссылки
- 6 Дополнительная литература
- 7 Внешние ссылки
Интерфейсы
К самому языку Stan можно получить доступ через несколько интерфейсов:
- CmdStan - исполняемый файл командной строки для оболочки
- RStan - интеграция с программной средой R, поддерживается Эндрю Гельман и его коллеги
- PyStan - интеграция с языком программирования Python
- MatlabStan - интеграция со средой численных вычислений MATLAB
- Stan.jl - интеграция с языком программирования Julia
- StataStan - интеграция с Stata
Кроме того, высокоуровневые интерфейсы предоставляются с пакетами, использующими Stan в качестве бэкэнда, в основном на языке R :
- rstanarm - обеспечивает замену частотных моделей, предоставляемых базовыми R и lme4 с использованием синтаксиса формулы R
- brms - предоставляет широкий спектр линейных моделей, использующих R fo синтаксис rmula
- blavaan - предоставляет модели скрытых переменных, включая подтверждающий факторный анализ, модели структурных уравнений и модели скрытых кривых роста
- prophet - обеспечивает прогнозирование временных рядов
Алгоритмы
Stan реализует основанные на градиенте алгоритмы Монте-Карло цепи Маркова (MCMC) для байесовского вывода, стохастические, основанные на градиенте вариационные байесовские методы для приближенного байесовского вывода и основанные на градиенте оптимизация для оценки максимального правдоподобия со штрафом.
- Алгоритмы MCMC:
- Сэмплер без разворота (NUTS), вариант HMC и стандартного механизма MCMC Стэна
- Гамильтониан Монте-Карло
- Алгоритмы вариационного вывода:
- Вариационный вывод черного ящика
- Оптимизационные алгоритмы:
- BFGS с ограниченным объемом памяти (алгоритм оптимизации Стэна по умолчанию)
- Алгоритм Бройдена – Флетчера – Голдфарба – Шанно
- Метод Лапласа для классической стандартной ошибки оценивает и приближает байесовские апостериорные координаты
Автоматическое дифференцирование
Stan реализует обратный режим автоматическое дифференцирование для вычисления градиентов модели, что требуется для HMC, NUTS, L-BFGS, BFGS, и вариационный вывод. Автоматическое дифференцирование в Stan может использоваться вне вероятностного языка программирования.
Использование
Стэн используется в таких областях, как социальные науки, фармацевтическая статистика, исследование рынка и медицинская визуализация.
Ссылки
Дополнительная литература
- Боб, Карпентер; Андрей, Гельман; Мэтью, Хоффман; Дэниел, Ли; Бен, Гудрич; Майкл, Бетанкур; Маркус, Брубейкер; Цзицян, Го; Питер, Ли; Аллен, Ридделл (2017). «Стэн: вероятностный язык программирования». Журнал статистического программного обеспечения. 76 (1): 1–32. doi : 10.18637 / jss.v076.i01. ISSN 1548-7660.
- Гельман, Эндрю, Дэниел Ли и Цзицян Го (2015). Стэн: вероятностный язык программирования для байесовского вывода и оптимизации, Журнал образовательной и поведенческой статистики.
- Хоффман, Мэтью Д., Боб Карпентер и Эндрю Гельман (2012). Stan, масштабируемое программное обеспечение для байесовского моделирования, Proceedings of the NIPS Workshop on Probabilistic Programming.
Внешние ссылки