<div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href>EllipticalSliceSampling</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li class="is-active"><a class="tocitem" href>Home</a><ul class="internal"><li><a class="tocitem" href="#Overview"><span>Overview</span></a></li><li><a class="tocitem" href="#Poster-at-JuliaCon-2021"><span>Poster at JuliaCon 2021</span></a></li><li><a class="tocitem" href="#Usage"><span>Usage</span></a></li><li><a class="tocitem" href="#References"><span>References</span></a></li></ul></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Home</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Home</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/TuringLang/EllipticalSliceSampling.jl" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/TuringLang/EllipticalSliceSampling.jl/blob/main/docs/src/index.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="EllipticalSliceSampling"><a class="docs-heading-anchor" href="#EllipticalSliceSampling">EllipticalSliceSampling</a><a id="EllipticalSliceSampling-1"></a><a class="docs-heading-anchor-permalink" href="#EllipticalSliceSampling" title="Permalink"></a></h1><p><em>Julia implementation of elliptical slice sampling.</em></p><h2 id="Overview"><a class="docs-heading-anchor" href="#Overview">Overview</a><a id="Overview-1"></a><a class="docs-heading-anchor-permalink" href="#Overview" title="Permalink"></a></h2><p>This package implements elliptical slice sampling in the Julia language, as described in <a href="http://proceedings.mlr.press/v9/murray10a/murray10a.pdf">Murray, Adams & MacKay (2010)</a>.</p><p>Elliptical slice sampling is a "Markov chain Monte Carlo algorithm for performing inference in models with multivariate Gaussian priors" (Murray, Adams & MacKay (2010)).</p><p>Without loss of generality, the originally described algorithm assumes that the Gaussian prior has zero mean. For convenience we allow the user to specify arbitrary Gaussian priors with non-zero means and handle the change of variables internally.</p><h2 id="Poster-at-JuliaCon-2021"><a class="docs-heading-anchor" href="#Poster-at-JuliaCon-2021">Poster at JuliaCon 2021</a><a id="Poster-at-JuliaCon-2021-1"></a><a class="docs-heading-anchor-permalink" href="#Poster-at-JuliaCon-2021" title="Permalink"></a></h2><p><a href="https://www.youtube.com/watch?v=S5gUED7Uq2Q"><img src="http://img.youtube.com/vi/S5gUED7Uq2Q/0.jpg" alt="EllipticalSliceSampling.jl: MCMC with Gaussian priors"/></a></p><p>The slides are available as <a href="https://talks.widmann.dev/2021/07/ellipticalslicesampling/">Pluto notebook</a>.</p><h2 id="Usage"><a class="docs-heading-anchor" href="#Usage">Usage</a><a id="Usage-1"></a><a class="docs-heading-anchor-permalink" href="#Usage" title="Permalink"></a></h2><p>Probably most users would like to generate a MC Markov chain of samples from the posterior distribution by calling</p><pre><code class="language-julia hljs">sample([rng, ]ESSModel(prior, loglikelihood), ESS(), N[; kwargs...])</code></pre><p>which returns a vector of <code>N</code> samples for approximating the posterior of a model with a Gaussian prior that allows sampling from the <code>prior</code> and evaluation of the log likelihood <code>loglikelihood</code>.</p><p>You can sample multiple chains in parallel with multiple threads or processes by running</p><pre><code class="language-julia hljs">sample([rng, ]ESSModel(prior, loglikelihood), ESS(), MCMCThreads(), N, nchains[; kwargs...])</code></pre><p>or</p><pre><code class="language-julia hljs">sample([rng, ]ESSModel(prior, loglikelihood), ESS(), MCMCDistributed(), N, nchains[; kwargs...])</code></pre><p>If you want to have more control about the sampling procedure (e.g., if you only want to save a subset of samples or want to use another stopping criterion), the function</p><pre><code class="language-julia hljs">AbstractMCMC.steps(
0 commit comments