Lotka-Volterra Bayesian Parameter Estimation Benchmarks

Parameter Estimation of Lotka-Volterra Equation using DiffEqBayes.jl

using DiffEqBayes, StanSample, DynamicHMC
using Distributions, BenchmarkTools
using OrdinaryDiffEq, RecursiveArrayTools, ParameterizedFunctions
using Plots
gr(fmt=:png)
Plots.GRBackend()

Initializing the problem

f = @ode_def LotkaVolterraTest begin
    dx = a*x - b*x*y
    dy = -c*y + d*x*y
end a b c d
(::Main.##WeaveSandBox#513.LotkaVolterraTest{Main.##WeaveSandBox#513.var"##
#ParameterizedDiffEqFunction#515", Main.##WeaveSandBox#513.var"###Parameter
izedTGradFunction#516", Main.##WeaveSandBox#513.var"###ParameterizedJacobia
nFunction#517", Nothing, Nothing, ModelingToolkit.ODESystem}) (generic func
tion with 1 method)
u0 = [1.0,1.0]
tspan = (0.0,10.0)
p = [1.5,1.0,3.0,1,0]
5-element Vector{Float64}:
 1.5
 1.0
 3.0
 1.0
 0.0
prob = ODEProblem(f, u0, tspan, p)
sol = solve(prob,Tsit5())
retcode: Success
Interpolation: specialized 4th order "free" interpolation
t: 34-element Vector{Float64}:
  0.0
  0.0776084743154256
  0.23264513699277584
  0.4291185174543143
  0.6790821987497083
  0.9444046158046306
  1.2674601546021105
  1.6192913303893046
  1.9869754428624007
  2.2640902393538296
  ⋮
  7.584863345264154
  7.978068981329682
  8.48316543760351
  8.719248247740158
  8.949206788834692
  9.200185054623292
  9.438029017301554
  9.711808134779586
 10.0
u: 34-element Vector{Vector{Float64}}:
 [1.0, 1.0]
 [1.0454942346944578, 0.8576684823217128]
 [1.1758715885138271, 0.6394595703175443]
 [1.419680960717083, 0.4569962601282089]
 [1.8767193950080012, 0.3247334292791134]
 [2.588250064553348, 0.26336255535952197]
 [3.860708909220769, 0.2794458098285261]
 [5.750812667710401, 0.522007253793458]
 [6.8149789991301635, 1.9177826328390826]
 [4.392999292571394, 4.1946707928506015]
 ⋮
 [2.6142539677883176, 0.26416945387526103]
 [4.241076127191776, 0.30512367629219644]
 [6.791123785297794, 1.1345287797146462]
 [6.265370675764816, 2.741693507540289]
 [3.7807651118879675, 4.431165685863469]
 [1.8164201406817277, 4.064056625315935]
 [1.1465021407690634, 2.7911706616216554]
 [0.9557986135403285, 1.6235622951850475]
 [1.0337581256020667, 0.9063703842885965]

We take the solution data obtained and add noise to it to obtain data for using in the Bayesian Inference of the parameters

t = collect(range(1,stop=10,length=10))
sig = 0.49
data = convert(Array, VectorOfArray([(sol(t[i]) + sig*randn(2)) for i in 1:length(t)]))
2×10 Matrix{Float64}:
  2.88808   7.37669  0.66083  1.72621   …  4.99217   2.27825  1.0211
 -0.350357  1.43081  1.63536  0.599904     0.563004  4.53374  1.22047

Plots of the actual data and generated data

scatter(t, data[1,:], lab="#prey (data)")
scatter!(t, data[2,:], lab="#predator (data)")
plot!(sol)

priors = [truncated(Normal(1.5,0.5),0.5,2.5),truncated(Normal(1.2,0.5),0,2),truncated(Normal(3.0,0.5),1,4),truncated(Normal(1.0,0.5),0,2)]
4-element Vector{Distributions.Truncated{Distributions.Normal{Float64}, Dis
tributions.Continuous, Float64}}:
 Truncated(Distributions.Normal{Float64}(μ=1.5, σ=0.5); lower=0.5, upper=2.
5)
 Truncated(Distributions.Normal{Float64}(μ=1.2, σ=0.5); lower=0.0, upper=2.
0)
 Truncated(Distributions.Normal{Float64}(μ=3.0, σ=0.5); lower=1.0, upper=4.
0)
 Truncated(Distributions.Normal{Float64}(μ=1.0, σ=0.5); lower=0.0, upper=2.
0)

Stan.jl backend

The solution converges for tolerance values lower than 1e-3, lower tolerance leads to better accuracy in result but is accompanied by longer warmup and sampling time, truncated normal priors are used for preventing Stan from stepping into negative values.

@btime bayesian_result_stan = stan_inference(prob,t,data,priors,num_samples=10_000,print_summary=false, vars = (DiffEqBayes.StanODEData(), InverseGamma(2, 3)))
40.409891 seconds (558 allocations: 53.570 KiB)
 38.720557 seconds (558 allocations: 53.570 KiB)
 43.640695 seconds (558 allocations: 53.570 KiB)
 46.835558 seconds (558 allocations: 53.570 KiB)
  65.494 s (401082 allocations: 36.01 MiB)
Chains MCMC chain (10000×6×1 Array{Float64, 3}):

Iterations        = 1:1:10000
Number of chains  = 1
Samples per chain = 10000
parameters        = sigma1.1, sigma1.2, theta_1, theta_2, theta_3, theta_4
internals         = 

