Probabilistic programming: Difference between revisions

Content deleted Content added
m Added links
Tags: canned edit summary Mobile edit Mobile app edit iOS app edit
Line 27:
PPLs often extend from a basic language. The choice of underlying basic language depends on the similarity of the model to the basic language's [[Ontology (information science)|ontology]], as well as commercial considerations and personal preference. For instance, Dimple<ref name="DMPL"/> and Chimple<ref name="CHMPL"/> are based on [[Java (programming language)|Java]], [[Infer.NET]] is based on [[.NET Framework]],<ref name="INFET"/> while PRISM extends from [[Prolog]].<ref name="PRISM"/> However, some PPLs such as [[WinBUGS]] offer a self-contained language, that maps closely to the mathematical representation of the statistical models, with no obvious origin in another programming language.<ref name="BUGS"/><ref name="Stan"/>
 
The language for WInBUGS was implemented to perform Bayesian computation Usingusing Gibbs Sampling (and related algorithms). Although implemented in a relatively old programming language (Pascal), this language permits Bayesian inference for a wide variety of statistical models using a flexible computational approach. The same BUGS language may be used to specify Bayesian models for inference via different computational choices ("samplers") and conventions or defaults, using a standalone package WinBUGS (or related R packages, rbugs and r2winbugs) and JAGS (Just Another Gibbs Sampler, another R package). More recently, other languages to support Bayesian model specification and inference allow different or more efficient choices for the underlying Bayesian computation, and are accessible from the R data analysis and programming environment, e.g.: [[Stan (software)|Stan]], NIMBLE and NUTS. The influence of the BUGS language is evident in these later languages, which even use the same syntax for some aspects of model specification.
 
Several PPLs are in active development, including some in beta test. Two popular tools are Stan and [[PyMC]].<ref>{{Cite web|url=http://blog.fastforwardlabs.com/2017/01/30/the-algorithms-behind-probabilistic-programming.html|title=The Algorithms Behind Probabilistic Programming|access-date=2017-03-10}}</ref>