Note
Go to the end to download the full example code.
23a. Binary logit model¶
Bayesian estimation of a binary logit model. Two alternatives: Train and Car.
Michel Bierlaire, EPFL Tue Nov 18 2025, 18:42:42
from IPython.core.display_functions import display
from biogeme.bayesian_estimation import BayesianResults, get_pandas_estimated_parameters
from biogeme.biogeme import BIOGEME
from biogeme.expressions import Beta
from biogeme.models import loglogit
See the data processing script: Data preparation for Swissmetro (binary choice).
from swissmetro_binary import (
CAR_AV_SP,
CAR_CO_SCALED,
CAR_TT_SCALED,
CHOICE,
TRAIN_AV_SP,
TRAIN_COST_SCALED,
TRAIN_TT_SCALED,
database,
)
Parameters to be estimated.
asc_car = Beta('asc_car', 0, None, None, 0)
b_time_car = Beta('b_time_car', 0, None, 0, 0)
b_time_train = Beta('b_time_train', 0, None, 0, 0)
b_cost_car = Beta('b_cost_car', 0, None, 0, 0)
b_cost_train = Beta('b_cost_train', 0, None, 0, 0)
Definition of the utility functions. We estimate a binary logit model. There are only two alternatives.
v_train = b_time_train * TRAIN_TT_SCALED + b_cost_train * TRAIN_COST_SCALED
v_car = asc_car + b_time_car * CAR_TT_SCALED + b_cost_car * CAR_CO_SCALED
Associate utility functions with the numbering of alternatives.
v = {1: v_train, 3: v_car}
Associate the availability conditions with the alternatives.
av = {1: TRAIN_AV_SP, 3: CAR_AV_SP}
Definition of the model. This is the contribution of each observation to the log likelihood function.
log_probability = loglogit(v, av, CHOICE)
Create the Biogeme object
the_biogeme = BIOGEME(database, log_probability)
the_biogeme.model_name = 'b23a_binary_logit'
Estimate the parameters.
try:
results = BayesianResults.from_netcdf(
filename=f'saved_results/{the_biogeme.model_name}.nc'
)
except FileNotFoundError:
results = the_biogeme.bayesian_estimation()
/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()
/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:51, 1.33s/it]
warmup: 0%| | 9/4000 [00:01<07:55, 8.40it/s]
warmup: 0%| | 16/4000 [00:01<04:12, 15.76it/s]
warmup: 1%| | 23/4000 [00:01<02:50, 23.33it/s]
warmup: 1%| | 29/4000 [00:01<02:17, 28.91it/s]
warmup: 1%| | 37/4000 [00:01<01:44, 37.83it/s]
warmup: 1%| | 44/4000 [00:02<01:47, 36.80it/s]
warmup: 1%|▏ | 52/4000 [00:02<01:27, 45.08it/s]
warmup: 1%|▏ | 59/4000 [00:02<01:19, 49.37it/s]
warmup: 2%|▏ | 66/4000 [00:02<01:12, 54.10it/s]
warmup: 2%|▏ | 73/4000 [00:02<01:08, 57.58it/s]
warmup: 2%|▏ | 83/4000 [00:02<00:57, 67.73it/s]
warmup: 2%|▏ | 93/4000 [00:02<00:52, 74.30it/s]
warmup: 3%|▎ | 101/4000 [00:02<01:00, 64.69it/s]
warmup: 3%|▎ | 108/4000 [00:03<01:10, 55.32it/s]
warmup: 3%|▎ | 115/4000 [00:03<01:12, 53.54it/s]
warmup: 3%|▎ | 121/4000 [00:03<01:21, 47.86it/s]
warmup: 3%|▎ | 127/4000 [00:03<01:18, 49.47it/s]
warmup: 3%|▎ | 133/4000 [00:03<01:15, 51.24it/s]
warmup: 4%|▎ | 145/4000 [00:03<00:57, 66.77it/s]
warmup: 4%|▍ | 155/4000 [00:03<00:53, 71.98it/s]
warmup: 4%|▍ | 163/4000 [00:04<01:04, 59.31it/s]
warmup: 4%|▍ | 173/4000 [00:04<00:55, 68.54it/s]
warmup: 5%|▍ | 184/4000 [00:04<00:48, 78.37it/s]
warmup: 5%|▍ | 193/4000 [00:04<00:50, 75.84it/s]
warmup: 5%|▌ | 203/4000 [00:04<00:46, 80.87it/s]
warmup: 5%|▌ | 212/4000 [00:04<00:47, 79.79it/s]
warmup: 6%|▌ | 224/4000 [00:04<00:41, 90.28it/s]
warmup: 6%|▌ | 237/4000 [00:04<00:37, 100.97it/s]
warmup: 6%|▌ | 248/4000 [00:04<00:37, 100.67it/s]
warmup: 6%|▋ | 259/4000 [00:05<00:49, 76.02it/s]
warmup: 7%|▋ | 268/4000 [00:05<00:56, 66.35it/s]
warmup: 7%|▋ | 276/4000 [00:05<00:56, 65.95it/s]
warmup: 7%|▋ | 288/4000 [00:05<00:47, 77.64it/s]
warmup: 7%|▋ | 298/4000 [00:05<00:44, 82.87it/s]
warmup: 8%|▊ | 311/4000 [00:05<00:39, 94.18it/s]
warmup: 8%|▊ | 322/4000 [00:05<00:39, 93.50it/s]
warmup: 8%|▊ | 333/4000 [00:05<00:37, 97.52it/s]
warmup: 9%|▊ | 345/4000 [00:06<00:35, 103.34it/s]
warmup: 9%|▉ | 356/4000 [00:06<00:37, 98.22it/s]
warmup: 9%|▉ | 368/4000 [00:06<00:35, 101.16it/s]
warmup: 10%|▉ | 382/4000 [00:06<00:32, 110.44it/s]
warmup: 10%|▉ | 398/4000 [00:06<00:29, 121.57it/s]
warmup: 10%|█ | 413/4000 [00:06<00:27, 129.11it/s]
warmup: 11%|█ | 427/4000 [00:06<00:27, 131.08it/s]
warmup: 11%|█ | 441/4000 [00:06<00:26, 133.34it/s]
warmup: 11%|█▏ | 456/4000 [00:06<00:26, 134.08it/s]
warmup: 12%|█▏ | 470/4000 [00:07<00:30, 115.26it/s]
warmup: 12%|█▏ | 483/4000 [00:07<00:39, 88.66it/s]
warmup: 12%|█▏ | 494/4000 [00:07<00:39, 89.81it/s]
warmup: 13%|█▎ | 504/4000 [00:07<00:38, 91.20it/s]
warmup: 13%|█▎ | 515/4000 [00:07<00:36, 94.88it/s]
warmup: 13%|█▎ | 526/4000 [00:07<00:36, 95.53it/s]
warmup: 14%|█▎ | 541/4000 [00:07<00:31, 109.52it/s]
warmup: 14%|█▍ | 553/4000 [00:07<00:30, 111.55it/s]
warmup: 14%|█▍ | 565/4000 [00:08<00:30, 110.84it/s]
warmup: 14%|█▍ | 579/4000 [00:08<00:29, 117.05it/s]
warmup: 15%|█▍ | 593/4000 [00:08<00:27, 122.01it/s]
warmup: 15%|█▌ | 608/4000 [00:08<00:26, 127.68it/s]
warmup: 16%|█▌ | 621/4000 [00:08<00:27, 124.83it/s]
warmup: 16%|█▌ | 635/4000 [00:08<00:26, 128.04it/s]
warmup: 16%|█▋ | 652/4000 [00:08<00:24, 138.88it/s]
warmup: 17%|█▋ | 667/4000 [00:08<00:23, 140.90it/s]
warmup: 17%|█▋ | 682/4000 [00:08<00:24, 137.71it/s]
warmup: 17%|█▋ | 696/4000 [00:09<00:24, 132.33it/s]
warmup: 18%|█▊ | 710/4000 [00:09<00:26, 125.71it/s]
warmup: 18%|█▊ | 724/4000 [00:09<00:25, 129.04it/s]
warmup: 18%|█▊ | 738/4000 [00:09<00:24, 130.52it/s]
warmup: 19%|█▉ | 752/4000 [00:09<00:24, 131.16it/s]
warmup: 19%|█▉ | 767/4000 [00:09<00:23, 135.73it/s]
warmup: 20%|█▉ | 782/4000 [00:09<00:23, 138.88it/s]
warmup: 20%|█▉ | 798/4000 [00:09<00:22, 143.70it/s]
warmup: 20%|██ | 814/4000 [00:09<00:21, 147.40it/s]
warmup: 21%|██ | 829/4000 [00:09<00:22, 141.05it/s]
warmup: 21%|██ | 846/4000 [00:10<00:21, 149.08it/s]
warmup: 22%|██▏ | 862/4000 [00:10<00:27, 114.55it/s]
warmup: 22%|██▏ | 875/4000 [00:10<00:28, 109.13it/s]
warmup: 22%|██▏ | 887/4000 [00:10<00:30, 102.14it/s]
warmup: 22%|██▏ | 898/4000 [00:10<00:32, 96.48it/s]
warmup: 23%|██▎ | 910/4000 [00:10<00:30, 100.24it/s]
warmup: 23%|██▎ | 921/4000 [00:10<00:32, 95.59it/s]
warmup: 23%|██▎ | 936/4000 [00:11<00:28, 106.24it/s]
warmup: 24%|██▎ | 948/4000 [00:11<00:28, 108.12it/s]
warmup: 24%|██▍ | 961/4000 [00:11<00:26, 112.77it/s]
warmup: 24%|██▍ | 976/4000 [00:11<00:25, 119.49it/s]
warmup: 25%|██▍ | 989/4000 [00:11<00:26, 112.49it/s]
warmup: 25%|██▌ | 1003/4000 [00:11<00:25, 116.51it/s]
warmup: 25%|██▌ | 1019/4000 [00:11<00:23, 127.05it/s]
warmup: 26%|██▌ | 1037/4000 [00:11<00:20, 141.45it/s]
warmup: 26%|██▋ | 1052/4000 [00:11<00:22, 133.82it/s]
warmup: 27%|██▋ | 1068/4000 [00:12<00:21, 138.55it/s]
warmup: 27%|██▋ | 1083/4000 [00:12<00:20, 139.67it/s]
warmup: 27%|██▋ | 1098/4000 [00:12<00:20, 139.92it/s]
warmup: 28%|██▊ | 1117/4000 [00:12<00:19, 149.92it/s]
warmup: 28%|██▊ | 1133/4000 [00:12<00:20, 143.31it/s]
warmup: 29%|██▊ | 1149/4000 [00:12<00:19, 147.81it/s]
warmup: 29%|██▉ | 1165/4000 [00:12<00:18, 149.83it/s]
warmup: 30%|██▉ | 1181/4000 [00:12<00:18, 152.29it/s]
warmup: 30%|██▉ | 1197/4000 [00:12<00:18, 152.73it/s]
warmup: 30%|███ | 1213/4000 [00:13<00:18, 149.04it/s]
warmup: 31%|███ | 1229/4000 [00:13<00:18, 151.22it/s]
warmup: 31%|███ | 1245/4000 [00:13<00:17, 153.34it/s]
warmup: 32%|███▏ | 1262/4000 [00:13<00:17, 156.67it/s]
warmup: 32%|███▏ | 1278/4000 [00:13<00:17, 156.13it/s]
warmup: 32%|███▏ | 1294/4000 [00:13<00:17, 154.24it/s]
warmup: 33%|███▎ | 1310/4000 [00:13<00:17, 151.40it/s]
warmup: 33%|███▎ | 1326/4000 [00:13<00:18, 147.77it/s]
warmup: 34%|███▎ | 1342/4000 [00:13<00:17, 151.17it/s]
warmup: 34%|███▍ | 1358/4000 [00:13<00:17, 152.26it/s]
warmup: 34%|███▍ | 1374/4000 [00:14<00:17, 154.23it/s]
warmup: 35%|███▍ | 1390/4000 [00:14<00:16, 155.81it/s]
warmup: 35%|███▌ | 1406/4000 [00:14<00:17, 149.08it/s]
warmup: 36%|███▌ | 1422/4000 [00:14<00:16, 152.10it/s]
warmup: 36%|███▌ | 1439/4000 [00:14<00:16, 155.59it/s]
warmup: 36%|███▋ | 1455/4000 [00:14<00:16, 156.60it/s]
warmup: 37%|███▋ | 1472/4000 [00:14<00:15, 158.40it/s]
warmup: 37%|███▋ | 1488/4000 [00:14<00:15, 157.98it/s]
warmup: 38%|███▊ | 1504/4000 [00:14<00:15, 156.48it/s]
warmup: 38%|███▊ | 1521/4000 [00:14<00:15, 158.01it/s]
warmup: 38%|███▊ | 1537/4000 [00:15<00:15, 156.89it/s]
warmup: 39%|███▉ | 1554/4000 [00:15<00:15, 159.04it/s]
warmup: 39%|███▉ | 1570/4000 [00:15<00:15, 157.89it/s]
warmup: 40%|███▉ | 1586/4000 [00:15<00:15, 158.32it/s]
warmup: 40%|████ | 1602/4000 [00:15<00:15, 157.85it/s]
warmup: 40%|████ | 1619/4000 [00:15<00:14, 159.66it/s]
warmup: 41%|████ | 1635/4000 [00:15<00:14, 157.72it/s]
warmup: 41%|████▏ | 1651/4000 [00:15<00:14, 157.67it/s]
warmup: 42%|████▏ | 1669/4000 [00:15<00:14, 162.07it/s]
warmup: 42%|████▏ | 1686/4000 [00:16<00:14, 161.57it/s]
warmup: 43%|████▎ | 1703/4000 [00:16<00:14, 157.67it/s]
warmup: 43%|████▎ | 1720/4000 [00:16<00:14, 158.59it/s]
warmup: 43%|████▎ | 1736/4000 [00:16<00:14, 158.94it/s]
warmup: 44%|████▍ | 1752/4000 [00:16<00:14, 157.32it/s]
warmup: 44%|████▍ | 1768/4000 [00:16<00:14, 156.07it/s]
warmup: 45%|████▍ | 1784/4000 [00:16<00:14, 155.44it/s]
warmup: 45%|████▌ | 1801/4000 [00:16<00:13, 159.30it/s]
warmup: 45%|████▌ | 1817/4000 [00:16<00:14, 155.34it/s]
warmup: 46%|████▌ | 1833/4000 [00:16<00:14, 154.38it/s]
warmup: 46%|████▌ | 1849/4000 [00:17<00:14, 153.12it/s]
warmup: 47%|████▋ | 1866/4000 [00:17<00:13, 157.56it/s]
warmup: 47%|████▋ | 1882/4000 [00:17<00:13, 151.79it/s]
warmup: 47%|████▋ | 1898/4000 [00:17<00:13, 152.14it/s]
warmup: 48%|████▊ | 1914/4000 [00:17<00:13, 152.36it/s]
warmup: 48%|████▊ | 1930/4000 [00:17<00:13, 153.10it/s]
warmup: 49%|████▊ | 1946/4000 [00:17<00:13, 154.34it/s]
warmup: 49%|████▉ | 1962/4000 [00:17<00:15, 129.87it/s]
warmup: 49%|████▉ | 1976/4000 [00:18<00:19, 103.43it/s]
warmup: 50%|████▉ | 1988/4000 [00:18<00:20, 96.91it/s]
warmup: 50%|████▉ | 1999/4000 [00:18<00:21, 94.63it/s]
sample: 50%|█████ | 2013/4000 [00:18<00:18, 105.01it/s]
sample: 51%|█████ | 2028/4000 [00:18<00:16, 116.11it/s]
sample: 51%|█████ | 2044/4000 [00:18<00:15, 126.03it/s]
sample: 51%|█████▏ | 2059/4000 [00:18<00:14, 130.55it/s]
sample: 52%|█████▏ | 2075/4000 [00:18<00:14, 137.44it/s]
sample: 52%|█████▏ | 2091/4000 [00:18<00:13, 141.83it/s]
sample: 53%|█████▎ | 2107/4000 [00:19<00:13, 144.69it/s]
sample: 53%|█████▎ | 2123/4000 [00:19<00:12, 146.70it/s]
sample: 53%|█████▎ | 2139/4000 [00:19<00:12, 149.42it/s]
sample: 54%|█████▍ | 2155/4000 [00:19<00:12, 150.01it/s]
sample: 54%|█████▍ | 2171/4000 [00:19<00:12, 150.50it/s]
sample: 55%|█████▍ | 2187/4000 [00:19<00:12, 150.33it/s]
sample: 55%|█████▌ | 2203/4000 [00:19<00:11, 150.63it/s]
sample: 55%|█████▌ | 2219/4000 [00:19<00:11, 150.18it/s]
sample: 56%|█████▌ | 2235/4000 [00:19<00:11, 150.48it/s]
sample: 56%|█████▋ | 2251/4000 [00:20<00:11, 149.97it/s]
sample: 57%|█████▋ | 2267/4000 [00:20<00:11, 149.62it/s]
sample: 57%|█████▋ | 2283/4000 [00:20<00:11, 150.11it/s]
sample: 57%|█████▋ | 2299/4000 [00:20<00:11, 150.19it/s]
sample: 58%|█████▊ | 2315/4000 [00:20<00:11, 150.59it/s]
sample: 58%|█████▊ | 2331/4000 [00:20<00:10, 151.98it/s]
sample: 59%|█████▊ | 2347/4000 [00:20<00:11, 149.53it/s]
sample: 59%|█████▉ | 2363/4000 [00:20<00:10, 150.82it/s]
sample: 59%|█████▉ | 2379/4000 [00:20<00:10, 151.99it/s]
sample: 60%|█████▉ | 2395/4000 [00:20<00:10, 152.51it/s]
sample: 60%|██████ | 2411/4000 [00:21<00:10, 153.09it/s]
sample: 61%|██████ | 2427/4000 [00:21<00:10, 152.64it/s]
sample: 61%|██████ | 2443/4000 [00:21<00:10, 151.80it/s]
sample: 61%|██████▏ | 2459/4000 [00:21<00:10, 151.70it/s]
sample: 62%|██████▏ | 2475/4000 [00:21<00:10, 151.44it/s]
sample: 62%|██████▏ | 2491/4000 [00:21<00:09, 151.03it/s]
sample: 63%|██████▎ | 2507/4000 [00:21<00:09, 149.34it/s]
sample: 63%|██████▎ | 2522/4000 [00:21<00:09, 148.11it/s]
sample: 63%|██████▎ | 2538/4000 [00:21<00:09, 149.29it/s]
sample: 64%|██████▍ | 2554/4000 [00:22<00:09, 150.19it/s]
sample: 64%|██████▍ | 2570/4000 [00:22<00:09, 150.62it/s]
sample: 65%|██████▍ | 2586/4000 [00:22<00:09, 148.92it/s]
sample: 65%|██████▌ | 2602/4000 [00:22<00:09, 150.34it/s]
sample: 65%|██████▌ | 2618/4000 [00:22<00:09, 151.73it/s]
sample: 66%|██████▌ | 2634/4000 [00:22<00:09, 149.09it/s]
sample: 66%|██████▋ | 2650/4000 [00:22<00:08, 150.95it/s]
sample: 67%|██████▋ | 2666/4000 [00:22<00:08, 153.04it/s]
sample: 67%|██████▋ | 2682/4000 [00:22<00:08, 153.48it/s]
sample: 67%|██████▋ | 2698/4000 [00:22<00:08, 153.71it/s]
sample: 68%|██████▊ | 2715/4000 [00:23<00:08, 156.11it/s]
sample: 68%|██████▊ | 2731/4000 [00:23<00:08, 156.11it/s]
sample: 69%|██████▊ | 2747/4000 [00:23<00:08, 155.18it/s]
sample: 69%|██████▉ | 2763/4000 [00:23<00:07, 155.56it/s]
sample: 69%|██████▉ | 2779/4000 [00:23<00:07, 155.79it/s]
sample: 70%|██████▉ | 2795/4000 [00:23<00:07, 155.94it/s]
sample: 70%|███████ | 2811/4000 [00:23<00:07, 152.62it/s]
sample: 71%|███████ | 2827/4000 [00:23<00:07, 153.32it/s]
sample: 71%|███████ | 2843/4000 [00:23<00:07, 152.99it/s]
sample: 71%|███████▏ | 2859/4000 [00:24<00:07, 153.30it/s]
sample: 72%|███████▏ | 2875/4000 [00:24<00:07, 153.27it/s]
sample: 72%|███████▏ | 2891/4000 [00:24<00:07, 152.44it/s]
sample: 73%|███████▎ | 2907/4000 [00:24<00:07, 144.27it/s]
sample: 73%|███████▎ | 2923/4000 [00:24<00:07, 146.19it/s]
sample: 73%|███████▎ | 2938/4000 [00:24<00:07, 146.43it/s]
sample: 74%|███████▍ | 2954/4000 [00:24<00:07, 148.62it/s]
sample: 74%|███████▍ | 2970/4000 [00:24<00:06, 149.84it/s]
sample: 75%|███████▍ | 2986/4000 [00:24<00:06, 150.89it/s]
sample: 75%|███████▌ | 3002/4000 [00:24<00:06, 152.20it/s]
sample: 75%|███████▌ | 3018/4000 [00:25<00:06, 148.31it/s]
sample: 76%|███████▌ | 3034/4000 [00:25<00:06, 149.92it/s]
sample: 76%|███████▋ | 3050/4000 [00:25<00:06, 151.27it/s]
sample: 77%|███████▋ | 3066/4000 [00:25<00:06, 152.40it/s]
sample: 77%|███████▋ | 3082/4000 [00:25<00:06, 152.40it/s]
sample: 77%|███████▋ | 3099/4000 [00:25<00:05, 156.10it/s]
sample: 78%|███████▊ | 3116/4000 [00:25<00:05, 157.29it/s]
sample: 78%|███████▊ | 3132/4000 [00:25<00:05, 154.70it/s]
sample: 79%|███████▊ | 3148/4000 [00:25<00:05, 155.80it/s]
sample: 79%|███████▉ | 3164/4000 [00:26<00:05, 156.60it/s]
sample: 80%|███████▉ | 3180/4000 [00:26<00:05, 156.44it/s]
sample: 80%|███████▉ | 3196/4000 [00:26<00:05, 154.65it/s]
sample: 80%|████████ | 3212/4000 [00:26<00:05, 155.43it/s]
sample: 81%|████████ | 3228/4000 [00:26<00:04, 156.35it/s]
sample: 81%|████████ | 3244/4000 [00:26<00:04, 155.42it/s]
sample: 82%|████████▏ | 3260/4000 [00:26<00:04, 155.01it/s]
sample: 82%|████████▏ | 3276/4000 [00:26<00:04, 152.04it/s]
sample: 82%|████████▏ | 3292/4000 [00:26<00:04, 149.57it/s]
sample: 83%|████████▎ | 3307/4000 [00:26<00:04, 145.33it/s]
sample: 83%|████████▎ | 3323/4000 [00:27<00:04, 147.23it/s]
sample: 83%|████████▎ | 3339/4000 [00:27<00:04, 149.21it/s]
sample: 84%|████████▍ | 3355/4000 [00:27<00:04, 150.13it/s]
sample: 84%|████████▍ | 3371/4000 [00:27<00:04, 149.89it/s]
sample: 85%|████████▍ | 3386/4000 [00:27<00:04, 146.92it/s]
sample: 85%|████████▌ | 3401/4000 [00:27<00:04, 145.87it/s]
sample: 85%|████████▌ | 3416/4000 [00:27<00:03, 146.70it/s]
sample: 86%|████████▌ | 3431/4000 [00:27<00:03, 147.53it/s]
sample: 86%|████████▌ | 3447/4000 [00:27<00:03, 148.36it/s]
sample: 87%|████████▋ | 3462/4000 [00:28<00:03, 148.76it/s]
sample: 87%|████████▋ | 3477/4000 [00:28<00:03, 147.70it/s]
sample: 87%|████████▋ | 3492/4000 [00:28<00:03, 147.70it/s]
sample: 88%|████████▊ | 3508/4000 [00:28<00:03, 148.55it/s]
sample: 88%|████████▊ | 3524/4000 [00:28<00:03, 149.24it/s]
sample: 88%|████████▊ | 3540/4000 [00:28<00:03, 149.91it/s]
sample: 89%|████████▉ | 3556/4000 [00:28<00:02, 150.47it/s]
sample: 89%|████████▉ | 3572/4000 [00:28<00:02, 150.69it/s]
sample: 90%|████████▉ | 3588/4000 [00:28<00:02, 150.84it/s]
sample: 90%|█████████ | 3604/4000 [00:28<00:02, 151.51it/s]
sample: 90%|█████████ | 3620/4000 [00:29<00:02, 152.44it/s]
sample: 91%|█████████ | 3636/4000 [00:29<00:02, 153.62it/s]
sample: 91%|█████████▏| 3652/4000 [00:29<00:02, 150.49it/s]
sample: 92%|█████████▏| 3668/4000 [00:29<00:02, 150.28it/s]
sample: 92%|█████████▏| 3684/4000 [00:29<00:02, 150.19it/s]
sample: 92%|█████████▎| 3700/4000 [00:29<00:01, 150.23it/s]
sample: 93%|█████████▎| 3716/4000 [00:29<00:01, 151.21it/s]
sample: 93%|█████████▎| 3732/4000 [00:29<00:01, 152.54it/s]
sample: 94%|█████████▎| 3748/4000 [00:29<00:01, 152.90it/s]
sample: 94%|█████████▍| 3764/4000 [00:30<00:01, 153.11it/s]
sample: 94%|█████████▍| 3780/4000 [00:30<00:01, 152.04it/s]
sample: 95%|█████████▍| 3796/4000 [00:30<00:01, 149.10it/s]
sample: 95%|█████████▌| 3812/4000 [00:30<00:01, 150.78it/s]
sample: 96%|█████████▌| 3828/4000 [00:30<00:01, 151.42it/s]
sample: 96%|█████████▌| 3844/4000 [00:30<00:01, 151.44it/s]
sample: 96%|█████████▋| 3860/4000 [00:30<00:00, 151.07it/s]
sample: 97%|█████████▋| 3876/4000 [00:30<00:00, 151.80it/s]
sample: 97%|█████████▋| 3892/4000 [00:30<00:00, 152.54it/s]
sample: 98%|█████████▊| 3908/4000 [00:30<00:00, 153.16it/s]
sample: 98%|█████████▊| 3924/4000 [00:31<00:00, 153.47it/s]
sample: 98%|█████████▊| 3940/4000 [00:31<00:00, 154.64it/s]
sample: 99%|█████████▉| 3956/4000 [00:31<00:00, 151.88it/s]
sample: 99%|█████████▉| 3972/4000 [00:31<00:00, 152.46it/s]
sample: 100%|█████████▉| 3988/4000 [00:31<00:00, 152.94it/s]
sample: 100%|██████████| 4000/4000 [00:31<00:00, 126.64it/s]
posterior_predictive_loglike finished in 87 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 232 ms
waic finished in 232 ms
loo_res finished in 2711 ms (2.71 s)
loo finished in 2711 ms (2.71 s)
print(results.short_summary())
Sample size 2232
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:00:34.328287
Posterior predictive log-likelihood (sum of log mean p) -869.73
Expected log-likelihood E[log L(Y|θ)] -875.39
Best-draw log-likelihood (posterior upper bound) -872.92
WAIC (Widely Applicable Information Criterion) -882.42
WAIC Standard Error 34.81
Effective number of parameters (p_WAIC) 12.69
LOO (Leave-One-Out Cross-Validation) -882.37
LOO Standard Error 34.80
Effective number of parameters (p_LOO) 12.64
Get the results in a pandas table
pandas_results = get_pandas_estimated_parameters(
estimation_results=results,
)
display(pandas_results)
Name Value (mean) ... ESS (bulk) ESS (tail)
0 asc_car -0.901620 ... 5561.528458 4851.382236
1 b_time_train -1.158381 ... 4435.671075 4494.601164
2 b_cost_train -2.402039 ... 6019.122471 4842.254908
3 b_time_car -0.417747 ... 5025.790890 3121.605048
4 b_cost_car -1.078325 ... 5699.909181 4401.614672
[5 rows x 12 columns]
Total running time of the script: (0 minutes 56.023 seconds)