Summary Statistics
  parameters      mean       std   naive_se      mcse         ess      rhat
      Symbol   Float64   Float64    Float64   Float64     Float64   Float64

    sigma1.1    0.5851    0.1787     0.0018    0.0026   3600.2787    1.0001
    sigma1.2    0.5870    0.1698     0.0017    0.0027   4202.0891    1.0002
     theta_1    1.4820    0.0854     0.0009    0.0016   3120.1771    1.0004
     theta_2    1.0606    0.1175     0.0012    0.0023   3082.1961    1.0001
     theta_3    3.2162    0.2770     0.0028    0.0050   3361.1159    1.0007
     theta_4    1.0222    0.0963     0.0010    0.0018   3180.5577    1.0004

Quantiles
  parameters      2.5%     25.0%     50.0%     75.0%     97.5%
      Symbol   Float64   Float64   Float64   Float64   Float64

    sigma1.1    0.3432    0.4604    0.5524    0.6715    1.0203
    sigma1.2    0.3484    0.4688    0.5549    0.6715    1.0100
     theta_1    1.3342    1.4223    1.4760    1.5339    1.6685
     theta_2    0.8741    0.9831    1.0467    1.1208    1.3392
     theta_3    2.6839    3.0292    3.2094    3.3990    3.7857
     theta_4    0.8385    0.9571    1.0191    1.0857    1.2181

Turing.jl backend

@btime bayesian_result_turing = turing_inference(prob, Tsit5(), t, data, priors, num_samples=10_000)
32.762 s (212185188 allocations: 19.99 GiB)
Chains MCMC chain (10000×17×1 Array{Float64, 3}):

Iterations        = 1001:1:11000
Number of chains  = 1
Samples per chain = 10000
Wall duration     = 32.61 seconds
Compute duration  = 32.61 seconds
parameters        = theta[1], theta[2], theta[3], theta[4], σ[1]
internals         = lp, n_steps, is_accept, acceptance_rate, log_density, h
amiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, 
tree_depth, numerical_error, step_size, nom_step_size

Summary Statistics
  parameters      mean       std   naive_se      mcse         ess      rhat
    ⋯
      Symbol   Float64   Float64    Float64   Float64     Float64   Float64
    ⋯

    theta[1]    1.4760    0.0776     0.0008    0.0017   2176.0102    1.0000
    ⋯
    theta[2]    1.0441    0.0952     0.0010    0.0020   2475.7136    0.9999
    ⋯
    theta[3]    3.2342    0.2574     0.0026    0.0056   2256.7280    1.0001
    ⋯
    theta[4]    1.0266    0.0878     0.0009    0.0019   2281.8331    1.0000
    ⋯
        σ[1]    0.4906    0.0966     0.0010    0.0016   3691.2049    1.0002
    ⋯
                                                                1 column om
itted

Quantiles
  parameters      2.5%     25.0%     50.0%     75.0%     97.5%
      Symbol   Float64   Float64   Float64   Float64   Float64

    theta[1]    1.3419    1.4233    1.4696    1.5224    1.6513
    theta[2]    0.8805    0.9805    1.0349    1.0978    1.2596
    theta[3]    2.7328    3.0632    3.2336    3.4013    3.7582
    theta[4]    0.8544    0.9680    1.0248    1.0827    1.2045
        σ[1]    0.3463    0.4221    0.4758    0.5414    0.7238

DynamicHMC.jl backend

