|
79 | 79 | <link href="../../../site_libs/quarto-html/quarto-syntax-highlighting-59898bd1c6b9d2bb783127feaa000c76.css" rel="stylesheet" class="quarto-color-scheme-extra" id="quarto-text-highlighting-styles"> |
80 | 80 | <script src="../../../site_libs/bootstrap/bootstrap.min.js"></script> |
81 | 81 | <link href="../../../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet"> |
82 | | -<link href="../../../site_libs/bootstrap/bootstrap-6d473936cc8d00492cb799f5b8d7dea2.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme" id="quarto-bootstrap" data-mode="light"> |
83 | | -<link href="../../../site_libs/bootstrap/bootstrap-dark-95aa7e46042fcb06eef26a357215a1e0.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme quarto-color-alternate" id="quarto-bootstrap" data-mode="dark"> |
84 | | -<link href="../../../site_libs/bootstrap/bootstrap-6d473936cc8d00492cb799f5b8d7dea2.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme-extra" id="quarto-bootstrap" data-mode="light"> |
| 82 | +<link href="../../../site_libs/bootstrap/bootstrap-4194f9562701575e5baa9af6c3668b6f.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme" id="quarto-bootstrap" data-mode="light"> |
| 83 | +<link href="../../../site_libs/bootstrap/bootstrap-dark-c2fa6fa1a1f4e3883ea05d73102366a5.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme quarto-color-alternate" id="quarto-bootstrap" data-mode="dark"> |
| 84 | +<link href="../../../site_libs/bootstrap/bootstrap-4194f9562701575e5baa9af6c3668b6f.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme-extra" id="quarto-bootstrap" data-mode="light"> |
85 | 85 | <script id="quarto-search-options" type="application/json">{ |
86 | 86 | "location": "navbar", |
87 | 87 | "copy-button": false, |
@@ -1000,73 +1000,41 @@ <h1>Consider a probabilistic model defined by</h1> |
1000 | 1000 | <div id="26" class="cell" data-execution_count="1"> |
1001 | 1001 | <div class="sourceCode cell-code" id="cb12"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a><span class="fu">sample</span>(<span class="fu">MiniModel</span>(m, (x<span class="op">=</span><span class="fl">3.0</span>,)), <span class="fu">MHSampler</span>(), <span class="fl">1_000_000</span>; chain_type<span class="op">=</span>Chains, progress<span class="op">=</span><span class="cn">false</span>)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div> |
1002 | 1002 | <div class="cell-output cell-output-display" data-execution_count="1"> |
1003 | | -<div class="ansi-escaped-output"> |
1004 | | -<pre>Chains MCMC chain (1000000×2×1 Array{Float64, 3}): |
| 1003 | +<pre><code>Chains MCMC chain (1000000×2×1 Array{Float64, 3}): |
1005 | 1004 |
|
1006 | 1005 | Iterations = 1:1:1000000 |
1007 | 1006 | Number of chains = 1 |
1008 | 1007 | Samples per chain = 1000000 |
1009 | 1008 | parameters = a, b |
1010 | 1009 |
|
1011 | | -Summary Statistics |
1012 | | - <span class="ansi-bold"> parameters </span><span class="ansi-bold"> mean </span><span class="ansi-bold"> std </span><span class="ansi-bold"> mcse </span><span class="ansi-bold"> ess_bulk </span><span class="ansi-bold"> ess_tail </span><span class="ansi-bold"> rh ⋯ |
1013 | | - </span><span class="ansi-bright-black-fg ansi-bold"> Symbol </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float ⋯ |
1014 | | - |
1015 | | - a 0.9761 0.9003 0.0032 80996.1504 120761.1548 1.00 ⋯ |
1016 | | - b 2.8807 0.4892 0.0012 169532.7931 212343.5210 1.00 ⋯ |
1017 | | -</span><span class="ansi-cyan-fg ansi-bold"> 2 columns omitted |
1018 | | - |
1019 | | -Quantiles |
1020 | | - </span><span class="ansi-cyan-fg ansi-bold"> parameters </span><span class="ansi-cyan-fg ansi-bold"> 2.5% </span><span class="ansi-cyan-fg ansi-bold"> 25.0% </span><span class="ansi-cyan-fg ansi-bold"> 50.0% </span><span class="ansi-cyan-fg ansi-bold"> 75.0% </span><span class="ansi-cyan-fg ansi-bold"> 97.5% |
1021 | | - </span><span class="ansi-bright-black-fg ansi-bold"> Symbol </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float64 |
1022 | | - |
1023 | | - a -0.7900 0.3698 0.9736 1.5849 2.7370 |
1024 | | - b 1.9201 2.5500 2.8813 3.2103 3.8383 |
1025 | | -</span></pre> |
1026 | | -</div> |
| 1010 | +Use `describe(chains)` for summary statistics and quantiles.</code></pre> |
1027 | 1011 | </div> |
1028 | 1012 | </div> |
1029 | 1013 | <p>We compare these results with Turing.</p> |
1030 | 1014 | <div id="28" class="cell" data-execution_count="1"> |
1031 | | -<div class="sourceCode cell-code" id="cb13"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a><span class="im">using</span> <span class="bu">Turing</span></span> |
1032 | | -<span id="cb13-2"><a href="#cb13-2" aria-hidden="true" tabindex="-1"></a><span class="im">using</span> <span class="bu">PDMats</span></span> |
1033 | | -<span id="cb13-3"><a href="#cb13-3" aria-hidden="true" tabindex="-1"></a></span> |
1034 | | -<span id="cb13-4"><a href="#cb13-4" aria-hidden="true" tabindex="-1"></a><span class="pp">@model</span> <span class="kw">function</span> <span class="fu">turing_m</span>(x)</span> |
1035 | | -<span id="cb13-5"><a href="#cb13-5" aria-hidden="true" tabindex="-1"></a> a <span class="op">~</span> <span class="fu">Normal</span>(<span class="fl">0.5</span>, <span class="fl">1</span>)</span> |
1036 | | -<span id="cb13-6"><a href="#cb13-6" aria-hidden="true" tabindex="-1"></a> b <span class="op">~</span> <span class="fu">Normal</span>(a, <span class="fl">2</span>)</span> |
1037 | | -<span id="cb13-7"><a href="#cb13-7" aria-hidden="true" tabindex="-1"></a> x <span class="op">~</span> <span class="fu">Normal</span>(b, <span class="fl">0.5</span>)</span> |
1038 | | -<span id="cb13-8"><a href="#cb13-8" aria-hidden="true" tabindex="-1"></a> <span class="cf">return</span> <span class="cn">nothing</span></span> |
1039 | | -<span id="cb13-9"><a href="#cb13-9" aria-hidden="true" tabindex="-1"></a><span class="kw">end</span></span> |
1040 | | -<span id="cb13-10"><a href="#cb13-10" aria-hidden="true" tabindex="-1"></a></span> |
1041 | | -<span id="cb13-11"><a href="#cb13-11" aria-hidden="true" tabindex="-1"></a><span class="fu">sample</span>(<span class="fu">turing_m</span>(<span class="fl">3.0</span>), <span class="fu">MH</span>(<span class="fu">ScalMat</span>(<span class="fl">2</span>, <span class="fl">1.0</span>)), <span class="fl">1_000_000</span>, progress<span class="op">=</span><span class="cn">false</span>)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div> |
| 1015 | +<div class="sourceCode cell-code" id="cb14"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true" tabindex="-1"></a><span class="im">using</span> <span class="bu">Turing</span></span> |
| 1016 | +<span id="cb14-2"><a href="#cb14-2" aria-hidden="true" tabindex="-1"></a><span class="im">using</span> <span class="bu">PDMats</span></span> |
| 1017 | +<span id="cb14-3"><a href="#cb14-3" aria-hidden="true" tabindex="-1"></a></span> |
| 1018 | +<span id="cb14-4"><a href="#cb14-4" aria-hidden="true" tabindex="-1"></a><span class="pp">@model</span> <span class="kw">function</span> <span class="fu">turing_m</span>(x)</span> |
| 1019 | +<span id="cb14-5"><a href="#cb14-5" aria-hidden="true" tabindex="-1"></a> a <span class="op">~</span> <span class="fu">Normal</span>(<span class="fl">0.5</span>, <span class="fl">1</span>)</span> |
| 1020 | +<span id="cb14-6"><a href="#cb14-6" aria-hidden="true" tabindex="-1"></a> b <span class="op">~</span> <span class="fu">Normal</span>(a, <span class="fl">2</span>)</span> |
| 1021 | +<span id="cb14-7"><a href="#cb14-7" aria-hidden="true" tabindex="-1"></a> x <span class="op">~</span> <span class="fu">Normal</span>(b, <span class="fl">0.5</span>)</span> |
| 1022 | +<span id="cb14-8"><a href="#cb14-8" aria-hidden="true" tabindex="-1"></a> <span class="cf">return</span> <span class="cn">nothing</span></span> |
| 1023 | +<span id="cb14-9"><a href="#cb14-9" aria-hidden="true" tabindex="-1"></a><span class="kw">end</span></span> |
| 1024 | +<span id="cb14-10"><a href="#cb14-10" aria-hidden="true" tabindex="-1"></a></span> |
| 1025 | +<span id="cb14-11"><a href="#cb14-11" aria-hidden="true" tabindex="-1"></a><span class="fu">sample</span>(<span class="fu">turing_m</span>(<span class="fl">3.0</span>), <span class="fu">MH</span>(<span class="fu">ScalMat</span>(<span class="fl">2</span>, <span class="fl">1.0</span>)), <span class="fl">1_000_000</span>, progress<span class="op">=</span><span class="cn">false</span>)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div> |
1042 | 1026 | <div class="cell-output cell-output-display" data-execution_count="1"> |
1043 | | -<div class="ansi-escaped-output"> |
1044 | | -<pre>Chains MCMC chain (1000000×3×1 Array{Float64, 3}): |
| 1027 | +<pre><code>Chains MCMC chain (1000000×3×1 Array{Float64, 3}): |
1045 | 1028 |
|
1046 | 1029 | Iterations = 1:1:1000000 |
1047 | 1030 | Number of chains = 1 |
1048 | 1031 | Samples per chain = 1000000 |
1049 | | -Wall duration = 24.45 seconds |
1050 | | -Compute duration = 24.45 seconds |
| 1032 | +Wall duration = 21.37 seconds |
| 1033 | +Compute duration = 21.37 seconds |
1051 | 1034 | parameters = a, b |
1052 | 1035 | internals = lp |
1053 | 1036 |
|
1054 | | -Summary Statistics |
1055 | | - <span class="ansi-bold"> parameters </span><span class="ansi-bold"> mean </span><span class="ansi-bold"> std </span><span class="ansi-bold"> mcse </span><span class="ansi-bold"> ess_bulk </span><span class="ansi-bold"> ess_tail </span><span class="ansi-bold"> rh ⋯ |
1056 | | - </span><span class="ansi-bright-black-fg ansi-bold"> Symbol </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float ⋯ |
1057 | | - |
1058 | | - a 0.9780 0.9016 0.0031 82020.3602 121725.2524 1.00 ⋯ |
1059 | | - b 2.8810 0.4897 0.0012 175647.1391 216521.0287 1.00 ⋯ |
1060 | | -</span><span class="ansi-cyan-fg ansi-bold"> 2 columns omitted |
1061 | | - |
1062 | | -Quantiles |
1063 | | - </span><span class="ansi-cyan-fg ansi-bold"> parameters </span><span class="ansi-cyan-fg ansi-bold"> 2.5% </span><span class="ansi-cyan-fg ansi-bold"> 25.0% </span><span class="ansi-cyan-fg ansi-bold"> 50.0% </span><span class="ansi-cyan-fg ansi-bold"> 75.0% </span><span class="ansi-cyan-fg ansi-bold"> 97.5% |
1064 | | - </span><span class="ansi-bright-black-fg ansi-bold"> Symbol </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float64 </span><span class="ansi-bright-black-fg ansi-bold"> Float64 |
1065 | | - |
1066 | | - a -0.7965 0.3693 0.9783 1.5882 2.7384 |
1067 | | - b 1.9215 2.5505 2.8800 3.2120 3.8379 |
1068 | | -</span></pre> |
1069 | | -</div> |
| 1037 | +Use `describe(chains)` for summary statistics and quantiles.</code></pre> |
1070 | 1038 | </div> |
1071 | 1039 | </div> |
1072 | 1040 | <p>As you can see, with our simple probabilistic programming language and custom samplers we get similar results as Turing.</p> |
|
0 commit comments