Note
Go to the end to download the full example code.
9. Nested logit model¶
Bayesian estimation of a nested logit model.
Michel Bierlaire, EPFL Mon Nov 03 2025, 20:02:56
from IPython.core.display_functions import display
from biogeme import biogeme_logging as blog
from biogeme.bayesian_estimation import BayesianResults, get_pandas_estimated_parameters
from biogeme.biogeme import BIOGEME
from biogeme.expressions import Beta
from biogeme.models import lognested
from biogeme.nests import NestsForNestedLogit, OneNestForNestedLogit
See the data processing script: Data preparation for Swissmetro.
from swissmetro_data import (
CAR_AV_SP,
CAR_CO_SCALED,
CAR_TT_SCALED,
CHOICE,
SM_AV,
SM_COST_SCALED,
SM_TT_SCALED,
TRAIN_AV_SP,
TRAIN_COST_SCALED,
TRAIN_TT_SCALED,
database,
)
logger = blog.get_screen_logger(level=blog.INFO)
logger.info('Example b09_nested')
Example b09_nested
Parameters to be estimated.
asc_car = Beta('asc_car', 0, None, None, 0)
asc_train = Beta('asc_train', 0, None, None, 0)
asc_sm = Beta('asc_sm', 0, None, None, 1)
b_time = Beta('b_time', 0, None, 0, 0)
b_cost = Beta('b_cost', 0, None, 0, 0)
nest_parameter = Beta('nest_parameter', 1, 1, 3, 0)
Definition of the utility functions.
v_train = asc_train + b_time * TRAIN_TT_SCALED + b_cost * TRAIN_COST_SCALED
v_swissmetro = asc_sm + b_time * SM_TT_SCALED + b_cost * SM_COST_SCALED
v_car = asc_car + b_time * CAR_TT_SCALED + b_cost * CAR_CO_SCALED
Associate utility functions with the numbering of alternatives.
v = {1: v_train, 2: v_swissmetro, 3: v_car}
Associate the availability conditions with the alternatives.
av = {1: TRAIN_AV_SP, 2: SM_AV, 3: CAR_AV_SP}
Definition of nests. Only the non-trivial nests must be defined. A trivial nest is a nest containing exactly one alternative. In this example, we create a nest for the existing modes, that is train (1) and car (3).
existing = OneNestForNestedLogit(
nest_param=nest_parameter, list_of_alternatives=[1, 3], name='existing'
)
nests = NestsForNestedLogit(choice_set=list(v), tuple_of_nests=(existing,))
The following elements do not appear in any nest and are assumed each to be alone in a separate nest: {2}. If it is not the intention, check the assignment of alternatives to nests.
Definition of the model. This is the contribution of each observation to the log likelihood function. The choice model is a nested logit, with availability conditions.
log_probability = lognested(v, av, nests, CHOICE)
Create the Biogeme object.
the_biogeme = BIOGEME(
database,
log_probability,
)
the_biogeme.model_name = 'b09_nested'
Biogeme parameters read from biogeme.toml.
Estimate the parameters.
try:
results = BayesianResults.from_netcdf(
filename=f'saved_results/{the_biogeme.model_name}.nc'
)
except FileNotFoundError:
results = the_biogeme.bayesian_estimation()
*** Initial values of the parameters are obtained from the file __b09_nested.iter
Cannot read file __b09_nested.iter. Statement is ignored.
Starting values for the algorithm: {}
/Users/bierlair/MyFiles/github/biogeme/src/biogeme/biogeme.py:832: UserWarning: Note: JAX currently sees 1 CPU device. To parallelize across CPU devices, set XLA_FLAGS as above and restart Python/Jupyter.
macOS / Linux (bash/zsh):
export XLA_FLAGS="--xla_force_host_platform_device_count=<number_of_cores>"
Jupyter (new cell, before `import jax`):
%env XLA_FLAGS="--xla_force_host_platform_device_count=<number_of_cores>"
warning_cpu_devices()
Detected CPU devices: 1 | System logical cores: 12
Current XLA_FLAGS: --xla_force_host_platform_device_count=100
Platform: Darwin 24.6.0 | Python: 3.13.1
Auto sampling: JAX available (devices=1, platforms=cpu) → numpyro/vectorized
/Users/bierlair/MyFiles/github/biogeme/src/biogeme/biogeme.py:859: UserWarning: The effect of Potentials on other parameters is ignored during prior predictive sampling. This is likely to lead to invalid or biased predictive samples.
pm.sample_prior_predictive(
0%| | 0/4000 [00:00<?, ?it/s]
warmup: 0%| | 1/4000 [00:01<1:28:18, 1.32s/it]
warmup: 0%| | 10/4000 [00:01<07:04, 9.40it/s]
warmup: 0%| | 16/4000 [00:01<05:30, 12.07it/s]
warmup: 1%| | 21/4000 [00:01<04:19, 15.36it/s]
warmup: 1%| | 25/4000 [00:02<03:52, 17.07it/s]
warmup: 1%| | 30/4000 [00:02<03:03, 21.67it/s]
warmup: 1%| | 34/4000 [00:02<02:42, 24.40it/s]
warmup: 1%| | 39/4000 [00:02<02:22, 27.72it/s]
warmup: 1%| | 43/4000 [00:02<02:44, 24.06it/s]
warmup: 1%| | 48/4000 [00:02<02:21, 27.92it/s]
warmup: 1%|▏ | 53/4000 [00:02<02:10, 30.32it/s]
warmup: 1%|▏ | 57/4000 [00:03<02:17, 28.66it/s]
warmup: 2%|▏ | 61/4000 [00:03<02:36, 25.13it/s]
warmup: 2%|▏ | 64/4000 [00:03<02:38, 24.79it/s]
warmup: 2%|▏ | 68/4000 [00:03<02:26, 26.78it/s]
warmup: 2%|▏ | 71/4000 [00:03<02:26, 26.79it/s]
warmup: 2%|▏ | 75/4000 [00:03<02:16, 28.78it/s]
warmup: 2%|▏ | 78/4000 [00:03<02:16, 28.77it/s]
warmup: 2%|▏ | 82/4000 [00:03<02:04, 31.40it/s]
warmup: 2%|▏ | 87/4000 [00:04<01:56, 33.71it/s]
warmup: 2%|▏ | 91/4000 [00:04<01:53, 34.38it/s]
warmup: 2%|▏ | 95/4000 [00:04<01:51, 34.92it/s]
warmup: 2%|▎ | 100/4000 [00:04<01:54, 34.21it/s]
warmup: 3%|▎ | 104/4000 [00:05<03:49, 17.00it/s]
warmup: 3%|▎ | 109/4000 [00:05<03:04, 21.12it/s]
warmup: 3%|▎ | 114/4000 [00:05<02:32, 25.55it/s]
warmup: 3%|▎ | 118/4000 [00:05<02:34, 25.11it/s]
warmup: 3%|▎ | 123/4000 [00:05<02:11, 29.41it/s]
warmup: 3%|▎ | 127/4000 [00:05<02:08, 30.10it/s]
warmup: 3%|▎ | 133/4000 [00:05<01:45, 36.58it/s]
warmup: 3%|▎ | 138/4000 [00:05<01:39, 38.81it/s]
warmup: 4%|▎ | 143/4000 [00:05<01:33, 41.37it/s]
warmup: 4%|▎ | 148/4000 [00:06<01:30, 42.54it/s]
warmup: 4%|▍ | 156/4000 [00:06<01:13, 51.99it/s]
warmup: 4%|▍ | 162/4000 [00:06<01:18, 49.18it/s]
warmup: 4%|▍ | 168/4000 [00:06<01:20, 47.33it/s]
warmup: 4%|▍ | 175/4000 [00:06<01:13, 52.04it/s]
warmup: 5%|▍ | 181/4000 [00:06<01:24, 44.95it/s]
warmup: 5%|▍ | 188/4000 [00:06<01:17, 48.94it/s]
warmup: 5%|▍ | 194/4000 [00:07<01:19, 48.03it/s]
warmup: 5%|▌ | 200/4000 [00:07<01:16, 49.71it/s]
warmup: 5%|▌ | 206/4000 [00:07<01:12, 51.98it/s]
warmup: 5%|▌ | 213/4000 [00:07<01:10, 53.45it/s]
warmup: 5%|▌ | 219/4000 [00:07<01:14, 50.96it/s]
warmup: 6%|▌ | 226/4000 [00:07<01:07, 55.67it/s]
warmup: 6%|▌ | 233/4000 [00:07<01:03, 59.09it/s]
warmup: 6%|▌ | 240/4000 [00:07<01:00, 61.69it/s]
warmup: 6%|▌ | 247/4000 [00:07<01:04, 57.87it/s]
warmup: 6%|▋ | 256/4000 [00:08<00:56, 66.22it/s]
warmup: 7%|▋ | 263/4000 [00:08<01:18, 47.67it/s]
warmup: 7%|▋ | 269/4000 [00:08<01:15, 49.28it/s]
warmup: 7%|▋ | 275/4000 [00:08<01:19, 46.83it/s]
warmup: 7%|▋ | 282/4000 [00:08<01:13, 50.90it/s]
warmup: 7%|▋ | 289/4000 [00:08<01:10, 52.70it/s]
warmup: 7%|▋ | 295/4000 [00:08<01:09, 53.28it/s]
warmup: 8%|▊ | 302/4000 [00:08<01:05, 56.23it/s]
warmup: 8%|▊ | 310/4000 [00:09<01:00, 61.13it/s]
warmup: 8%|▊ | 318/4000 [00:09<00:56, 64.62it/s]
warmup: 8%|▊ | 326/4000 [00:09<00:54, 67.18it/s]
warmup: 8%|▊ | 334/4000 [00:09<00:53, 69.09it/s]
warmup: 9%|▊ | 342/4000 [00:09<00:50, 71.92it/s]
warmup: 9%|▉ | 350/4000 [00:09<00:51, 71.19it/s]
warmup: 9%|▉ | 358/4000 [00:09<00:52, 69.52it/s]
warmup: 9%|▉ | 365/4000 [00:09<00:55, 65.40it/s]
warmup: 9%|▉ | 372/4000 [00:09<00:55, 65.09it/s]
warmup: 10%|▉ | 381/4000 [00:10<00:51, 70.67it/s]
warmup: 10%|▉ | 389/4000 [00:10<00:56, 64.30it/s]
warmup: 10%|▉ | 397/4000 [00:10<00:53, 67.83it/s]
warmup: 10%|█ | 406/4000 [00:10<00:49, 72.13it/s]
warmup: 10%|█ | 414/4000 [00:10<00:50, 70.62it/s]
warmup: 11%|█ | 424/4000 [00:10<00:45, 77.84it/s]
warmup: 11%|█ | 433/4000 [00:10<00:45, 78.74it/s]
warmup: 11%|█ | 441/4000 [00:10<00:45, 78.95it/s]
warmup: 11%|█▏ | 450/4000 [00:10<00:44, 79.08it/s]
warmup: 11%|█▏ | 458/4000 [00:11<01:16, 46.24it/s]
warmup: 12%|█▏ | 465/4000 [00:11<01:21, 43.62it/s]
warmup: 12%|█▏ | 473/4000 [00:11<01:10, 50.30it/s]
warmup: 12%|█▏ | 480/4000 [00:11<01:19, 44.48it/s]
warmup: 12%|█▏ | 488/4000 [00:11<01:08, 51.43it/s]
warmup: 12%|█▏ | 497/4000 [00:12<01:04, 54.32it/s]
warmup: 13%|█▎ | 504/4000 [00:12<01:00, 57.39it/s]
warmup: 13%|█▎ | 511/4000 [00:12<01:03, 54.77it/s]
warmup: 13%|█▎ | 519/4000 [00:12<01:00, 57.92it/s]
warmup: 13%|█▎ | 528/4000 [00:12<00:53, 64.43it/s]
warmup: 13%|█▎ | 536/4000 [00:12<00:51, 67.19it/s]
warmup: 14%|█▎ | 543/4000 [00:12<00:52, 66.20it/s]
warmup: 14%|█▍ | 550/4000 [00:12<00:52, 65.85it/s]
warmup: 14%|█▍ | 557/4000 [00:12<00:52, 65.63it/s]
warmup: 14%|█▍ | 564/4000 [00:13<00:56, 60.57it/s]
warmup: 14%|█▍ | 573/4000 [00:13<00:50, 68.24it/s]
warmup: 15%|█▍ | 581/4000 [00:13<00:48, 69.87it/s]
warmup: 15%|█▍ | 589/4000 [00:13<00:49, 68.40it/s]
warmup: 15%|█▍ | 596/4000 [00:13<00:50, 67.43it/s]
warmup: 15%|█▌ | 603/4000 [00:13<00:51, 66.48it/s]
warmup: 15%|█▌ | 611/4000 [00:13<00:48, 69.99it/s]
warmup: 15%|█▌ | 619/4000 [00:13<00:48, 69.87it/s]
warmup: 16%|█▌ | 628/4000 [00:14<00:46, 72.94it/s]
warmup: 16%|█▌ | 637/4000 [00:14<00:43, 76.47it/s]
warmup: 16%|█▌ | 645/4000 [00:14<00:46, 72.71it/s]
warmup: 16%|█▋ | 653/4000 [00:14<00:47, 70.68it/s]
warmup: 17%|█▋ | 661/4000 [00:14<00:47, 70.30it/s]
warmup: 17%|█▋ | 669/4000 [00:14<00:45, 72.63it/s]
warmup: 17%|█▋ | 678/4000 [00:14<00:44, 74.72it/s]
warmup: 17%|█▋ | 686/4000 [00:14<00:45, 72.91it/s]
warmup: 17%|█▋ | 695/4000 [00:14<00:43, 76.01it/s]
warmup: 18%|█▊ | 705/4000 [00:15<00:40, 81.08it/s]
warmup: 18%|█▊ | 714/4000 [00:15<00:41, 78.57it/s]
warmup: 18%|█▊ | 722/4000 [00:15<00:44, 74.13it/s]
warmup: 18%|█▊ | 730/4000 [00:15<00:44, 74.08it/s]
warmup: 18%|█▊ | 738/4000 [00:15<00:44, 73.47it/s]
warmup: 19%|█▊ | 746/4000 [00:15<00:44, 72.79it/s]
warmup: 19%|█▉ | 754/4000 [00:15<00:43, 74.64it/s]
warmup: 19%|█▉ | 762/4000 [00:15<00:42, 75.92it/s]
warmup: 19%|█▉ | 771/4000 [00:15<00:41, 78.12it/s]
warmup: 19%|█▉ | 779/4000 [00:16<00:41, 77.11it/s]
warmup: 20%|█▉ | 787/4000 [00:16<00:43, 74.55it/s]
warmup: 20%|█▉ | 795/4000 [00:16<00:43, 74.19it/s]
warmup: 20%|██ | 803/4000 [00:16<00:43, 73.96it/s]
warmup: 20%|██ | 811/4000 [00:16<00:46, 68.56it/s]
warmup: 20%|██ | 819/4000 [00:16<00:45, 70.03it/s]
warmup: 21%|██ | 827/4000 [00:16<00:49, 63.79it/s]
warmup: 21%|██ | 834/4000 [00:16<00:49, 63.82it/s]
warmup: 21%|██ | 842/4000 [00:16<00:46, 67.66it/s]
warmup: 21%|██▏ | 850/4000 [00:17<00:44, 70.85it/s]
warmup: 21%|██▏ | 858/4000 [00:17<00:45, 69.72it/s]
warmup: 22%|██▏ | 866/4000 [00:17<00:53, 58.78it/s]
warmup: 22%|██▏ | 873/4000 [00:17<00:52, 60.03it/s]
warmup: 22%|██▏ | 880/4000 [00:17<01:01, 50.58it/s]
warmup: 22%|██▏ | 886/4000 [00:17<00:59, 52.55it/s]
warmup: 22%|██▏ | 892/4000 [00:17<01:00, 51.32it/s]
warmup: 23%|██▎ | 901/4000 [00:17<00:51, 60.66it/s]
warmup: 23%|██▎ | 908/4000 [00:18<00:49, 62.77it/s]
warmup: 23%|██▎ | 917/4000 [00:18<00:46, 66.05it/s]
warmup: 23%|██▎ | 924/4000 [00:18<00:47, 64.23it/s]
warmup: 23%|██▎ | 932/4000 [00:18<00:44, 68.22it/s]
warmup: 23%|██▎ | 939/4000 [00:18<00:45, 67.04it/s]
warmup: 24%|██▎ | 947/4000 [00:18<00:44, 68.81it/s]
warmup: 24%|██▍ | 955/4000 [00:18<00:43, 70.48it/s]
warmup: 24%|██▍ | 963/4000 [00:18<00:43, 70.14it/s]
warmup: 24%|██▍ | 972/4000 [00:18<00:40, 73.93it/s]
warmup: 24%|██▍ | 980/4000 [00:19<00:40, 75.27it/s]
warmup: 25%|██▍ | 988/4000 [00:19<00:41, 71.76it/s]
warmup: 25%|██▍ | 997/4000 [00:19<00:40, 75.00it/s]
warmup: 25%|██▌ | 1006/4000 [00:19<00:38, 77.48it/s]
warmup: 25%|██▌ | 1014/4000 [00:19<00:39, 76.41it/s]
warmup: 26%|██▌ | 1023/4000 [00:19<00:37, 79.85it/s]
warmup: 26%|██▌ | 1032/4000 [00:19<00:41, 71.69it/s]
warmup: 26%|██▌ | 1040/4000 [00:19<00:40, 72.78it/s]
warmup: 26%|██▌ | 1048/4000 [00:20<00:41, 71.16it/s]
warmup: 26%|██▋ | 1058/4000 [00:20<00:38, 76.44it/s]
warmup: 27%|██▋ | 1066/4000 [00:20<00:39, 73.45it/s]
warmup: 27%|██▋ | 1074/4000 [00:20<00:42, 69.06it/s]
warmup: 27%|██▋ | 1083/4000 [00:20<00:39, 74.31it/s]
warmup: 27%|██▋ | 1091/4000 [00:20<00:40, 72.71it/s]
warmup: 27%|██▋ | 1099/4000 [00:20<00:40, 71.46it/s]
warmup: 28%|██▊ | 1107/4000 [00:20<00:39, 73.44it/s]
warmup: 28%|██▊ | 1115/4000 [00:20<00:38, 74.82it/s]
warmup: 28%|██▊ | 1124/4000 [00:21<00:37, 77.40it/s]
warmup: 28%|██▊ | 1132/4000 [00:21<00:37, 77.30it/s]
warmup: 29%|██▊ | 1141/4000 [00:21<00:35, 80.63it/s]
warmup: 29%|██▉ | 1150/4000 [00:21<00:35, 79.62it/s]
warmup: 29%|██▉ | 1158/4000 [00:21<00:37, 76.17it/s]
warmup: 29%|██▉ | 1166/4000 [00:21<00:37, 75.32it/s]
warmup: 29%|██▉ | 1174/4000 [00:21<00:37, 74.70it/s]
warmup: 30%|██▉ | 1182/4000 [00:21<00:37, 75.92it/s]
warmup: 30%|██▉ | 1191/4000 [00:21<00:35, 78.04it/s]
warmup: 30%|██▉ | 1199/4000 [00:22<00:36, 76.80it/s]
warmup: 30%|███ | 1207/4000 [00:22<00:36, 75.77it/s]
warmup: 30%|███ | 1215/4000 [00:22<00:37, 75.16it/s]
warmup: 31%|███ | 1223/4000 [00:22<00:37, 74.57it/s]
warmup: 31%|███ | 1231/4000 [00:22<00:36, 75.77it/s]
warmup: 31%|███ | 1239/4000 [00:22<00:36, 75.17it/s]
warmup: 31%|███ | 1248/4000 [00:22<00:34, 79.16it/s]
warmup: 31%|███▏ | 1258/4000 [00:22<00:32, 85.14it/s]
warmup: 32%|███▏ | 1267/4000 [00:22<00:34, 79.72it/s]
warmup: 32%|███▏ | 1276/4000 [00:22<00:33, 82.28it/s]
warmup: 32%|███▏ | 1285/4000 [00:23<00:34, 79.50it/s]
warmup: 32%|███▏ | 1294/4000 [00:23<00:34, 77.61it/s]
warmup: 33%|███▎ | 1302/4000 [00:23<00:35, 74.95it/s]
warmup: 33%|███▎ | 1310/4000 [00:23<00:36, 74.64it/s]
warmup: 33%|███▎ | 1318/4000 [00:23<00:36, 74.42it/s]
warmup: 33%|███▎ | 1327/4000 [00:23<00:34, 78.31it/s]
warmup: 33%|███▎ | 1335/4000 [00:23<00:34, 76.91it/s]
warmup: 34%|███▎ | 1343/4000 [00:23<00:34, 77.34it/s]
warmup: 34%|███▍ | 1351/4000 [00:23<00:34, 77.77it/s]
warmup: 34%|███▍ | 1360/4000 [00:24<00:32, 81.05it/s]
warmup: 34%|███▍ | 1369/4000 [00:24<00:34, 77.26it/s]
warmup: 34%|███▍ | 1377/4000 [00:24<00:35, 74.64it/s]
warmup: 35%|███▍ | 1386/4000 [00:24<00:33, 77.21it/s]
warmup: 35%|███▍ | 1394/4000 [00:24<00:34, 76.22it/s]
warmup: 35%|███▌ | 1403/4000 [00:24<00:33, 78.22it/s]
warmup: 35%|███▌ | 1411/4000 [00:24<00:33, 78.37it/s]
warmup: 36%|███▌ | 1420/4000 [00:24<00:32, 79.68it/s]
warmup: 36%|███▌ | 1428/4000 [00:24<00:32, 79.45it/s]
warmup: 36%|███▌ | 1436/4000 [00:25<00:32, 77.75it/s]
warmup: 36%|███▌ | 1444/4000 [00:25<00:32, 78.00it/s]
warmup: 36%|███▋ | 1452/4000 [00:25<00:32, 78.25it/s]
warmup: 36%|███▋ | 1460/4000 [00:25<00:33, 76.69it/s]
warmup: 37%|███▋ | 1469/4000 [00:25<00:31, 80.34it/s]
warmup: 37%|███▋ | 1478/4000 [00:25<00:32, 76.63it/s]
warmup: 37%|███▋ | 1486/4000 [00:25<00:33, 75.75it/s]
warmup: 37%|███▋ | 1494/4000 [00:25<00:33, 74.99it/s]
warmup: 38%|███▊ | 1503/4000 [00:25<00:31, 78.19it/s]
warmup: 38%|███▊ | 1511/4000 [00:26<00:32, 76.81it/s]
warmup: 38%|███▊ | 1519/4000 [00:26<00:31, 77.62it/s]
warmup: 38%|███▊ | 1529/4000 [00:26<00:29, 84.03it/s]
warmup: 38%|███▊ | 1538/4000 [00:26<00:30, 80.50it/s]
warmup: 39%|███▊ | 1547/4000 [00:26<00:31, 78.32it/s]
warmup: 39%|███▉ | 1556/4000 [00:26<00:30, 79.76it/s]
warmup: 39%|███▉ | 1565/4000 [00:26<00:30, 79.34it/s]
warmup: 39%|███▉ | 1573/4000 [00:26<00:30, 79.22it/s]
warmup: 40%|███▉ | 1581/4000 [00:26<00:30, 78.98it/s]
warmup: 40%|███▉ | 1589/4000 [00:27<00:30, 78.86it/s]
warmup: 40%|███▉ | 1597/4000 [00:27<00:32, 73.01it/s]
warmup: 40%|████ | 1606/4000 [00:27<00:31, 76.74it/s]
warmup: 40%|████ | 1614/4000 [00:27<00:30, 77.22it/s]
warmup: 41%|████ | 1622/4000 [00:27<00:31, 76.07it/s]
warmup: 41%|████ | 1630/4000 [00:27<00:31, 75.38it/s]
warmup: 41%|████ | 1638/4000 [00:27<00:32, 73.27it/s]
warmup: 41%|████ | 1646/4000 [00:27<00:32, 72.05it/s]
warmup: 41%|████▏ | 1654/4000 [00:27<00:32, 73.07it/s]
warmup: 42%|████▏ | 1662/4000 [00:28<00:33, 70.51it/s]
warmup: 42%|████▏ | 1670/4000 [00:28<00:32, 72.79it/s]
warmup: 42%|████▏ | 1678/4000 [00:28<00:32, 71.52it/s]
warmup: 42%|████▏ | 1687/4000 [00:28<00:30, 76.24it/s]
warmup: 42%|████▏ | 1695/4000 [00:28<00:31, 72.50it/s]
warmup: 43%|████▎ | 1703/4000 [00:28<00:31, 72.84it/s]
warmup: 43%|████▎ | 1711/4000 [00:28<00:30, 74.73it/s]
warmup: 43%|████▎ | 1719/4000 [00:28<00:29, 76.08it/s]
warmup: 43%|████▎ | 1727/4000 [00:28<00:29, 76.84it/s]
warmup: 43%|████▎ | 1735/4000 [00:28<00:29, 77.45it/s]
warmup: 44%|████▎ | 1743/4000 [00:29<00:28, 77.87it/s]
warmup: 44%|████▍ | 1751/4000 [00:29<00:28, 77.85it/s]
warmup: 44%|████▍ | 1760/4000 [00:29<00:28, 79.43it/s]
warmup: 44%|████▍ | 1768/4000 [00:29<00:28, 77.49it/s]
warmup: 44%|████▍ | 1776/4000 [00:29<00:29, 74.95it/s]
warmup: 45%|████▍ | 1784/4000 [00:29<00:31, 69.67it/s]
warmup: 45%|████▍ | 1793/4000 [00:29<00:29, 74.45it/s]
warmup: 45%|████▌ | 1801/4000 [00:29<00:29, 75.27it/s]
warmup: 45%|████▌ | 1810/4000 [00:29<00:28, 77.19it/s]
warmup: 45%|████▌ | 1818/4000 [00:30<00:28, 75.54it/s]
warmup: 46%|████▌ | 1827/4000 [00:30<00:28, 76.96it/s]
warmup: 46%|████▌ | 1837/4000 [00:30<00:26, 81.32it/s]
warmup: 46%|████▌ | 1846/4000 [00:30<00:25, 82.95it/s]
warmup: 46%|████▋ | 1855/4000 [00:30<00:25, 82.63it/s]
warmup: 47%|████▋ | 1864/4000 [00:30<00:25, 82.39it/s]
warmup: 47%|████▋ | 1873/4000 [00:30<00:25, 83.81it/s]
warmup: 47%|████▋ | 1882/4000 [00:30<00:25, 83.13it/s]
warmup: 47%|████▋ | 1891/4000 [00:30<00:25, 81.27it/s]
warmup: 48%|████▊ | 1900/4000 [00:31<00:26, 78.31it/s]
warmup: 48%|████▊ | 1908/4000 [00:31<00:27, 76.96it/s]
warmup: 48%|████▊ | 1916/4000 [00:31<00:26, 77.28it/s]
warmup: 48%|████▊ | 1924/4000 [00:31<00:26, 77.73it/s]
warmup: 48%|████▊ | 1932/4000 [00:31<00:27, 76.48it/s]
warmup: 48%|████▊ | 1940/4000 [00:31<00:26, 77.11it/s]
warmup: 49%|████▊ | 1948/4000 [00:31<00:27, 74.62it/s]
warmup: 49%|████▉ | 1956/4000 [00:31<00:35, 58.06it/s]
warmup: 49%|████▉ | 1963/4000 [00:32<00:37, 53.64it/s]
warmup: 49%|████▉ | 1969/4000 [00:32<00:40, 50.75it/s]
warmup: 49%|████▉ | 1975/4000 [00:32<00:40, 49.44it/s]
warmup: 50%|████▉ | 1981/4000 [00:32<00:42, 47.66it/s]
warmup: 50%|████▉ | 1989/4000 [00:32<00:37, 53.33it/s]
warmup: 50%|████▉ | 1996/4000 [00:32<00:35, 56.15it/s]
sample: 50%|█████ | 2004/4000 [00:32<00:32, 60.75it/s]
sample: 50%|█████ | 2012/4000 [00:32<00:30, 64.29it/s]
sample: 50%|█████ | 2020/4000 [00:33<00:29, 66.94it/s]
sample: 51%|█████ | 2028/4000 [00:33<00:28, 70.13it/s]
sample: 51%|█████ | 2036/4000 [00:33<00:28, 68.44it/s]
sample: 51%|█████ | 2044/4000 [00:33<00:27, 71.16it/s]
sample: 51%|█████▏ | 2053/4000 [00:33<00:26, 74.73it/s]
sample: 52%|█████▏ | 2061/4000 [00:33<00:26, 74.51it/s]
sample: 52%|█████▏ | 2069/4000 [00:33<00:25, 75.64it/s]
sample: 52%|█████▏ | 2077/4000 [00:33<00:26, 72.23it/s]
sample: 52%|█████▏ | 2085/4000 [00:33<00:26, 72.58it/s]
sample: 52%|█████▏ | 2093/4000 [00:34<00:25, 74.38it/s]
sample: 53%|█████▎ | 2101/4000 [00:34<00:25, 75.62it/s]
sample: 53%|█████▎ | 2109/4000 [00:34<00:24, 76.61it/s]
sample: 53%|█████▎ | 2117/4000 [00:34<00:25, 72.59it/s]
sample: 53%|█████▎ | 2125/4000 [00:34<00:25, 72.75it/s]
sample: 53%|█████▎ | 2133/4000 [00:34<00:25, 73.05it/s]
sample: 54%|█████▎ | 2141/4000 [00:34<00:26, 69.13it/s]
sample: 54%|█████▎ | 2149/4000 [00:34<00:25, 71.84it/s]
sample: 54%|█████▍ | 2157/4000 [00:34<00:24, 73.83it/s]
sample: 54%|█████▍ | 2165/4000 [00:34<00:24, 73.73it/s]
sample: 54%|█████▍ | 2173/4000 [00:35<00:24, 73.72it/s]
sample: 55%|█████▍ | 2181/4000 [00:35<00:24, 75.21it/s]
sample: 55%|█████▍ | 2189/4000 [00:35<00:23, 76.12it/s]
sample: 55%|█████▍ | 2197/4000 [00:35<00:23, 75.24it/s]
sample: 55%|█████▌ | 2205/4000 [00:35<00:23, 76.27it/s]
sample: 55%|█████▌ | 2213/4000 [00:35<00:23, 77.04it/s]
sample: 56%|█████▌ | 2221/4000 [00:35<00:23, 75.97it/s]
sample: 56%|█████▌ | 2229/4000 [00:35<00:23, 76.54it/s]
sample: 56%|█████▌ | 2237/4000 [00:35<00:23, 75.77it/s]
sample: 56%|█████▌ | 2245/4000 [00:36<00:23, 75.21it/s]
sample: 56%|█████▋ | 2253/4000 [00:36<00:23, 74.64it/s]
sample: 57%|█████▋ | 2261/4000 [00:36<00:23, 74.44it/s]
sample: 57%|█████▋ | 2269/4000 [00:36<00:22, 75.59it/s]
sample: 57%|█████▋ | 2277/4000 [00:36<00:22, 74.93it/s]
sample: 57%|█████▋ | 2285/4000 [00:36<00:23, 74.49it/s]
sample: 57%|█████▋ | 2293/4000 [00:36<00:23, 74.19it/s]
sample: 58%|█████▊ | 2301/4000 [00:36<00:22, 73.99it/s]
sample: 58%|█████▊ | 2309/4000 [00:36<00:23, 71.04it/s]
sample: 58%|█████▊ | 2317/4000 [00:37<00:23, 73.12it/s]
sample: 58%|█████▊ | 2325/4000 [00:37<00:23, 71.76it/s]
sample: 58%|█████▊ | 2333/4000 [00:37<00:23, 72.30it/s]
sample: 59%|█████▊ | 2341/4000 [00:37<00:22, 72.58it/s]
sample: 59%|█████▊ | 2349/4000 [00:37<00:22, 72.84it/s]
sample: 59%|█████▉ | 2357/4000 [00:37<00:23, 70.35it/s]
sample: 59%|█████▉ | 2366/4000 [00:37<00:22, 71.28it/s]
sample: 59%|█████▉ | 2374/4000 [00:37<00:22, 71.70it/s]
sample: 60%|█████▉ | 2382/4000 [00:37<00:22, 72.16it/s]
sample: 60%|█████▉ | 2390/4000 [00:38<00:22, 72.63it/s]
sample: 60%|█████▉ | 2398/4000 [00:38<00:21, 74.34it/s]
sample: 60%|██████ | 2407/4000 [00:38<00:20, 76.92it/s]
sample: 60%|██████ | 2415/4000 [00:38<00:20, 76.17it/s]
sample: 61%|██████ | 2423/4000 [00:38<00:21, 75.09it/s]
sample: 61%|██████ | 2431/4000 [00:38<00:20, 75.73it/s]
sample: 61%|██████ | 2439/4000 [00:38<00:20, 75.84it/s]
sample: 61%|██████ | 2447/4000 [00:38<00:20, 75.05it/s]
sample: 61%|██████▏ | 2455/4000 [00:38<00:20, 75.93it/s]
sample: 62%|██████▏ | 2463/4000 [00:38<00:20, 76.79it/s]
sample: 62%|██████▏ | 2471/4000 [00:39<00:20, 75.68it/s]
sample: 62%|██████▏ | 2480/4000 [00:39<00:19, 77.88it/s]
sample: 62%|██████▏ | 2488/4000 [00:39<00:19, 76.45it/s]
sample: 62%|██████▏ | 2496/4000 [00:39<00:19, 77.03it/s]
sample: 63%|██████▎ | 2504/4000 [00:39<00:19, 77.55it/s]
sample: 63%|██████▎ | 2512/4000 [00:39<00:19, 76.17it/s]
sample: 63%|██████▎ | 2520/4000 [00:39<00:19, 75.34it/s]
sample: 63%|██████▎ | 2528/4000 [00:39<00:19, 74.64it/s]
sample: 63%|██████▎ | 2536/4000 [00:39<00:19, 74.26it/s]
sample: 64%|██████▎ | 2544/4000 [00:40<00:19, 74.11it/s]
sample: 64%|██████▍ | 2552/4000 [00:40<00:19, 73.77it/s]
sample: 64%|██████▍ | 2560/4000 [00:40<00:20, 70.94it/s]
sample: 64%|██████▍ | 2568/4000 [00:40<00:19, 71.70it/s]
sample: 64%|██████▍ | 2576/4000 [00:40<00:20, 70.88it/s]
sample: 65%|██████▍ | 2586/4000 [00:40<00:18, 76.80it/s]
sample: 65%|██████▍ | 2594/4000 [00:40<00:18, 76.74it/s]
sample: 65%|██████▌ | 2602/4000 [00:40<00:18, 75.65it/s]
sample: 65%|██████▌ | 2610/4000 [00:40<00:18, 75.05it/s]
sample: 65%|██████▌ | 2618/4000 [00:41<00:18, 74.56it/s]
sample: 66%|██████▌ | 2626/4000 [00:41<00:18, 75.74it/s]
sample: 66%|██████▌ | 2634/4000 [00:41<00:18, 73.60it/s]
sample: 66%|██████▌ | 2642/4000 [00:41<00:19, 70.76it/s]
sample: 66%|██████▋ | 2650/4000 [00:41<00:18, 72.96it/s]
sample: 66%|██████▋ | 2658/4000 [00:41<00:18, 73.13it/s]
sample: 67%|██████▋ | 2666/4000 [00:41<00:17, 74.89it/s]
sample: 67%|██████▋ | 2674/4000 [00:41<00:17, 75.92it/s]
sample: 67%|██████▋ | 2682/4000 [00:41<00:17, 76.64it/s]
sample: 67%|██████▋ | 2690/4000 [00:42<00:17, 76.49it/s]
sample: 67%|██████▋ | 2698/4000 [00:42<00:17, 72.64it/s]
sample: 68%|██████▊ | 2706/4000 [00:42<00:17, 72.72it/s]
sample: 68%|██████▊ | 2714/4000 [00:42<00:17, 72.66it/s]
sample: 68%|██████▊ | 2722/4000 [00:42<00:17, 74.30it/s]
sample: 68%|██████▊ | 2730/4000 [00:42<00:17, 71.19it/s]
sample: 68%|██████▊ | 2738/4000 [00:42<00:18, 69.12it/s]
sample: 69%|██████▊ | 2746/4000 [00:42<00:17, 70.38it/s]
sample: 69%|██████▉ | 2754/4000 [00:42<00:17, 72.82it/s]
sample: 69%|██████▉ | 2762/4000 [00:43<00:16, 73.27it/s]
sample: 69%|██████▉ | 2771/4000 [00:43<00:16, 76.28it/s]
sample: 69%|██████▉ | 2779/4000 [00:43<00:15, 76.99it/s]
sample: 70%|██████▉ | 2787/4000 [00:43<00:15, 77.60it/s]
sample: 70%|██████▉ | 2795/4000 [00:43<00:15, 76.32it/s]
sample: 70%|███████ | 2803/4000 [00:43<00:16, 73.99it/s]
sample: 70%|███████ | 2811/4000 [00:43<00:16, 73.98it/s]
sample: 70%|███████ | 2819/4000 [00:43<00:16, 73.78it/s]
sample: 71%|███████ | 2827/4000 [00:43<00:15, 74.87it/s]
sample: 71%|███████ | 2836/4000 [00:44<00:15, 73.71it/s]
sample: 71%|███████ | 2845/4000 [00:44<00:15, 76.51it/s]
sample: 71%|███████▏ | 2853/4000 [00:44<00:14, 77.03it/s]
sample: 72%|███████▏ | 2861/4000 [00:44<00:15, 75.81it/s]
sample: 72%|███████▏ | 2870/4000 [00:44<00:14, 79.60it/s]
sample: 72%|███████▏ | 2878/4000 [00:44<00:14, 74.93it/s]
sample: 72%|███████▏ | 2886/4000 [00:44<00:14, 74.45it/s]
sample: 72%|███████▏ | 2894/4000 [00:44<00:14, 74.06it/s]
sample: 73%|███████▎ | 2902/4000 [00:44<00:14, 73.74it/s]
sample: 73%|███████▎ | 2910/4000 [00:45<00:14, 74.17it/s]
sample: 73%|███████▎ | 2918/4000 [00:45<00:14, 72.58it/s]
sample: 73%|███████▎ | 2926/4000 [00:45<00:15, 71.56it/s]
sample: 73%|███████▎ | 2934/4000 [00:45<00:15, 69.48it/s]
sample: 74%|███████▎ | 2942/4000 [00:45<00:14, 70.92it/s]
sample: 74%|███████▍ | 2950/4000 [00:45<00:14, 71.69it/s]
sample: 74%|███████▍ | 2958/4000 [00:45<00:15, 69.46it/s]
sample: 74%|███████▍ | 2965/4000 [00:45<00:15, 67.76it/s]
sample: 74%|███████▍ | 2973/4000 [00:45<00:14, 69.35it/s]
sample: 75%|███████▍ | 2981/4000 [00:46<00:14, 72.03it/s]
sample: 75%|███████▍ | 2989/4000 [00:46<00:13, 73.88it/s]
sample: 75%|███████▍ | 2997/4000 [00:46<00:13, 73.53it/s]
sample: 75%|███████▌ | 3005/4000 [00:46<00:13, 74.97it/s]
sample: 75%|███████▌ | 3013/4000 [00:46<00:13, 71.71it/s]
sample: 76%|███████▌ | 3021/4000 [00:46<00:13, 72.35it/s]
sample: 76%|███████▌ | 3029/4000 [00:46<00:13, 73.98it/s]
sample: 76%|███████▌ | 3037/4000 [00:46<00:13, 69.73it/s]
sample: 76%|███████▌ | 3045/4000 [00:46<00:13, 69.38it/s]
sample: 76%|███████▋ | 3053/4000 [00:47<00:13, 71.92it/s]
sample: 77%|███████▋ | 3061/4000 [00:47<00:12, 73.83it/s]
sample: 77%|███████▋ | 3069/4000 [00:47<00:12, 72.18it/s]
sample: 77%|███████▋ | 3077/4000 [00:47<00:13, 69.17it/s]
sample: 77%|███████▋ | 3086/4000 [00:47<00:12, 74.60it/s]
sample: 77%|███████▋ | 3094/4000 [00:47<00:12, 74.26it/s]
sample: 78%|███████▊ | 3102/4000 [00:47<00:12, 74.34it/s]
sample: 78%|███████▊ | 3110/4000 [00:47<00:11, 74.49it/s]
sample: 78%|███████▊ | 3118/4000 [00:47<00:11, 75.93it/s]
sample: 78%|███████▊ | 3126/4000 [00:47<00:11, 76.97it/s]
sample: 78%|███████▊ | 3134/4000 [00:48<00:11, 75.09it/s]
sample: 79%|███████▊ | 3142/4000 [00:48<00:11, 76.35it/s]
sample: 79%|███████▉ | 3150/4000 [00:48<00:11, 75.96it/s]
sample: 79%|███████▉ | 3158/4000 [00:48<00:10, 77.05it/s]
sample: 79%|███████▉ | 3167/4000 [00:48<00:10, 77.93it/s]
sample: 79%|███████▉ | 3175/4000 [00:48<00:10, 75.57it/s]
sample: 80%|███████▉ | 3183/4000 [00:48<00:10, 75.56it/s]
sample: 80%|███████▉ | 3191/4000 [00:48<00:11, 73.53it/s]
sample: 80%|███████▉ | 3199/4000 [00:48<00:10, 73.66it/s]
sample: 80%|████████ | 3207/4000 [00:49<00:10, 73.55it/s]
sample: 80%|████████ | 3215/4000 [00:49<00:11, 68.50it/s]
sample: 81%|████████ | 3223/4000 [00:49<00:11, 70.23it/s]
sample: 81%|████████ | 3231/4000 [00:49<00:10, 72.70it/s]
sample: 81%|████████ | 3240/4000 [00:49<00:10, 75.94it/s]
sample: 81%|████████ | 3248/4000 [00:49<00:09, 76.61it/s]
sample: 81%|████████▏ | 3256/4000 [00:49<00:09, 75.77it/s]
sample: 82%|████████▏ | 3264/4000 [00:49<00:09, 74.95it/s]
sample: 82%|████████▏ | 3272/4000 [00:49<00:09, 74.49it/s]
sample: 82%|████████▏ | 3280/4000 [00:50<00:09, 74.26it/s]
sample: 82%|████████▏ | 3288/4000 [00:50<00:09, 74.03it/s]
sample: 82%|████████▏ | 3296/4000 [00:50<00:09, 71.08it/s]
sample: 83%|████████▎ | 3304/4000 [00:50<00:09, 71.72it/s]
sample: 83%|████████▎ | 3312/4000 [00:50<00:09, 72.30it/s]
sample: 83%|████████▎ | 3320/4000 [00:50<00:09, 73.40it/s]
sample: 83%|████████▎ | 3328/4000 [00:50<00:09, 73.45it/s]
sample: 83%|████████▎ | 3337/4000 [00:50<00:08, 76.29it/s]
sample: 84%|████████▎ | 3346/4000 [00:50<00:08, 79.89it/s]
sample: 84%|████████▍ | 3355/4000 [00:51<00:08, 79.33it/s]
sample: 84%|████████▍ | 3363/4000 [00:51<00:08, 77.69it/s]
sample: 84%|████████▍ | 3371/4000 [00:51<00:08, 76.41it/s]
sample: 84%|████████▍ | 3379/4000 [00:51<00:08, 75.38it/s]
sample: 85%|████████▍ | 3387/4000 [00:51<00:08, 74.74it/s]
sample: 85%|████████▍ | 3395/4000 [00:51<00:08, 74.54it/s]
sample: 85%|████████▌ | 3403/4000 [00:51<00:08, 71.29it/s]
sample: 85%|████████▌ | 3411/4000 [00:51<00:08, 73.39it/s]
sample: 85%|████████▌ | 3419/4000 [00:51<00:07, 73.47it/s]
sample: 86%|████████▌ | 3427/4000 [00:52<00:07, 73.47it/s]
sample: 86%|████████▌ | 3435/4000 [00:52<00:07, 73.32it/s]
sample: 86%|████████▌ | 3443/4000 [00:52<00:07, 73.37it/s]
sample: 86%|████████▋ | 3451/4000 [00:52<00:07, 73.38it/s]
sample: 86%|████████▋ | 3460/4000 [00:52<00:07, 76.35it/s]
sample: 87%|████████▋ | 3468/4000 [00:52<00:07, 74.09it/s]
sample: 87%|████████▋ | 3476/4000 [00:52<00:07, 73.88it/s]
sample: 87%|████████▋ | 3484/4000 [00:52<00:07, 73.47it/s]
sample: 87%|████████▋ | 3492/4000 [00:52<00:06, 73.48it/s]
sample: 88%|████████▊ | 3501/4000 [00:53<00:06, 76.36it/s]
sample: 88%|████████▊ | 3509/4000 [00:53<00:06, 75.50it/s]
sample: 88%|████████▊ | 3518/4000 [00:53<00:06, 77.79it/s]
sample: 88%|████████▊ | 3526/4000 [00:53<00:06, 73.51it/s]
sample: 88%|████████▊ | 3534/4000 [00:53<00:06, 75.02it/s]
sample: 89%|████████▊ | 3542/4000 [00:53<00:06, 74.51it/s]
sample: 89%|████████▉ | 3550/4000 [00:53<00:06, 71.49it/s]
sample: 89%|████████▉ | 3558/4000 [00:53<00:06, 73.43it/s]
sample: 89%|████████▉ | 3566/4000 [00:53<00:05, 74.88it/s]
sample: 89%|████████▉ | 3574/4000 [00:54<00:05, 74.40it/s]
sample: 90%|████████▉ | 3582/4000 [00:54<00:05, 71.31it/s]
sample: 90%|████████▉ | 3590/4000 [00:54<00:05, 69.48it/s]
sample: 90%|████████▉ | 3598/4000 [00:54<00:05, 70.62it/s]
sample: 90%|█████████ | 3606/4000 [00:54<00:05, 71.48it/s]
sample: 90%|█████████ | 3614/4000 [00:54<00:05, 73.48it/s]
sample: 91%|█████████ | 3622/4000 [00:54<00:05, 72.02it/s]
sample: 91%|█████████ | 3630/4000 [00:54<00:05, 72.32it/s]
sample: 91%|█████████ | 3638/4000 [00:54<00:04, 72.71it/s]
sample: 91%|█████████ | 3646/4000 [00:55<00:05, 70.38it/s]
sample: 91%|█████████▏| 3654/4000 [00:55<00:05, 68.59it/s]
sample: 92%|█████████▏| 3662/4000 [00:55<00:04, 71.28it/s]
sample: 92%|█████████▏| 3670/4000 [00:55<00:04, 69.04it/s]
sample: 92%|█████████▏| 3678/4000 [00:55<00:04, 70.38it/s]
sample: 92%|█████████▏| 3686/4000 [00:55<00:04, 72.79it/s]
sample: 92%|█████████▏| 3694/4000 [00:55<00:04, 74.65it/s]
sample: 93%|█████████▎| 3702/4000 [00:55<00:03, 75.69it/s]
sample: 93%|█████████▎| 3710/4000 [00:55<00:03, 75.01it/s]
sample: 93%|█████████▎| 3718/4000 [00:56<00:03, 74.56it/s]
sample: 93%|█████████▎| 3726/4000 [00:56<00:03, 74.17it/s]
sample: 93%|█████████▎| 3734/4000 [00:56<00:03, 73.87it/s]
sample: 94%|█████████▎| 3742/4000 [00:56<00:03, 75.09it/s]
sample: 94%|█████████▍| 3750/4000 [00:56<00:03, 74.53it/s]
sample: 94%|█████████▍| 3758/4000 [00:56<00:03, 75.60it/s]
sample: 94%|█████████▍| 3766/4000 [00:56<00:03, 76.41it/s]
sample: 94%|█████████▍| 3774/4000 [00:56<00:03, 75.06it/s]
sample: 95%|█████████▍| 3782/4000 [00:56<00:02, 76.16it/s]
sample: 95%|█████████▍| 3790/4000 [00:56<00:02, 75.41it/s]
sample: 95%|█████████▍| 3798/4000 [00:57<00:02, 76.38it/s]
sample: 95%|█████████▌| 3806/4000 [00:57<00:02, 72.85it/s]
sample: 95%|█████████▌| 3814/4000 [00:57<00:02, 73.02it/s]
sample: 96%|█████████▌| 3822/4000 [00:57<00:02, 74.59it/s]
sample: 96%|█████████▌| 3830/4000 [00:57<00:02, 74.33it/s]
sample: 96%|█████████▌| 3839/4000 [00:57<00:02, 76.99it/s]
sample: 96%|█████████▌| 3847/4000 [00:57<00:01, 77.74it/s]
sample: 96%|█████████▋| 3855/4000 [00:57<00:01, 76.39it/s]
sample: 97%|█████████▋| 3863/4000 [00:57<00:01, 77.03it/s]
sample: 97%|█████████▋| 3871/4000 [00:58<00:01, 77.70it/s]
sample: 97%|█████████▋| 3879/4000 [00:58<00:01, 78.06it/s]
sample: 97%|█████████▋| 3888/4000 [00:58<00:01, 79.55it/s]
sample: 97%|█████████▋| 3896/4000 [00:58<00:01, 76.05it/s]
sample: 98%|█████████▊| 3905/4000 [00:58<00:01, 79.77it/s]
sample: 98%|█████████▊| 3914/4000 [00:58<00:01, 79.36it/s]
sample: 98%|█████████▊| 3923/4000 [00:58<00:00, 80.65it/s]
sample: 98%|█████████▊| 3932/4000 [00:58<00:00, 80.01it/s]
sample: 99%|█████████▊| 3941/4000 [00:58<00:00, 80.78it/s]
sample: 99%|█████████▉| 3950/4000 [00:59<00:00, 79.83it/s]
sample: 99%|█████████▉| 3958/4000 [00:59<00:00, 79.45it/s]
sample: 99%|█████████▉| 3967/4000 [00:59<00:00, 80.38it/s]
sample: 99%|█████████▉| 3976/4000 [00:59<00:00, 78.17it/s]
sample: 100%|█████████▉| 3984/4000 [00:59<00:00, 75.34it/s]
sample: 100%|█████████▉| 3992/4000 [00:59<00:00, 74.91it/s]
sample: 100%|██████████| 4000/4000 [00:59<00:00, 75.89it/s]
sample: 100%|██████████| 4000/4000 [00:59<00:00, 67.03it/s]
posterior_predictive_loglike finished in 261 ms
expected_log_likelihood finished in 11 ms
best_draw_log_likelihood finished in 10 ms
/Users/bierlair/python_envs/venv313/lib/python3.13/site-packages/arviz/stats/stats.py:1667: UserWarning: For one or more samples the posterior variance of the log predictive densities exceeds 0.4. This could be indication of WAIC starting to fail.
See http://arxiv.org/abs/1507.04544 for details
warnings.warn(
waic_res finished in 631 ms
waic finished in 631 ms
loo_res finished in 7351 ms (7.35 s)
loo finished in 7351 ms (7.35 s)
Diagnostics computation took 22.7 seconds (cached).
File b09_nested.html has been generated.
Save simulation results on b09_nested.nc
Saved Bayesian results (posterior + metadata) to b09_nested.nc
print(results.short_summary())
Sample size 6768
Sampler NUTS
Number of chains 4
Number of draws per chain 2000
Total number of draws 8000
Acceptance rate target 0.9
Run time 0:01:03.929416
Posterior predictive log-likelihood (sum of log mean p) -5234.07
Expected log-likelihood E[log L(Y|θ)] -5239.44
Best-draw log-likelihood (posterior upper bound) -5236.91
WAIC (Widely Applicable Information Criterion) -5244.89
WAIC Standard Error 62.46
Effective number of parameters (p_WAIC) 10.82
LOO (Leave-One-Out Cross-Validation) -5244.88
LOO Standard Error 62.46
Effective number of parameters (p_LOO) 10.81
pandas_results = get_pandas_estimated_parameters(estimation_results=results)
display(pandas_results)
Name Value (mean) ... ESS (bulk) ESS (tail)
0 asc_train -0.511596 ... 3719.532913 4154.509847
1 asc_car -0.166489 ... 3469.142538 4263.760221
2 b_time -0.899984 ... 3220.978491 4222.676227
3 b_cost -0.856607 ... 4598.688723 4570.329257
4 nest_parameter 2.057677 ... 4077.007373 4295.689611
[5 rows x 12 columns]
We calculate the correlation between the error terms of the alternatives.
corr = nests.correlation(
parameters=results.get_beta_values(),
alternatives_names={1: 'Train', 2: 'Swissmetro', 3: 'Car'},
)
print(corr)
Train Swissmetro Car
Train 1.000000 0.0 0.763819
Swissmetro 0.000000 1.0 0.000000
Car 0.763819 0.0 1.000000
Total running time of the script: (2 minutes 0.825 seconds)