@btime bayesian_result_dynamichmc = dynamichmc_inference(prob,Tsit5(),t,data,priors,num_samples=10_000)
15.294 s (59226588 allocations: 10.14 GiB)
(posterior = NamedTuple{(:parameters, :σ), Tuple{Vector{Float64}, Vector{Fl
oat64}}}[(parameters = [1.617950740097817, 1.2194100452433754, 2.8119087453
559932, 0.8901366523255992], σ = [0.6035207299070037, 0.5605397846883091]),
 (parameters = [1.613707812797184, 1.2017689759523915, 2.8289950475487347, 
0.8991046065775871], σ = [0.5057333259411757, 0.5624110728697573]), (parame
ters = [1.6503186763570363, 1.3307093156487384, 2.7199639676530687, 0.87949
31396582228], σ = [0.4337425317346704, 0.6626601562909692]), (parameters = 
[1.631527773763291, 1.243399308493495, 2.781425311728013, 0.875526993748679
], σ = [0.27340973256307843, 0.628203513960402]), (parameters = [1.58550806
4429506, 1.14866936505213, 2.96380691590979, 0.867348254121628], σ = [1.187
4204445933643, 0.563207537786889]), (parameters = [1.6064745103390097, 0.97
28190790002226, 2.7464211033259778, 0.932094016715205], σ = [0.724740513325
2491, 0.6494079827100279]), (parameters = [1.5396386044362096, 1.1830284448
848052, 3.063931971768936, 0.9859028490357725], σ = [0.607789111778746, 0.3
309967316021593]), (parameters = [1.4717129402507851, 0.8588804060823537, 3
.0270183877334746, 1.083319340993197], σ = [0.76672798185929, 0.73815387957
04697]), (parameters = [1.4444006350252498, 0.8727751065603435, 3.176243914
5426757, 1.0527430815531749], σ = [0.6968061809723286, 0.6989857840309355])
, (parameters = [1.4667065529719656, 0.8475956730515475, 3.3265335589154743
, 1.069839141419957], σ = [0.7873538495336454, 0.8688722838014136])  …  (pa
rameters = [1.398604947702406, 1.0449678786016505, 3.4809885706767933, 1.10
83453291912229], σ = [0.31975069701621545, 0.5362251284332348]), (parameter
s = [1.4279368870494855, 0.9925380598029475, 3.411456094760532, 1.072667464
5692715], σ = [0.5199994943490329, 0.3648090282127852]), (parameters = [1.5
11997459501157, 1.0575400699082445, 3.043855694865712, 0.9834479615174522],
 σ = [0.4219215167796842, 0.37886940079676806]), (parameters = [1.544636841
6667098, 1.1020821861431638, 3.0534112264807316, 0.9306189165812923], σ = [
0.6094931375077572, 0.3686986757710038]), (parameters = [1.5678821140467782
, 1.1056813676270678, 2.854371382428122, 0.9305700746014969], σ = [0.526029
9104180992, 0.3767882345385384]), (parameters = [1.5810551087659341, 1.0778
802621399695, 2.869067711057871, 0.936729706057119], σ = [0.384840513576479
2, 0.45080910669618196]), (parameters = [1.5638268123236045, 1.121391943561
1701, 2.8506575793274713, 0.9346385337770511], σ = [0.5488801766795927, 0.6
737379311341224]), (parameters = [1.6749902013846367, 1.1615623616106794, 2
.6758258650219036, 0.859182020310984], σ = [0.43070751626167514, 0.40499853
21040567]), (parameters = [1.6336269984513874, 1.2111500745891275, 2.764565
3184291565, 0.8447298416636976], σ = [0.47176672775333384, 0.42482967152949
78]), (parameters = [1.6704447915922649, 1.2157397099325766, 2.631306401652
8984, 0.8349085696846288], σ = [0.6662642988368015, 0.43470984047929184])],
 chain = [[0.4811603732394795, 0.19836717231509848, 1.033863521556978, -0.1
1638028610343298, -0.5049748895614007, -0.5788550582783022], [0.47853452049
598133, 0.18379461793345614, 1.0399215417165315, -0.10635589246145091, -0.6
817457724522133, -0.5755222500775132], [0.5009684064499866, 0.2857121201057
209, 1.0006186330337894, -0.12840951510984946, -0.835304165772075, -0.41149
30049925981], [0.48951686035917014, 0.21784900671131355, 1.022963498376187,
 -0.13292929535155112, -1.2967837570703002, -0.4648910981963206], [0.460904
901346941, 0.13860419858065828, 1.0864745622315701, -0.14231470566470486, 0
.17178326065581848, -0.574107090373306], [0.4740420328677634, -0.0275571555
0344586, 1.0102986471275917, -0.07032159308035, -0.32194160084831247, -0.43
16941269497254], [0.4315477164416314, 0.16807762941115778, 1.11969904920658
55, -0.014197459623622387, -0.49792731281135916, -1.1056467779675436], [0.3
864269878725095, -0.15212559127451236, 1.107578104594463, 0.080029791583844
25, -0.2656231925927381, -0.30360296721354907], [0.3676944500674619, -0.136
07736622617767, 1.1556993397252304, 0.05139921625314774, -0.361247982971808
16, -0.35812487453606023], [0.3830194470944812, -0.16535155754256706, 1.201
9307885046897, 0.06750830205082237, -0.23907751339969674, -0.14055913367609
732]  …  [0.33547527389213005, 0.04398614676410815, 1.2473163254791237, 0.1
0286820871156259, -1.1402136586468574, -0.6232011903596053], [0.35623066619
662996, -0.0074899197475233326, 1.2271392074149226, 0.07014850375134357, -0
.6539274398128426, -1.0083812726978867], [0.4134315975318272, 0.05594552238
6632515, 1.1131250324584108, -0.016690554075559152, -0.8629359614374614, -0
.9705637222108507], [0.43478882878279773, 0.09720128702712269, 1.1162594005
486677, -0.0719054124825782, -0.49512758934034523, -0.9977755653649681], [0
.44972573673375416, 0.1004617672232481, 1.0488516375783936, -0.071957897189
97539, -0.6423972039483821, -0.9760719614528374], [0.45809241452429633, 0.0
7499639223596173, 1.0539871376471406, -0.06536050574678194, -0.954926280970
4772, -0.7967112958311561], [0.44713590218324156, 0.11457072041300873, 1.04
75496972551677, -0.06759541933137446, -0.5998751187084431, -0.3949140698928
426], [0.515807315340299, 0.14976596236876905, 0.9842580672868816, -0.15177
448152774725, -0.8423260358050725, -0.9038718363165942], [0.490802695257529
9, 0.1915703830604774, 1.0168834140910255, -0.16873841675184104, -0.7512706
364255459, -0.8560669632604011], [0.5130899332366752, 0.19535270629931434, 
0.9674804535263365, -0.18043305751023586, -0.4060688420636359, -0.833076503
8401349]], tree_statistics = DynamicHMC.TreeStatisticsNUTS[DynamicHMC.TreeS
tatisticsNUTS(-23.918658274717465, 5, turning at positions -32:-39, 0.99809
44222318556, 47, DynamicHMC.Directions(0x77bd80c8)), DynamicHMC.TreeStatist
icsNUTS(-19.010658648870344, 4, turning at positions -12:3, 0.9889081815244
549, 15, DynamicHMC.Directions(0x7d292803)), DynamicHMC.TreeStatisticsNUTS(
-20.649640582075108, 4, turning at positions -23:-30, 0.9809488208476523, 3
1, DynamicHMC.Directions(0x10bd45c1)), DynamicHMC.TreeStatisticsNUTS(-20.18
0471863992, 5, turning at positions -19:12, 0.9897168785202513, 31, Dynamic
HMC.Directions(0xee55778c)), DynamicHMC.TreeStatisticsNUTS(-25.611442506559
13, 6, turning at positions -59:4, 0.9013212141720773, 63, DynamicHMC.Direc
tions(0x0a06ba84)), DynamicHMC.TreeStatisticsNUTS(-26.405484111798906, 5, t
urning at positions -15:16, 0.9815105419264413, 31, DynamicHMC.Directions(0
x7a5deb90)), DynamicHMC.TreeStatisticsNUTS(-26.63010109079323, 5, turning a
t positions -2:29, 0.9053001006978304, 31, DynamicHMC.Directions(0x05dfc87d
)), DynamicHMC.TreeStatisticsNUTS(-27.583680407281612, 5, turning at positi
ons 53:56, 0.9842605524155541, 59, DynamicHMC.Directions(0x9d5ed73c)), Dyna
micHMC.TreeStatisticsNUTS(-25.36285265753504, 4, turning at positions -9:6,
 0.9988367156368064, 15, DynamicHMC.Directions(0xf2c19a36)), DynamicHMC.Tre
eStatisticsNUTS(-24.773449701332027, 4, turning at positions -15:0, 0.97486
47254330153, 15, DynamicHMC.Directions(0xc7d749c0))  …  DynamicHMC.TreeStat
isticsNUTS(-19.254589712143556, 5, turning at positions -16:15, 0.989994351
995041, 31, DynamicHMC.Directions(0xb4cb01af)), DynamicHMC.TreeStatisticsNU
TS(-17.756623867917767, 6, turning at positions -49:14, 0.9977674786047311,
 63, DynamicHMC.Directions(0x3839918e)), DynamicHMC.TreeStatisticsNUTS(-16.
984419449764353, 5, turning at positions 39:46, 0.9947053472867708, 47, Dyn
amicHMC.Directions(0x56da9abe)), DynamicHMC.TreeStatisticsNUTS(-18.33046878
869756, 4, turning at positions 12:27, 0.9406143736387108, 31, DynamicHMC.D
irections(0x0636919b)), DynamicHMC.TreeStatisticsNUTS(-18.613788783887028, 
5, turning at positions -13:18, 0.9933489197189619, 31, DynamicHMC.Directio
ns(0x0afe02f2)), DynamicHMC.TreeStatisticsNUTS(-17.700993197306886, 5, turn
ing at positions -10:21, 0.9965210257237002, 31, DynamicHMC.Directions(0x8e
a961d5)), DynamicHMC.TreeStatisticsNUTS(-20.487330363605224, 5, turning at 
positions -27:4, 0.7471525168288935, 31, DynamicHMC.Directions(0x67da8884))
, DynamicHMC.TreeStatisticsNUTS(-21.101011088964707, 5, turning at position
s -4:27, 0.9779130404597193, 31, DynamicHMC.Directions(0x42d4b03b)), Dynami
cHMC.TreeStatisticsNUTS(-24.228986537097274, 3, turning at positions 3:10, 
0.9736101279835322, 15, DynamicHMC.Directions(0x6ca2502a)), DynamicHMC.Tree
StatisticsNUTS(-23.543190118021187, 4, turning at positions 19:26, 0.869567
1472666967, 31, DynamicHMC.Directions(0xeb3c8fba))], κ = Gaussian kinetic e
nergy (Diagonal), √diag(M⁻¹): [0.05015331075959228, 0.08109162659616491, 0.
07478998844706393, 0.08408817114895441, 0.2843212368214991, 0.2979479069070
064], ϵ = 0.08942982033756662)

