Multivariate Normal Likelihood with Multivariate Normal Prior

This is a simple model where our data, \(y\), is modelled as a multivariate normal RV with uncorrelated noise.

\(L(x) = p(y | x) = \mathcal{N}[y \mid x,\Sigma]\)

and

\(p(x) = \mathcal{N}[x \mid \mu, \sigma^2 \mathbf{I}]\).

The analytic evidence for this model is,

\(Z = p(y) = \mathcal{N}[y \mid \mu, \Sigma + \sigma^2 \mathbf{I}]\)

The posterior is also a multivariate normal distribution,

\(p(x \mid y) = \mathcal{N}[\mu', \Sigma']\)

where

\(\mu' = \sigma^2 \mathbf{I} (\sigma^2 \mathbf{I} + \Sigma)^{-1} y + \Sigma ( \sigma^2 \mathbf{I} + \Sigma)^{-1} \mu\)

and

\(\Sigma' = \sigma^2 \mathbf{I} (\sigma^2 \mathbf{I} + \Sigma)^{-1} \Sigma\)

[1]:

import tensorflow_probability.substrates.jax as tfp from jax import random, numpy as jnp from jaxns import NestedSampler from jaxns import Model from jaxns import Prior tfpd = tfp.distributions
/home/albert/miniconda3/envs/jaxns_py/lib/python3.11/site-packages/jaxns/internals/mixed_precision.py:15: UserWarning: JAX x64 is not enabled. Setting it now. Check for errors.
  warnings.warn("JAX x64 is not enabled. Setting it now. Check for errors.")
INFO:jax._src.xla_bridge:Unable to initialize backend 'cuda':
INFO:jax._src.xla_bridge:Unable to initialize backend 'rocm': module 'jaxlib.xla_extension' has no attribute 'GpuAllocatorConfig'
INFO:jax._src.xla_bridge:Unable to initialize backend 'tpu': INTERNAL: Failed to open libtpu.so: libtpu.so: cannot open shared object file: No such file or directory
WARNING:jax._src.xla_bridge:An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.
[2]:
from jax._src.scipy.linalg import solve_triangular


def log_normal(x, mean, cov):
    L = jnp.linalg.cholesky(cov)
    dx = x - mean
    dx = solve_triangular(L, dx, lower=True)
    return -0.5 * x.size * jnp.log(2. * jnp.pi) - jnp.sum(jnp.log(jnp.diag(L))) - 0.5 * dx @ dx


# define our data and prior
ndims = 16
prior_mu = 15 * jnp.ones(ndims)
prior_cov = jnp.diag(jnp.ones(ndims)) ** 2

data_mu = jnp.zeros(ndims)
data_cov = jnp.diag(jnp.ones(ndims)) ** 2
data_cov = jnp.where(data_cov == 0., 0.99, data_cov)

true_logZ = log_normal(data_mu, prior_mu, prior_cov + data_cov)

J = jnp.linalg.solve(data_cov + prior_cov, prior_cov)
post_mu = prior_mu + J.T @ (data_mu - prior_mu)
post_cov = prior_cov - J.T @ (prior_cov + data_cov) @ J

print("True logZ={}".format(true_logZ))
print("True post_mu={}".format(post_mu))
print("True post_cov={}".format(post_cov))

True logZ=-123.01474515709647
True post_mu=[14.10979228 14.10979228 14.10979228 14.10979228 14.10979228 14.10979228
 14.10979228 14.10979228 14.10979228 14.10979228 14.10979228 14.10979228
 14.10979228 14.10979228 14.10979228 14.10979228]
True post_cov=[[0.06807298 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199]
 [0.05817199 0.06807298 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199]
 [0.05817199 0.05817199 0.06807298 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199]
 [0.05817199 0.05817199 0.05817199 0.06807298 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199]
 [0.05817199 0.05817199 0.05817199 0.05817199 0.06807298 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199]
 [0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.06807298
  0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199]
 [0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.06807298 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199]
 [0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.06807298 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199]
 [0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.06807298 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199]
 [0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.06807298 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199]
 [0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199 0.06807298 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199]
 [0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.06807298
  0.05817199 0.05817199 0.05817199 0.05817199]
 [0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.06807298 0.05817199 0.05817199 0.05817199]
 [0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.06807298 0.05817199 0.05817199]
 [0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.06807298 0.05817199]
 [0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.05817199 0.05817199 0.05817199
  0.05817199 0.05817199 0.05817199 0.06807298]]
[3]:



def prior_model(): x = yield Prior(tfpd.MultivariateNormalTriL(loc=prior_mu, scale_tril=jnp.linalg.cholesky(prior_cov)), name='x') return x # The likelihood is a callable that will take def log_likelihood(x): return log_normal(x, data_mu, data_cov) model = Model(prior_model=prior_model, log_likelihood=log_likelihood)
[4]:
import jax

# Create the nested sampler class. In this case without any tuning.
ns = NestedSampler(
    model=model,
    max_samples=1e6,
    parameter_estimation=True,
    verbose=True)

termination_reason, state = jax.jit(ns)(random.PRNGKey(42654))
results = ns.to_results(termination_reason=termination_reason, state=state)

# We can always save results to play with later
ns.save_results(results, 'save.json')
# loads previous results by uncommenting below
# results = load_results('save.json')


-------
Num samples: 4080
Num likelihood evals: 3597
Efficiency: 0.12509773260359655
log(L) contour: -824.6526150234295
log(Z) est.: -268.86378429991544 +- 0.8319300921560859
-------
Num samples: 8160
Num likelihood evals: 9954
Efficiency: 0.058515177374131415
log(L) contour: -664.5395182441953
log(Z) est.: -237.17982371896804 +- 0.8325533068393729
-------
Num samples: 12240
Num likelihood evals: 18567
Efficiency: 0.038806694154741694
log(L) contour: -557.4666135652756
log(Z) est.: -237.67982219651378 +- 0.833176036686431
-------
Num samples: 16320
Num likelihood evals: 29233
Efficiency: 0.028365441437182365
log(L) contour: -487.9330592378625
log(Z) est.: -238.17982075585252 +- 0.833798326831313
-------
Num samples: 20400
Num likelihood evals: 41667
Efficiency: 0.0234375
log(L) contour: -429.988545045173
log(Z) est.: -238.19375364069242 +- 0.7384847622727756
-------
Num samples: 24480
Num likelihood evals: 56007
Efficiency: 0.01949634443541836
log(L) contour: -385.7425064348372
log(Z) est.: -227.8805008460999 +- 0.8285303378680859
-------
Num samples: 28560
Num likelihood evals: 72598
Efficiency: 0.01687289088863892
log(L) contour: -350.76829607872645
log(Z) est.: -202.0636078986587 +- 0.835661704414351
-------
Num samples: 32640
Num likelihood evals: 91145
Efficiency: 0.014629240193837432
log(L) contour: -320.3105370922537
log(Z) est.: -194.09678287195752 +- 0.8361571276007091
-------
Num samples: 36720
Num likelihood evals: 111470
Efficiency: 0.013069403980722628
log(L) contour: -297.16798139770276
log(Z) est.: -177.04468197853336 +- 0.8369028552736968
-------
Num samples: 40800
Num likelihood evals: 132979
Efficiency: 0.012206907074919893
log(L) contour: -276.09939911129743
log(Z) est.: -149.23977003766225 +- 0.8375223926433822
-------
Num samples: 44880
Num likelihood evals: 156412
Efficiency: 0.011198730810508142
log(L) contour: -256.3425207245875
log(Z) est.: -149.73976859764576 +- 0.8381414560382847
-------
Num samples: 48960
Num likelihood evals: 181525
Efficiency: 0.010384215991692628
log(L) contour: -240.2335144361332
log(Z) est.: -150.23976715763948 +- 0.8387600625236764
-------
Num samples: 53040
Num likelihood evals: 207473
Efficiency: 0.009853025699975367
log(L) contour: -226.88725676365416
log(Z) est.: -143.91769746890625 +- 0.83872899119118
-------
Num samples: 57120
Num likelihood evals: 235168
Efficiency: 0.00919557845935746
log(L) contour: -213.1169484288365
log(Z) est.: -144.41769600522812 +- 0.8393471552671449
-------
Num samples: 61200
Num likelihood evals: 264116
Efficiency: 0.008739189804278562
log(L) contour: -202.08132671035133
log(Z) est.: -144.91767704981302 +- 0.8399579305153486
-------
Num samples: 65280
Num likelihood evals: 295082
Efficiency: 0.00822932382389247
log(L) contour: -190.5280573234364
log(Z) est.: -145.4151606310878 +- 0.8395791622102821
-------
Num samples: 69360
Num likelihood evals: 326971
Efficiency: 0.007857259780651498
log(L) contour: -180.78511533349365
log(Z) est.: -145.90247781761354 +- 0.8366557611085027
-------
Num samples: 73440
Num likelihood evals: 360399
Efficiency: 0.007572052815068385
log(L) contour: -172.69315076564718
log(Z) est.: -140.17755935319826 +- 0.8412878675816247
-------
Num samples: 77520
Num likelihood evals: 395511
Efficiency: 0.007212296966327588
log(L) contour: -165.47230251656143
log(Z) est.: -140.64094457103903 +- 0.8293564581770598
-------
Num samples: 81600
Num likelihood evals: 431701
Efficiency: 0.00692201199815413
log(L) contour: -158.63999780959205
log(Z) est.: -136.47828715017366 +- 0.7951791157543074
-------
Num samples: 85680
Num likelihood evals: 469511
Efficiency: 0.006650041562759767
log(L) contour: -151.95144496092917
log(Z) est.: -131.28481321899633 +- 0.8423292490448776
-------
Num samples: 89760
Num likelihood evals: 508451
Efficiency: 0.00644182894260062
log(L) contour: -146.94226403429073
log(Z) est.: -131.74433626014712 +- 0.830141910033816
-------
Num samples: 93840
Num likelihood evals: 548384
Efficiency: 0.006248047485160888
log(L) contour: -142.09582734432223
log(Z) est.: -128.7224394625305 +- 0.8192004066756646
-------
Num samples: 97920
Num likelihood evals: 589614
Efficiency: 0.0060391031931758135
log(L) contour: -137.46150450638288
log(Z) est.: -128.88151069917146 +- 0.7094820509088775
-------
Num samples: 102000
Num likelihood evals: 632758
Efficiency: 0.0058095203514759814
log(L) contour: -132.99650776575308
log(Z) est.: -124.51790675253193 +- 0.8397216236494709
-------
Num samples: 106080
Num likelihood evals: 677761
Efficiency: 0.005590170616665696
log(L) contour: -129.14342992638768
log(Z) est.: -124.99167941008777 +- 0.8316411661672004
-------
Num samples: 110160
Num likelihood evals: 722527
Efficiency: 0.005494316816043405
log(L) contour: -125.97405107544691
log(Z) est.: -125.14329404304249 +- 0.7469166427659668
-------
Num samples: 114240
Num likelihood evals: 768897
Efficiency: 0.005359116638940681
log(L) contour: -122.95331456877301
log(Z) est.: -125.32534799518892 +- 0.6329173970222194
-------
Num samples: 118320
Num likelihood evals: 815370
Efficiency: 0.005302344077944458
log(L) contour: -120.06428283469651
log(Z) est.: -122.19786003173466 +- 0.823877594281578
-------
Num samples: 122400
Num likelihood evals: 862929
Efficiency: 0.005228074761469089
log(L) contour: -117.44357082142088
log(Z) est.: -122.60113648712344 +- 0.7867453548040511
-------
Num samples: 126480
Num likelihood evals: 911854
Efficiency: 0.005112147741069717
log(L) contour: -115.3703532777026
log(Z) est.: -121.41709600657933 +- 0.4530585809507569
-------
Num samples: 130560
Num likelihood evals: 961667
Efficiency: 0.004996928970736734
log(L) contour: -113.17152320423497
log(Z) est.: -121.33352911169057 +- 0.37739811264074125
-------
Num samples: 134640
Num likelihood evals: 1012367
Efficiency: 0.0048996590653900335
log(L) contour: -111.14248041827352
log(Z) est.: -120.98818582543814 +- 0.33691129448430607
-------
Num samples: 138720
Num likelihood evals: 1063297
Efficiency: 0.004847065001161276
log(L) contour: -109.16022230795176
log(Z) est.: -120.3365456401919 +- 0.3039175273209959
-------
Num samples: 142800
Num likelihood evals: 1115255
Efficiency: 0.004753698972012597
log(L) contour: -107.47223757935151
log(Z) est.: -119.85927692583434 +- 0.34094844098209737
-------
Num samples: 146880
Num likelihood evals: 1167134
Efficiency: 0.004729716414086672
log(L) contour: -105.89836239983143
log(Z) est.: -119.4123313412413 +- 0.30697495280370996
-------
Num samples: 150960
Num likelihood evals: 1219788
Efficiency: 0.004664723032069971
log(L) contour: -104.36834034855613
log(Z) est.: -118.83079467220078 +- 0.26948700012746496
-------
Num samples: 155040
Num likelihood evals: 1273086
Efficiency: 0.004652740755101052
log(L) contour: -102.71191322239068
log(Z) est.: -118.369970887487 +- 0.25246288127705324
-------
Num samples: 159120
Num likelihood evals: 1325929
Efficiency: 0.0046315951985796446
log(L) contour: -101.27051928621165
log(Z) est.: -117.71427862668509 +- 0.3123603295742818
-------
Num samples: 163200
Num likelihood evals: 1381101
Efficiency: 0.004531893198383625
log(L) contour: -100.02345551031752
log(Z) est.: -116.15894645204772 +- 0.5317095969916884
-------
Num samples: 167280
Num likelihood evals: 1436863
Efficiency: 0.004441812259401836
log(L) contour: -98.95611982586965
log(Z) est.: -115.96194435638289 +- 0.38018468687962237
-------
Num samples: 171360
Num likelihood evals: 1492909
Efficiency: 0.004386566141192597
log(L) contour: -97.92495388538268
log(Z) est.: -115.83502114243036 +- 0.30840886406119344
-------
Num samples: 175440
Num likelihood evals: 1549217
Efficiency: 0.004366176684616504
log(L) contour: -96.9590287858554
log(Z) est.: -115.74924364356106 +- 0.2687437089301907
-------
Num samples: 179520
Num likelihood evals: 1605351
Efficiency: 0.004345110392960921
log(L) contour: -96.01085887707583
log(Z) est.: -115.61857188391122 +- 0.260598135258185
-------
Num samples: 183600
Num likelihood evals: 1661820
Efficiency: 0.004328652977301626
log(L) contour: -95.10507017769186
log(Z) est.: -115.37859143186402 +- 0.24573347850315708
-------
Num samples: 187680
Num likelihood evals: 1718429
Efficiency: 0.004349914361061017
log(L) contour: -94.23409810227875
log(Z) est.: -114.68733719968213 +- 0.32424640196386834
-------
Num samples: 191760
Num likelihood evals: 1775635
Efficiency: 0.004306554935491396
log(L) contour: -93.44833665460027
log(Z) est.: -114.62784766155185 +- 0.2691861678381475
-------
Num samples: 195840
Num likelihood evals: 1832886
Efficiency: 0.004300844040642976
log(L) contour: -92.67691963588084
log(Z) est.: -114.30092831257237 +- 0.3049733063149726
-------
Num samples: 199920
Num likelihood evals: 1890147
Efficiency: 0.004301229434746765
log(L) contour: -91.92573857994412
log(Z) est.: -114.29510898412046 +- 0.2890258730995695
-------
Num samples: 204000
Num likelihood evals: 1947604
Efficiency: 0.004272553295651787
log(L) contour: -91.18922907813979
log(Z) est.: -114.09909189069795 +- 0.26546938146735277
-------
Num samples: 208080
Num likelihood evals: 2004480
Efficiency: 0.004301267977956002
log(L) contour: -90.46409666674501
log(Z) est.: -113.97001980974613 +- 0.2503814611983969
-------
Num samples: 212160
Num likelihood evals: 2061075
Efficiency: 0.004340317023989294
log(L) contour: -89.75031706874799
log(Z) est.: -113.77917031690207 +- 0.24059410495224887
-------
Num samples: 216240
Num likelihood evals: 2117958
Efficiency: 0.004338630077553013
log(L) contour: -89.0865953569726
log(Z) est.: -113.75012835946973 +- 0.23387038871731627
-------
Num samples: 220320
Num likelihood evals: 2174844
Efficiency: 0.004330644724733395
log(L) contour: -88.41165312112676
log(Z) est.: -113.64136306007201 +- 0.23451910875261353
-------
Num samples: 224400
Num likelihood evals: 2230866
Efficiency: 0.004365978115534696
log(L) contour: -87.72959981169916
log(Z) est.: -113.51610847647527 +- 0.23392320268615072
-------
Num samples: 228480
Num likelihood evals: 2288158
Efficiency: 0.004310925501818672
log(L) contour: -87.13202327191493
log(Z) est.: -113.37616864103863 +- 0.23618886511234227
-------
Num samples: 232560
Num likelihood evals: 2343828
Efficiency: 0.004354768471476266
log(L) contour: -86.58310308697602
log(Z) est.: -113.29819786128162 +- 0.23579435531505613
-------
Num samples: 236640
Num likelihood evals: 2400094
Efficiency: 0.004352399260092126
log(L) contour: -85.99107982442467
log(Z) est.: -113.10631371088134 +- 0.2400193284461496
-------
Num samples: 240720
Num likelihood evals: 2456495
Efficiency: 0.004347983622595021
log(L) contour: -85.44679968023229
log(Z) est.: -112.97939777966252 +- 0.25148048075322116
-------
Num samples: 244800
Num likelihood evals: 2511561
Efficiency: 0.0044077539738656924
log(L) contour: -84.92537998939355
log(Z) est.: -112.89566491058544 +- 0.24388296598562773
-------
Num samples: 248880
Num likelihood evals: 2565988
Efficiency: 0.004476400973617211
log(L) contour: -84.39408351896824
log(Z) est.: -112.84819831874795 +- 0.24133884770556746
-------
Num samples: 252960
Num likelihood evals: 2620430
Efficiency: 0.004538191719691025
log(L) contour: -83.81886194649587
log(Z) est.: -112.73632488903435 +- 0.24377601639818988
-------
Num samples: 257040
Num likelihood evals: 2673963
Efficiency: 0.004584877545562221
log(L) contour: -83.25785319016418
log(Z) est.: -112.67175677083159 +- 0.24663611257467877
-------
Num samples: 261120
Num likelihood evals: 2727765
Efficiency: 0.004566905160602832
log(L) contour: -82.7135117154537
log(Z) est.: -112.62530011814094 +- 0.24456725586493244
-------
Num samples: 265200
Num likelihood evals: 2782601
Efficiency: 0.0045120839247610005
log(L) contour: -82.1692670154639
log(Z) est.: -112.57652338284905 +- 0.24356909391189704
-------
Num samples: 269280
Num likelihood evals: 2837820
Efficiency: 0.0044773195780126295
log(L) contour: -81.66394555693572
log(Z) est.: -112.5258404076895 +- 0.24374041195424295
-------
Num samples: 273360
Num likelihood evals: 2893960
Efficiency: 0.0044015295315122
log(L) contour: -81.11720014660608
log(Z) est.: -112.48920518600018 +- 0.24397691709193203
-------
Num samples: 277440
Num likelihood evals: 2950344
Efficiency: 0.0043895747599451305
log(L) contour: -80.59580860758138
log(Z) est.: -112.45843730180601 +- 0.24429416645656868
-------
Num samples: 281520
Num likelihood evals: 3006488
Efficiency: 0.004360029430198654
log(L) contour: -80.21369083401046
log(Z) est.: -112.4283013720805 +- 0.24476718585663088
-------
Num samples: 285600
Num likelihood evals: 3062640
Efficiency: 0.004389775481274864
log(L) contour: -79.68947555544318
log(Z) est.: -112.39674418457058 +- 0.24523381383796874
-------
Num samples: 289680
Num likelihood evals: 3118628
Efficiency: 0.004373377067104004
log(L) contour: -79.26990079202668
log(Z) est.: -112.37258522456398 +- 0.24554174533766274
-------
Num samples: 293760
Num likelihood evals: 3174626
Efficiency: 0.004380361379813835
log(L) contour: -78.84158171049904
log(Z) est.: -112.35298363415673 +- 0.2458287480394956
-------
Num samples: 297840
Num likelihood evals: 3231120
Efficiency: 0.004339061497157011
log(L) contour: -78.44208256362847
log(Z) est.: -112.33786268588675 +- 0.2460881185629989
-------
Num samples: 301920
Num likelihood evals: 3287916
Efficiency: 0.004308874486076949
log(L) contour: -78.0552575485319
log(Z) est.: -112.32106257719485 +- 0.24637940985956033
-------
Num samples: 306000
Num likelihood evals: 3344916
Efficiency: 0.004308062359202649
log(L) contour: -77.7071162099501
log(Z) est.: -112.30810958217242 +- 0.24660969689763323
-------
Num samples: 310080
Num likelihood evals: 3402323
Efficiency: 0.004278303652601743
log(L) contour: -77.366088035199
log(Z) est.: -112.29999950287196 +- 0.24675529078726852
-------
Num samples: 314160
Num likelihood evals: 3460240
Efficiency: 0.004271488702802274
log(L) contour: -77.05491245489716
log(Z) est.: -112.28957449108384 +- 0.24695077020681738
-------
Num samples: 318240
Num likelihood evals: 3518252
Efficiency: 0.0042459464480004245
log(L) contour: -76.6903851304576
log(Z) est.: -112.28589139614225 +- 0.2470163908545323
-------
Num samples: 322320
Num likelihood evals: 3575785
Efficiency: 0.004233401538135892
log(L) contour: -76.37090519337895
log(Z) est.: -112.28059705814543 +- 0.2471174503800393
-------
Num samples: 326400
Num likelihood evals: 3633227
Efficiency: 0.00426856380613606
log(L) contour: -76.02851563510868
log(Z) est.: -112.27723653787609 +- 0.2471816834008979
-------
Num samples: 330480
Num likelihood evals: 3691643
Efficiency: 0.004211782461435867
log(L) contour: -75.7196291690648
log(Z) est.: -112.27526749275404 +- 0.2472196583550103
-------
Num samples: 334560
Num likelihood evals: 3749413
Efficiency: 0.004251663020275118
log(L) contour: -75.43583821679968
log(Z) est.: -112.27057902994676 +- 0.2473135535247689
-------
Num samples: 338640
Num likelihood evals: 3806648
Efficiency: 0.004280974635225286
log(L) contour: -75.11437216127453
log(Z) est.: -112.2684422784864 +- 0.24735573313566087
-------
Num samples: 342720
Num likelihood evals: 3863753
Efficiency: 0.004281661998465738
log(L) contour: -74.81942045564566
log(Z) est.: -112.26667887525325 +- 0.2473910018199639
-------
Num samples: 346800
Num likelihood evals: 3919973
Efficiency: 0.004338002711251694
log(L) contour: -74.48127872371794
log(Z) est.: -112.2648752754901 +- 0.2474271278280715
-------
Num samples: 350880
Num likelihood evals: 3976453
Efficiency: 0.004344520473552732
log(L) contour: -74.14302788750291
log(Z) est.: -112.26379068308681 +- 0.24744906342943573
-------
Num samples: 354960
Num likelihood evals: 4032208
Efficiency: 0.004375888852423148
log(L) contour: -73.82831380042794
log(Z) est.: -112.26284000780225 +- 0.2474683958332468
-------
Num samples: 359040
Num likelihood evals: 4087658
Efficiency: 0.004428779686663837
log(L) contour: -73.5302771564175
log(Z) est.: -112.26149755513464 +- 0.24749590136169172
-------
Num samples: 363120
Num likelihood evals: 4143421
Efficiency: 0.004393954650726376
log(L) contour: -73.20934422587536
log(Z) est.: -112.26050024376094 +- 0.24751641658981058
-------
Num samples: 367200
Num likelihood evals: 4199732
Efficiency: 0.00435646799357421
log(L) contour: -72.90509251125013
log(Z) est.: -112.25989964170846 +- 0.24752879333285097
-------
Num samples: 371280
Num likelihood evals: 4254983
Efficiency: 0.004392225760404085
log(L) contour: -72.59810173791541
log(Z) est.: -112.25953111040975 +- 0.24753637765545602
-------
Num samples: 375360
Num likelihood evals: 4310015
Efficiency: 0.004437951885204978
log(L) contour: -72.26655107052042
log(Z) est.: -112.25903883628033 +- 0.24754659268577467
-------
Num samples: 379440
Num likelihood evals: 4365468
Efficiency: 0.004427023287987088
log(L) contour: -71.97323317194548
log(Z) est.: -112.25892741395549 +- 0.2475488722442283
-------
Num samples: 383520
Num likelihood evals: 4421720
Efficiency: 0.004362605202406704
log(L) contour: -71.68605165813898
log(Z) est.: -112.25872046113797 +- 0.24755316322485188
-------
Num samples: 387600
Num likelihood evals: 4478657
Efficiency: 0.00430759842413691
log(L) contour: -71.41697513589784
log(Z) est.: -112.25860162815307 +- 0.24755562847917537
-------
Num samples: 391680
Num likelihood evals: 4535679
Efficiency: 0.004307250538406317
log(L) contour: -71.16583031610853
log(Z) est.: -112.25845803031564 +- 0.24755861408106258
-------
Num samples: 395760
Num likelihood evals: 4592905
Efficiency: 0.004312203536006899
log(L) contour: -70.89411282492702
log(Z) est.: -112.25830920005066 +- 0.24756171212272954
-------
Num samples: 399840
Num likelihood evals: 4650163
Efficiency: 0.004289812588812526
log(L) contour: -70.64659317372184
log(Z) est.: -112.25825323998889 +- 0.24756287600557156
-------
Num samples: 403920
Num likelihood evals: 4707229
Efficiency: 0.00429453341683815
log(L) contour: -70.39342126180279
log(Z) est.: -112.25823113386241 +- 0.24756333576486728
[5]:
# We can use the summary utility to display results
ns.summary(results)
# We plot useful diagnostics and a distribution cornerplot
ns.plot_diagnostics(results)
ns.plot_cornerplot(results)

--------
Termination Conditions:
Small remaining evidence
--------
likelihood evals: 4707709
samples: 404400
phantom samples: 380160
likelihood evals / sample: 11.6
phantom fraction (%): 94.0%
--------
logZ=-122.91 +- 0.36
max(logL)=-67.39
H=-33.83
ESS=2905
--------
x[#]: mean +- std.dev. | 10%ile / 50%ile / 90%ile | MAP est. | max(L) est.
x[0]: 14.09 +- 0.29 | 13.7 / 14.11 / 14.45 | 14.08 | 12.79
x[1]: 14.09 +- 0.28 | 13.71 / 14.1 / 14.44 | 14.13 | 12.86
x[2]: 14.09 +- 0.28 | 13.71 / 14.1 / 14.45 | 14.09 | 12.84
x[3]: 14.09 +- 0.29 | 13.7 / 14.1 / 14.45 | 14.04 | 12.99
x[4]: 14.09 +- 0.29 | 13.69 / 14.1 / 14.44 | 14.07 | 12.92
x[5]: 14.09 +- 0.28 | 13.7 / 14.1 / 14.45 | 14.13 | 12.81
x[6]: 14.09 +- 0.28 | 13.7 / 14.1 / 14.45 | 14.08 | 12.83
x[7]: 14.09 +- 0.28 | 13.7 / 14.11 / 14.44 | 14.02 | 12.92
x[8]: 14.09 +- 0.28 | 13.71 / 14.1 / 14.45 | 14.03 | 12.9
x[9]: 14.09 +- 0.29 | 13.7 / 14.1 / 14.45 | 14.12 | 12.86
x[10]: 14.09 +- 0.28 | 13.7 / 14.11 / 14.45 | 14.06 | 12.79
x[11]: 14.09 +- 0.29 | 13.7 / 14.11 / 14.45 | 14.12 | 12.83
x[12]: 14.09 +- 0.29 | 13.7 / 14.11 / 14.45 | 14.06 | 12.83
x[13]: 14.09 +- 0.29 | 13.69 / 14.1 / 14.44 | 14.1 | 12.83
x[14]: 14.09 +- 0.28 | 13.7 / 14.1 / 14.46 | 14.06 | 12.8
x[15]: 14.09 +- 0.28 | 13.7 / 14.1 / 14.44 | 14.1 | 12.78
--------
/home/albert/miniconda3/envs/jaxns_py/lib/python3.11/site-packages/jaxns/plotting.py:48: UserWarning: Found samples with zero likelihood evaluations.
  warnings.warn("Found samples with zero likelihood evaluations.")
/home/albert/miniconda3/envs/jaxns_py/lib/python3.11/site-packages/jaxns/plotting.py:52: RuntimeWarning: divide by zero encountered in divide
  1. / num_likelihood_evaluations_per_sample
../_images/examples_mvn_data_mvn_prior_5_2.png
../_images/examples_mvn_data_mvn_prior_5_3.png