Conclusion

Lotka-Volterra Equation is a "predator-prey" model, it models population of two species in which one is the predator (wolf) and the other is the prey (rabbit). It depicts a cyclic behaviour, which is also seen in its Uncertainity Quantification Plots. This behaviour makes it easy to estimate even at very high tolerance values (1e-3).

Appendix

These benchmarks are a part of the SciMLBenchmarks.jl repository, found at: https://github.com/SciML/SciMLBenchmarks.jl. For more information on high-performance scientific machine learning, check out the SciML Open Source Software Organization https://sciml.ai.

To locally run this benchmark, do the following commands:

using SciMLBenchmarks
SciMLBenchmarks.weave_file("benchmarks/BayesianInference","DiffEqBayesLotkaVolterra.jmd")

Computer Information:

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: AMD EPYC 7502 32-Core Processor
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, znver2)
Environment:
  JULIA_CPU_THREADS = 128
  BUILDKITE_PLUGIN_JULIA_CACHE_DIR = /cache/julia-buildkite-plugin
  JULIA_DEPOT_PATH = /cache/julia-buildkite-plugin/depots/5b300254-1738-4989-ae0a-f4d2d937f953

Package Information:

      Status `/cache/build/exclusive-amdci3-0/julialang/scimlbenchmarks-dot-jl/benchmarks/BayesianInference/Project.toml`
  [6e4b80f9] BenchmarkTools v1.3.1
  [ebbdde9d] DiffEqBayes v3.0.0
  [459566f4] DiffEqCallbacks v2.24.1
  [31c24e10] Distributions v0.25.67
  [bbc10e6e] DynamicHMC v3.2.0
  [1dea7af3] OrdinaryDiffEq v6.22.0
  [65888b18] ParameterizedFunctions v5.14.0
  [91a5bcdd] Plots v1.31.7
  [731186ca] RecursiveArrayTools v2.32.0
  [31c91b34] SciMLBenchmarks v0.1.1
  [c1514b29] StanSample v6.9.4
  [fce5fe82] Turing v0.21.10
  [37e2e46d] LinearAlgebra

And the full manifest:

      Status `/cache/build/exclusive-amdci3-0/julialang/scimlbenchmarks-dot-jl/benchmarks/BayesianInference/Manifest.toml`
  [a4c015fc] ANSIColoredPrinters v0.0.1
  [c3fe647b] AbstractAlgebra v0.27.3
  [621f4979] AbstractFFTs v1.2.1
  [80f14c24] AbstractMCMC v4.1.3
  [7a57a42e] AbstractPPL v0.5.2
  [1520ce14] AbstractTrees v0.4.2
  [79e6a3ab] Adapt v3.4.0
  [0bf59076] AdvancedHMC v0.3.5
  [5b7e9947] AdvancedMH v0.6.8
  [576499cb] AdvancedPS v0.3.8
  [b5ca4192] AdvancedVI v0.1.5
  [dce04be8] ArgCheck v2.3.0
  [ec485272] ArnoldiMethod v0.2.0
  [4fba245c] ArrayInterface v6.0.22
  [30b0a656] ArrayInterfaceCore v0.1.17
  [6ba088a2] ArrayInterfaceGPUArrays v0.2.1
  [015c0d05] ArrayInterfaceOffsetArrays v0.1.6
  [b0d46f97] ArrayInterfaceStaticArrays v0.1.4
  [dd5226c6] ArrayInterfaceStaticArraysCore v0.1.0
  [15f4f7f2] AutoHashEquals v0.2.0
  [13072b0f] AxisAlgorithms v1.0.1
  [39de3d68] AxisArrays v0.4.6
  [198e06fe] BangBang v0.3.36
  [9718e550] Baselet v0.1.1
  [6e4b80f9] BenchmarkTools v1.3.1
  [e2ed5e7c] Bijections v0.1.4
  [76274a88] Bijectors v0.10.3
  [62783981] BitTwiddlingConvenienceFunctions v0.1.4
  [2a0fbf3d] CPUSummary v0.1.25
  [00ebfdb7] CSTParser v3.3.6
  [336ed68f] CSV v0.10.4
  [49dc2e85] Calculus v0.5.1
  [082447d4] ChainRules v1.44.2
  [d360d2e6] ChainRulesCore v1.15.3
  [9e997f8a] ChangesOfVariables v0.1.4
  [fb6a15b2] CloseOpenIntervals v0.1.10
  [944b1d66] CodecZlib v0.7.0
  [35d6a980] ColorSchemes v3.19.0
  [3da002f7] ColorTypes v0.11.4
  [c3611d14] ColorVectorSpace v0.9.9
  [5ae59095] Colors v0.12.8
  [861a8166] Combinatorics v1.0.2
  [a80b9123] CommonMark v0.8.6
  [38540f10] CommonSolve v0.2.1
  [bbf7d656] CommonSubexpressions v0.3.0
  [34da2185] Compat v3.46.0
  [5224ae11] CompatHelperLocal v0.1.24
  [b152e2b5] CompositeTypes v0.1.2
  [a33af91c] CompositionsBase v0.1.1
  [8f4d0f93] Conda v1.7.0
  [88cd18e8] ConsoleProgressMonitor v0.1.2
  [187b0558] ConstructionBase v1.4.1
  [d38c429a] Contour v0.6.2
  [adafc99b] CpuId v0.3.1
  [a8cc5b0e] Crayons v4.1.1
  [9a962f9c] DataAPI v1.10.0
  [a93c6f00] DataFrames v1.3.4
  [864edb3b] DataStructures v0.18.13
  [e2d170a0] DataValueInterfaces v1.0.0
  [244e2a9f] DefineSingletons v0.1.2
  [b429d917] DensityInterface v0.4.0
  [2b5f629d] DiffEqBase v6.97.0
  [ebbdde9d] DiffEqBayes v3.0.0
  [459566f4] DiffEqCallbacks v2.24.1
  [163ba53b] DiffResults v1.0.3
  [b552c78f] DiffRules v1.11.0
  [b4f34e82] Distances v0.10.7
  [31c24e10] Distributions v0.25.67
  [ced4e74d] DistributionsAD v0.6.42
  [ffbed154] DocStringExtensions v0.8.6
  [e30172f5] Documenter v0.27.22
  [5b8099bc] DomainSets v0.5.12
  [fa6b7ba4] DualNumbers v0.6.8
  [bbc10e6e] DynamicHMC v3.2.0
  [366bfd00] DynamicPPL v0.20.0
  [7c1d4256] DynamicPolynomials v0.4.5
  [cad2338a] EllipticalSliceSampling v1.0.0
  [d4d017d3] ExponentialUtilities v1.18.0
  [e2ba6199] ExprTools v0.1.8
  [411431e0] Extents v0.1.1
  [c87230d0] FFMPEG v0.4.1
  [7a1cc6ca] FFTW v1.5.0
  [7034ab61] FastBroadcast v0.2.1
  [9aa1b823] FastClosures v0.3.2
  [29a986be] FastLapackInterface v1.2.5
  [48062228] FilePathsBase v0.9.18
  [1a297f60] FillArrays v0.13.2
  [6a86dc24] FiniteDiff v2.15.0
  [53c48c17] FixedPointNumbers v0.8.4
  [59287772] Formatting v0.4.2
  [f6369f11] ForwardDiff v0.10.32
  [069b7b12] FunctionWrappers v1.1.2
  [77dc65aa] FunctionWrappersWrappers v0.1.0
  [d9f16b24] Functors v0.2.8
  [46192b85] GPUArraysCore v0.1.2
  [28b8d3ca] GR v0.66.2
  [c145ed77] GenericSchur v0.5.3
  [cf35fbd7] GeoInterface v1.0.1
  [5c1252a2] GeometryBasics v0.4.3
  [d7ba0133] Git v1.2.1
  [86223c79] Graphs v1.7.2
  [42e2da0e] Grisu v1.0.2
  [0b43b601] Groebner v0.2.10
  [d5909c97] GroupsCore v0.4.0
  [cd3eb016] HTTP v1.2.1
  [eafb193a] Highlights v0.4.5
  [3e5b6fbb] HostCPUFeatures v0.1.8
  [34004b35] HypergeometricFunctions v0.3.11
  [7073ff75] IJulia v1.23.3
  [b5f81e59] IOCapture v0.2.2
  [615f187c] IfElse v0.1.1
  [d25df0c9] Inflate v0.1.3
  [83e8ac13] IniFile v0.5.1
  [22cec73e] InitialValues v0.3.1
  [842dd82b] InlineStrings v1.1.4
  [505f98c9] InplaceOps v0.3.0
  [18e54dd8] IntegerMathUtils v0.1.0
  [a98d9a8b] Interpolations v0.14.4
  [8197267c] IntervalSets v0.7.2
  [3587e190] InverseFunctions v0.1.7
  [41ab1584] InvertedIndices v1.1.0
  [92d709cd] IrrationalConstants v0.1.1
  [c8e1da08] IterTools v1.4.0
  [42fd0dbc] IterativeSolvers v0.9.2
  [82899510] IteratorInterfaceExtensions v1.0.0
  [692b3bcd] JLLWrappers v1.4.1
  [682c06a0] JSON v0.21.3
  [98e50ef6] JuliaFormatter v1.0.9
  [ccbc3e58] JumpProcesses v9.1.0
  [ef3ab10e] KLU v0.3.0
  [5ab0869b] KernelDensity v0.6.5
  [ba0b0d4f] Krylov v0.8.3
  [0b1a1467] KrylovKit v0.5.4
  [8ac3fa9e] LRUCache v1.3.0
  [b964fa9f] LaTeXStrings v1.3.0
  [2ee39098] LabelledArrays v1.12.0
  [23fbe1c1] Latexify v0.15.16
  [10f19ff3] LayoutPointers v0.1.10
  [6f1fad26] Libtask v0.7.5
  [d3d80556] LineSearches v7.1.1
  [7ed4a6bd] LinearSolve v1.23.3
  [6fdf6af0] LogDensityProblems v0.11.5
  [2ab3a3ac] LogExpFunctions v0.3.17
  [e6f89c97] LoggingExtras v0.4.9
  [bdcacae8] LoopVectorization v0.12.122
  [c7f686f2] MCMCChains v5.3.1
  [be115224] MCMCDiagnosticTools v0.1.4
  [e80e1ace] MLJModelInterface v1.6.0
  [1914dd2f] MacroTools v0.5.9
  [d125e4d3] ManualMemory v0.1.8
  [dbb5928d] MappedArrays v0.4.1
  [739be429] MbedTLS v1.1.3
  [442fdcdd] Measures v0.3.1
  [e9d8d322] Metatheory v1.3.4
  [128add7d] MicroCollections v0.1.2
  [e1d29d7a] Missings v1.0.2
  [961ee093] ModelingToolkit v8.19.0
  [0987c9cc] MonteCarloMeasurements v1.0.10
  [46d2c3a1] MuladdMacro v0.2.2
  [102ac46a] MultivariatePolynomials v0.4.6
  [ffc61752] Mustache v1.0.14
  [d8a4904e] MutableArithmetics v1.0.4
  [d41bc354] NLSolversBase v7.8.2
  [2774e3e8] NLsolve v4.5.1
  [872c559c] NNlib v0.8.9
  [77ba4419] NaNMath v0.3.7
  [86f7a689] NamedArrays v0.9.6
  [d9ec5142] NamedTupleTools v0.14.1
  [c020b1a1] NaturalSort v1.0.0
  [8913a72c] NonlinearSolve v0.3.22
  [6fe1bfb0] OffsetArrays v1.12.7
  [429524aa] Optim v1.7.1
  [bac558e1] OrderedCollections v1.4.1
  [1dea7af3] OrdinaryDiffEq v6.22.0
  [90014a1f] PDMats v0.11.16
  [65888b18] ParameterizedFunctions v5.14.0
  [d96e819e] Parameters v0.12.3
  [69de0a69] Parsers v2.3.2
  [ccf2f8ad] PlotThemes v3.0.0
  [995b91a9] PlotUtils v1.3.0
  [91a5bcdd] Plots v1.31.7
  [e409e4f3] PoissonRandom v0.4.1
  [f517fe37] Polyester v0.6.14
  [1d0040c9] PolyesterWeave v0.1.9
  [2dfb63ee] PooledArrays v1.4.2
  [85a6dd25] PositiveFactorizations v0.2.4
  [d236fae5] PreallocationTools v0.4.2
  [21216c6a] Preferences v1.3.0
  [08abe8d2] PrettyTables v1.3.1
  [27ebfcd6] Primes v0.5.3
  [33c8b6b6] ProgressLogging v0.1.4
  [92933f4c] ProgressMeter v1.7.2
  [1fd47b50] QuadGK v2.4.2
  [fb686558] RandomExtensions v0.4.3
  [e6cf234a] RandomNumbers v1.5.3
  [b3c3ace0] RangeArrays v0.3.2
  [c84ed2f1] Ratios v0.4.3
  [c1ae055f] RealDot v0.1.0
  [3cdcf5f2] RecipesBase v1.2.1
  [01d81517] RecipesPipeline v0.6.3
  [731186ca] RecursiveArrayTools v2.32.0
  [f2c3362d] RecursiveFactorization v0.2.11
  [189a3867] Reexport v1.2.2
  [42d2dcc6] Referenceables v0.1.2
  [05181044] RelocatableFolders v0.3.0
  [ae029012] Requires v1.3.0
  [37e2e3b7] ReverseDiff v1.14.1
  [79098fc4] Rmath v0.7.0
  [f2b01f46] Roots v2.0.2
  [7e49a35a] RuntimeGeneratedFunctions v0.5.3
  [3cdde19b] SIMDDualNumbers v0.1.1
  [94e857df] SIMDTypes v0.1.0
  [476501e8] SLEEFPirates v0.6.33
  [0bca4576] SciMLBase v1.50.1
  [31c91b34] SciMLBenchmarks v0.1.1
  [30f210dd] ScientificTypesBase v3.0.0
  [6c6a2e73] Scratch v1.1.1
  [91c51154] SentinelArrays v1.3.13
  [efcf1570] Setfield v0.8.2
  [992d4aef] Showoff v1.0.3
  [777ac1f9] SimpleBufferStream v1.1.0
  [699a6c99] SimpleTraits v0.9.4
  [66db9d55] SnoopPrecompile v1.0.1
  [b85f4697] SoftGlobalScope v1.1.0
  [a2af1166] SortingAlgorithms v1.0.1
  [47a9eef4] SparseDiffTools v1.25.1
  [276daf66] SpecialFunctions v2.1.7
  [171d559e] SplittablesBase v0.1.14
  [d0ee94f6] StanBase v4.7.4
  [c1514b29] StanSample v6.9.4
  [aedffcd0] Static v0.7.6
  [90137ffa] StaticArrays v1.5.5
  [1e83bf80] StaticArraysCore v1.1.0
  [64bff920] StatisticalTraits v3.2.0
  [82ae8749] StatsAPI v1.5.0
  [2913bbd2] StatsBase v0.33.21
  [4c63d2b9] StatsFuns v1.0.1
  [7792a7ef] StrideArraysCore v0.3.15
  [69024149] StringEncodings v0.3.5
  [09ab397b] StructArrays v0.6.12
  [d1185830] SymbolicUtils v0.19.11
  [0c5d862f] Symbolics v4.10.4
  [ab02a1b2] TableOperations v1.2.0
  [3783bdb8] TableTraits v1.0.1
  [bd369af6] Tables v1.7.0
  [62fd8b95] TensorCore v0.1.1
  [8ea1fca8] TermInterface v0.2.3
  [5d786b92] TerminalLoggers v0.1.0
  [8290d209] ThreadingUtilities v0.5.0
  [ac1d9e8a] ThreadsX v0.1.10
  [a759f4b9] TimerOutputs v0.5.21
  [0796e94c] Tokenize v0.5.24
  [9f7883ad] Tracker v0.2.20
  [3bb67fe8] TranscodingStreams v0.9.7
  [28d57a85] Transducers v0.4.73
  [84d833dd] TransformVariables v0.6.3
  [a2a6695c] TreeViews v0.3.0
  [d5829a12] TriangularSolve v0.1.13
  [fce5fe82] Turing v0.21.10
  [5c2747f8] URIs v1.4.0
  [3a884ed6] UnPack v1.0.2
  [1cfade01] UnicodeFun v0.4.1
  [1986cc42] Unitful v1.11.0
  [41fe7b60] Unzip v0.1.2
  [3d5dd08c] VectorizationBase v0.21.46
  [81def892] VersionParsing v1.3.0
  [19fa3120] VertexSafeGraphs v0.2.0
  [ea10d353] WeakRefStrings v1.4.2
  [44d3d7a6] Weave v0.10.9
  [efce3f68] WoodburyMatrices v0.5.5
  [ddb6d928] YAML v0.4.7
  [c2297ded] ZMQ v1.2.1
  [700de1a5] ZygoteRules v0.2.2
  [6e34b625] Bzip2_jll v1.0.8+0
  [83423d85] Cairo_jll v1.16.1+1
  [5ae413db] EarCut_jll v2.2.3+0
  [2e619515] Expat_jll v2.4.8+0
  [b22a6f82] FFMPEG_jll v4.4.2+0
  [f5851436] FFTW_jll v3.3.10+0
  [a3f928ae] Fontconfig_jll v2.13.93+0
  [d7e528f0] FreeType2_jll v2.10.4+0
  [559328eb] FriBidi_jll v1.0.10+0
  [0656b61e] GLFW_jll v3.3.8+0
  [d2c73de3] GR_jll v0.66.2+0
  [78b55507] Gettext_jll v0.21.0+0
  [f8c6e375] Git_jll v2.34.1+0
  [7746bdde] Glib_jll v2.68.3+2
  [3b182d85] Graphite2_jll v1.3.14+0
  [2e76f6c2] HarfBuzz_jll v2.8.1+1
  [1d5cc7b8] IntelOpenMP_jll v2018.0.3+2
  [aacddb02] JpegTurbo_jll v2.1.2+0
  [c1c5ebd0] LAME_jll v3.100.1+0
  [88015f11] LERC_jll v3.0.0+1
  [dd4b983a] LZO_jll v2.10.1+0
  [e9f186c6] Libffi_jll v3.2.2+1
  [d4300ac3] Libgcrypt_jll v1.8.7+0
  [7e76a0d4] Libglvnd_jll v1.3.0+3
  [7add5ba3] Libgpg_error_jll v1.42.0+0
  [94ce4f54] Libiconv_jll v1.16.1+1
  [4b2f31a3] Libmount_jll v2.35.0+0
  [89763e89] Libtiff_jll v4.4.0+0
  [38a345b3] Libuuid_jll v2.36.0+0
  [856f044c] MKL_jll v2022.0.0+0
  [e7412a2a] Ogg_jll v1.3.5+1
  [458c3c95] OpenSSL_jll v1.1.17+0
  [efe28fd5] OpenSpecFun_jll v0.5.5+0
  [91d4177d] Opus_jll v1.3.2+0
  [2f80f16e] PCRE_jll v8.44.0+0
  [30392449] Pixman_jll v0.40.1+0
  [ea2cea3b] Qt5Base_jll v5.15.3+1
  [f50d1b31] Rmath_jll v0.3.0+0
  [a2964d1f] Wayland_jll v1.19.0+0
  [2381bf8a] Wayland_protocols_jll v1.25.0+0
  [02c8fc9c] XML2_jll v2.9.14+0
  [aed1982a] XSLT_jll v1.1.34+0
  [4f6342f7] Xorg_libX11_jll v1.6.9+4
  [0c0b7dd1] Xorg_libXau_jll v1.0.9+4
  [935fb764] Xorg_libXcursor_jll v1.2.0+4
  [a3789734] Xorg_libXdmcp_jll v1.1.3+4
  [1082639a] Xorg_libXext_jll v1.3.4+4
  [d091e8ba] Xorg_libXfixes_jll v5.0.3+4
  [a51aa0fd] Xorg_libXi_jll v1.7.10+4
  [d1454406] Xorg_libXinerama_jll v1.1.4+4
  [ec84b674] Xorg_libXrandr_jll v1.5.2+4
  [ea2f1a96] Xorg_libXrender_jll v0.9.10+4
  [14d82f49] Xorg_libpthread_stubs_jll v0.1.0+3
  [c7cfdc94] Xorg_libxcb_jll v1.13.0+3
  [cc61e674] Xorg_libxkbfile_jll v1.1.0+4
  [12413925] Xorg_xcb_util_image_jll v0.4.0+1
  [2def613f] Xorg_xcb_util_jll v0.4.0+1
  [975044d2] Xorg_xcb_util_keysyms_jll v0.4.0+1
  [0d47668e] Xorg_xcb_util_renderutil_jll v0.3.9+1
  [c22f9ab0] Xorg_xcb_util_wm_jll v0.4.1+1
  [35661453] Xorg_xkbcomp_jll v1.4.2+4
  [33bec58e] Xorg_xkeyboard_config_jll v2.27.0+4
  [c5fb5394] Xorg_xtrans_jll v1.4.0+3
  [8f1865be] ZeroMQ_jll v4.3.4+0
  [3161d3a3] Zstd_jll v1.5.2+0
  [a4ae2306] libaom_jll v3.4.0+0
  [0ac62f75] libass_jll v0.15.1+0
  [f638f0a6] libfdk_aac_jll v2.0.2+0
  [b53b4c65] libpng_jll v1.6.38+0
  [a9144af2] libsodium_jll v1.0.20+0
  [f27f6e37] libvorbis_jll v1.3.7+1
  [1270edf5] x264_jll v2021.5.5+0
  [dfaa095f] x265_jll v3.5.0+0
  [d8fb68d0] xkbcommon_jll v1.4.1+0
  [0dad84c5] ArgTools v1.1.1
  [56f22d72] Artifacts
  [2a0f44e3] Base64
  [ade2ca70] Dates
  [8bb1440f] DelimitedFiles
  [8ba89e20] Distributed
  [f43a241f] Downloads v1.6.0
  [7b1f6079] FileWatching
  [9fa8497b] Future
  [b77e0a4c] InteractiveUtils
  [4af54fe1] LazyArtifacts
  [b27032c2] LibCURL v0.6.3
  [76f85450] LibGit2
  [8f399da3] Libdl
  [37e2e46d] LinearAlgebra
  [56ddb016] Logging
  [d6f4376e] Markdown
  [a63ad114] Mmap
  [ca575930] NetworkOptions v1.2.0
  [44cfe95a] Pkg v1.8.0
  [de0858da] Printf
  [9abbd945] Profile
  [3fa0cd96] REPL
  [9a3f8284] Random
  [ea8e919c] SHA v0.7.0
  [9e88b42a] Serialization
  [1a1011a3] SharedArrays
  [6462fe0b] Sockets
  [2f01184e] SparseArrays
  [10745b16] Statistics
  [4607b0f0] SuiteSparse
  [fa267f1f] TOML v1.0.0
  [a4e569a6] Tar v1.10.0
  [8dfed614] Test
  [cf7118a7] UUIDs
  [4ec0a83e] Unicode
  [e66e0078] CompilerSupportLibraries_jll v0.5.2+0
  [deac9b47] LibCURL_jll v7.81.0+0
  [29816b5a] LibSSH2_jll v1.10.2+0
  [c8ffd9c3] MbedTLS_jll v2.28.0+0
  [14a3606d] MozillaCACerts_jll v2022.2.1
  [4536629a] OpenBLAS_jll v0.3.20+0
  [05823500] OpenLibm_jll v0.8.1+0
  [efcefdf7] PCRE2_jll v10.40.0+0
  [bea87d4a] SuiteSparse_jll v5.10.1+0
  [83775a58] Zlib_jll v1.2.12+3
  [8e850b90] libblastrampoline_jll v5.1.0+0
  [8e850ede] nghttp2_jll v1.41.0+1
  [3f19e933] p7zip_jll v17.4.0+0