{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "(discrete_choice)=\n", "# Discrete Choice and Random Utility Models\n", "\n", ":::{post} June, 2023\n", ":tags: categorical regression, generalized linear model, discrete choice, model expansion\n", ":category: advanced, reference\n", ":author: Nathaniel Forde\n", ":::" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ":::{include} ../extra_installs.md\n", ":::" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import arviz as az\n", "import numpy as np # For vectorized math operations\n", "import pandas as pd # For file input/output\n", "import pymc as pm\n", "import pytensor.tensor as pt\n", "\n", "from matplotlib import pyplot as plt\n", "from matplotlib.lines import Line2D" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%config InlineBackend.figure_format = 'retina' # high resolution figures\n", "az.style.use(\"arviz-darkgrid\")\n", "rng = np.random.default_rng(42)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Discrete Choice Modelling: The Idea\n", "\n", "Discrete choice modelling is related to the idea of a latent utility scale as discussed in {ref}`ordinal_regression`, but it generalises the idea to decision making. It posits that human decision making can be modelled as a function of latent/subjective utility measurements over a set of mutually exclusive alternatives. The theory states that any decision maker will go with the option that maximises their subjective utility, __and__ that utility can be modelled as a latent linear function of observable features of the world. \n", "\n", "The idea is perhaps most famously applied by Daniel McFadden in the 1970s to predict the market share accruing to transportation choices (i.e. car, rail, walking etc..) in California after the proposed introduction of BART light rail system. It's worth pausing on that point. The theory is one of micro level human decision making that has, in real applications, been scaled up to make broadly accurate macro level predictions. For more details we recommend {cite:t}`train2009`\n", "\n", "We don't need to be too credulous either. This is merely a statistical model and success here is entirely dependent on the skill of modeller and the available measurements coupled with plausible theory. But it's worth noting the scale of the ambition underlying these models. The structure of the model encourages you to articulate your theory of the decision makers and the environment they inhabit. \n", "\n", "### The Data\n", "\n", "In this example, we'll examine the technique of discrete choice modelling using a (i) heating system data set from the R `mlogit` package and (ii) repeat choice data set over cracker brands. We'll be pursuing a Bayesian approach to estimating the models rather than the MLE methodology reported in their vigenette. The first data set shows household choices over offers of heating systems in California. The observations consist of single-family houses in California that were newly built and had central air-conditioning. Five types of systems are considered to have been possible:\n", "\n", " - gas central (gc),\n", " - gas room (gr),\n", " - electric central (ec),\n", " - electric room (er),\n", " - heat pump (hp).\n", "\n", "The data set reports the installation `ic.alt` and operating costs `oc.alt` each household was faced with for each of the five alternatives with some broad demographic information about the household and crucially the choice `depvar`. This is what one choice scenario over the five alternative looks like in the data:\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | idcase | \n", "depvar | \n", "ic.gc | \n", "ic.gr | \n", "ic.ec | \n", "ic.er | \n", "ic.hp | \n", "oc.gc | \n", "oc.gr | \n", "oc.ec | \n", "oc.er | \n", "oc.hp | \n", "income | \n", "agehed | \n", "rooms | \n", "region | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "1 | \n", "gc | \n", "866.0 | \n", "962.64 | \n", "859.9 | \n", "995.76 | \n", "1135.5 | \n", "199.69 | \n", "151.72 | \n", "553.34 | \n", "505.6 | \n", "237.88 | \n", "7 | \n", "25 | \n", "6 | \n", "ncostl | \n", "
\n", " | idcase | \n", "alt_id | \n", "choice | \n", "depvar | \n", "income | \n", "agehed | \n", "rooms | \n", "region | \n", "installation_costs | \n", "operating_costs | \n", "
---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "1 | \n", "1 | \n", "1 | \n", "gc | \n", "7 | \n", "25 | \n", "6 | \n", "ncostl | \n", "866.00 | \n", "199.69 | \n", "
1 | \n", "1 | \n", "2 | \n", "0 | \n", "gc | \n", "7 | \n", "25 | \n", "6 | \n", "ncostl | \n", "962.64 | \n", "151.72 | \n", "
2 | \n", "1 | \n", "3 | \n", "0 | \n", "gc | \n", "7 | \n", "25 | \n", "6 | \n", "ncostl | \n", "859.90 | \n", "553.34 | \n", "
3 | \n", "1 | \n", "4 | \n", "0 | \n", "gc | \n", "7 | \n", "25 | \n", "6 | \n", "ncostl | \n", "995.76 | \n", "505.60 | \n", "
4 | \n", "1 | \n", "5 | \n", "0 | \n", "gc | \n", "7 | \n", "25 | \n", "6 | \n", "ncostl | \n", "1135.50 | \n", "237.88 | \n", "
<xarray.Dataset>\n", "Dimensions: (chain: 4, draw: 1000, obs: 900, alts_probs: 5)\n", "Coordinates:\n", " * chain (chain) int64 0 1 2 3\n", " * draw (draw) int64 0 1 2 3 4 5 6 7 ... 992 993 994 995 996 997 998 999\n", " * obs (obs) int64 0 1 2 3 4 5 6 7 ... 892 893 894 895 896 897 898 899\n", " * alts_probs (alts_probs) <U2 'ec' 'er' 'gc' 'gr' 'hp'\n", "Data variables:\n", " beta_ic (chain, draw) float64 0.001854 0.001794 ... 0.002087 0.001928\n", " beta_oc (chain, draw) float64 -0.003802 -0.003846 ... -0.00447 -0.004533\n", " p (chain, draw, obs, alts_probs) float64 0.07322 0.1129 ... 0.1111\n", "Attributes:\n", " created_at: 2023-07-13T17:29:12.988497\n", " arviz_version: 0.15.1
<xarray.Dataset>\n", "Dimensions: (chain: 4, draw: 1000, obs: 900)\n", "Coordinates:\n", " * chain (chain) int64 0 1 2 3\n", " * draw (draw) int64 0 1 2 3 4 5 6 7 8 ... 992 993 994 995 996 997 998 999\n", " * obs (obs) int64 0 1 2 3 4 5 6 7 8 ... 892 893 894 895 896 897 898 899\n", "Data variables:\n", " y_cat (chain, draw, obs) int64 4 3 4 2 2 1 1 2 4 1 ... 4 3 2 1 4 2 1 1 0\n", "Attributes:\n", " created_at: 2023-07-13T17:29:19.656809\n", " arviz_version: 0.15.1\n", " inference_library: pymc\n", " inference_library_version: 5.3.0
<xarray.Dataset>\n", "Dimensions: (chain: 4, draw: 1000, y_cat_dim_0: 1, y_cat_dim_1: 900)\n", "Coordinates:\n", " * chain (chain) int64 0 1 2 3\n", " * draw (draw) int64 0 1 2 3 4 5 6 7 ... 993 994 995 996 997 998 999\n", " * y_cat_dim_0 (y_cat_dim_0) int64 0\n", " * y_cat_dim_1 (y_cat_dim_1) int64 0 1 2 3 4 5 6 ... 894 895 896 897 898 899\n", "Data variables:\n", " y_cat (chain, draw, y_cat_dim_0, y_cat_dim_1) float64 -1.258 ... -...\n", "Attributes:\n", " created_at: 2023-07-13T17:29:12.992158\n", " arviz_version: 0.15.1
<xarray.Dataset>\n", "Dimensions: (chain: 4, draw: 1000)\n", "Coordinates:\n", " * chain (chain) int64 0 1 2 3\n", " * draw (draw) int64 0 1 2 3 4 5 6 ... 993 994 995 996 997 998 999\n", "Data variables:\n", " acceptance_rate (chain, draw) float64 0.9667 1.0 0.8868 ... 0.8931 0.9283\n", " step_size (chain, draw) float64 0.02965 0.02965 ... 0.03209 0.03209\n", " diverging (chain, draw) bool False False False ... False False False\n", " energy (chain, draw) float64 1.311e+03 1.311e+03 ... 1.312e+03\n", " n_steps (chain, draw) int64 3 3 3 3 1 11 3 7 3 ... 7 7 7 11 7 3 7 3\n", " tree_depth (chain, draw) int64 2 2 2 2 1 4 2 3 2 ... 2 3 3 3 4 3 2 3 2\n", " lp (chain, draw) float64 1.311e+03 1.311e+03 ... 1.311e+03\n", "Attributes:\n", " created_at: 2023-07-13T17:29:12.990891\n", " arviz_version: 0.15.1
<xarray.Dataset>\n", "Dimensions: (chain: 1, draw: 500, obs: 900, alts_probs: 5)\n", "Coordinates:\n", " * chain (chain) int64 0\n", " * draw (draw) int64 0 1 2 3 4 5 6 7 ... 492 493 494 495 496 497 498 499\n", " * obs (obs) int64 0 1 2 3 4 5 6 7 ... 892 893 894 895 896 897 898 899\n", " * alts_probs (alts_probs) <U2 'ec' 'er' 'gc' 'gr' 'hp'\n", "Data variables:\n", " beta_oc (chain, draw) float64 0.05221 0.1678 0.7865 ... 0.5232 -0.09242\n", " p (chain, draw, obs, alts_probs) float64 4.778e-201 ... 4.831e-91\n", " beta_ic (chain, draw) float64 -0.57 -0.8283 0.2129 ... 1.097 0.2006\n", "Attributes:\n", " created_at: 2023-07-13T17:29:07.842667\n", " arviz_version: 0.15.1\n", " inference_library: pymc\n", " inference_library_version: 5.3.0
<xarray.Dataset>\n", "Dimensions: (chain: 1, draw: 500, obs: 900)\n", "Coordinates:\n", " * chain (chain) int64 0\n", " * draw (draw) int64 0 1 2 3 4 5 6 7 8 ... 492 493 494 495 496 497 498 499\n", " * obs (obs) int64 0 1 2 3 4 5 6 7 8 ... 892 893 894 895 896 897 898 899\n", "Data variables:\n", " y_cat (chain, draw, obs) int64 4 4 4 4 4 4 4 4 4 4 ... 3 1 1 3 3 3 3 3 3\n", "Attributes:\n", " created_at: 2023-07-13T17:29:07.844409\n", " arviz_version: 0.15.1\n", " inference_library: pymc\n", " inference_library_version: 5.3.0
<xarray.Dataset>\n", "Dimensions: (obs: 900)\n", "Coordinates:\n", " * obs (obs) int64 0 1 2 3 4 5 6 7 8 ... 892 893 894 895 896 897 898 899\n", "Data variables:\n", " y_cat (obs) int64 2 2 2 1 1 2 2 2 2 2 2 2 2 ... 2 2 2 2 2 2 2 1 2 2 2 2 2\n", "Attributes:\n", " created_at: 2023-07-13T17:29:07.844758\n", " arviz_version: 0.15.1\n", " inference_library: pymc\n", " inference_library_version: 5.3.0
\n", " | mean | \n", "sd | \n", "hdi_3% | \n", "hdi_97% | \n", "mcse_mean | \n", "mcse_sd | \n", "ess_bulk | \n", "ess_tail | \n", "r_hat | \n", "
---|---|---|---|---|---|---|---|---|---|
beta_ic | \n", "0.002 | \n", "0.0 | \n", "0.002 | \n", "0.002 | \n", "0.0 | \n", "0.0 | \n", "1870.0 | \n", "1999.0 | \n", "1.0 | \n", "
beta_oc | \n", "-0.004 | \n", "0.0 | \n", "-0.005 | \n", "-0.004 | \n", "0.0 | \n", "0.0 | \n", "881.0 | \n", "1105.0 | \n", "1.0 | \n", "
<xarray.DataArray 'p' (alts_probs: 5)>\n", "array([0.08414602, 0.13748865, 0.26918857, 0.38213088, 0.12704589])\n", "Coordinates:\n", " * alts_probs (alts_probs) <U2 'ec' 'er' 'gc' 'gr' 'hp'
\n", " | mean | \n", "sd | \n", "hdi_3% | \n", "hdi_97% | \n", "mcse_mean | \n", "mcse_sd | \n", "ess_bulk | \n", "ess_tail | \n", "r_hat | \n", "
---|---|---|---|---|---|---|---|---|---|
beta_ic | \n", "0.001 | \n", "0.000 | \n", "-0.000 | \n", "0.001 | \n", "0.000 | \n", "0.000 | \n", "1215.0 | \n", "1612.0 | \n", "1.00 | \n", "
beta_oc | \n", "-0.003 | \n", "0.001 | \n", "-0.005 | \n", "-0.001 | \n", "0.000 | \n", "0.000 | \n", "1379.0 | \n", "1743.0 | \n", "1.00 | \n", "
alpha[ec] | \n", "1.039 | \n", "0.497 | \n", "0.076 | \n", "1.936 | \n", "0.016 | \n", "0.012 | \n", "908.0 | \n", "1054.0 | \n", "1.00 | \n", "
alpha[er] | \n", "1.077 | \n", "0.474 | \n", "0.216 | \n", "1.988 | \n", "0.016 | \n", "0.012 | \n", "839.0 | \n", "991.0 | \n", "1.00 | \n", "
alpha[gc] | \n", "2.376 | \n", "0.309 | \n", "1.789 | \n", "2.953 | \n", "0.011 | \n", "0.008 | \n", "814.0 | \n", "836.0 | \n", "1.01 | \n", "
alpha[gr] | \n", "0.733 | \n", "0.373 | \n", "-0.031 | \n", "1.374 | \n", "0.013 | \n", "0.009 | \n", "854.0 | \n", "947.0 | \n", "1.01 | \n", "
\n", " | mean | \n", "sd | \n", "hdi_3% | \n", "hdi_97% | \n", "mcse_mean | \n", "mcse_sd | \n", "ess_bulk | \n", "ess_tail | \n", "r_hat | \n", "
---|---|---|---|---|---|---|---|---|---|
beta_income[ec] | \n", "0.0971 | \n", "0.1074 | \n", "-0.1025 | \n", "0.3046 | \n", "0.0035 | \n", "0.0025 | \n", "936.3265 | \n", "1900.0530 | \n", "1.0033 | \n", "
beta_income[er] | \n", "0.0655 | \n", "0.1047 | \n", "-0.1187 | \n", "0.2695 | \n", "0.0036 | \n", "0.0025 | \n", "839.1058 | \n", "1613.9147 | \n", "1.0017 | \n", "
beta_income[gc] | \n", "0.0673 | \n", "0.0867 | \n", "-0.1058 | \n", "0.2202 | \n", "0.0032 | \n", "0.0023 | \n", "722.9224 | \n", "1321.0255 | \n", "1.0028 | \n", "
beta_income[gr] | \n", "-0.0318 | \n", "0.0977 | \n", "-0.2220 | \n", "0.1441 | \n", "0.0034 | \n", "0.0024 | \n", "807.8161 | \n", "1624.6096 | \n", "1.0020 | \n", "
beta_ic | \n", "0.0004 | \n", "0.0007 | \n", "-0.0009 | \n", "0.0016 | \n", "0.0000 | \n", "0.0000 | \n", "752.9909 | \n", "914.0799 | \n", "1.0019 | \n", "
beta_oc | \n", "-0.0035 | \n", "0.0015 | \n", "-0.0064 | \n", "-0.0007 | \n", "0.0000 | \n", "0.0000 | \n", "1436.0405 | \n", "2066.3187 | \n", "1.0015 | \n", "
alpha[ec] | \n", "1.0354 | \n", "1.0479 | \n", "-0.4211 | \n", "3.0541 | \n", "0.0470 | \n", "0.0333 | \n", "520.2449 | \n", "1178.1694 | \n", "1.0063 | \n", "
alpha[er] | \n", "1.2391 | \n", "1.0751 | \n", "-0.3175 | \n", "3.2426 | \n", "0.0507 | \n", "0.0358 | \n", "441.6820 | \n", "991.4928 | \n", "1.0064 | \n", "
alpha[gc] | \n", "2.3718 | \n", "0.7613 | \n", "1.1220 | \n", "3.7710 | \n", "0.0366 | \n", "0.0259 | \n", "414.8905 | \n", "699.3486 | \n", "1.0073 | \n", "
alpha[gr] | \n", "1.2014 | \n", "0.8524 | \n", "-0.0952 | \n", "2.8006 | \n", "0.0402 | \n", "0.0284 | \n", "442.3913 | \n", "1198.3044 | \n", "1.0053 | \n", "
chol_corr[0, 0] | \n", "1.0000 | \n", "0.0000 | \n", "1.0000 | \n", "1.0000 | \n", "0.0000 | \n", "0.0000 | \n", "4000.0000 | \n", "4000.0000 | \n", "NaN | \n", "
chol_corr[0, 1] | \n", "0.1184 | \n", "0.3671 | \n", "-0.5402 | \n", "0.7923 | \n", "0.0074 | \n", "0.0062 | \n", "2518.0052 | \n", "2043.9328 | \n", "1.0015 | \n", "
chol_corr[0, 2] | \n", "0.1427 | \n", "0.3705 | \n", "-0.5480 | \n", "0.7769 | \n", "0.0093 | \n", "0.0066 | \n", "1673.7845 | \n", "1975.7307 | \n", "1.0020 | \n", "
chol_corr[0, 3] | \n", "0.1157 | \n", "0.3753 | \n", "-0.5676 | \n", "0.7683 | \n", "0.0079 | \n", "0.0056 | \n", "2319.4753 | \n", "2119.7780 | \n", "1.0012 | \n", "
chol_corr[1, 0] | \n", "0.1184 | \n", "0.3671 | \n", "-0.5402 | \n", "0.7923 | \n", "0.0074 | \n", "0.0062 | \n", "2518.0052 | \n", "2043.9328 | \n", "1.0015 | \n", "
chol_corr[1, 1] | \n", "1.0000 | \n", "0.0000 | \n", "1.0000 | \n", "1.0000 | \n", "0.0000 | \n", "0.0000 | \n", "4239.6296 | \n", "4000.0000 | \n", "0.9996 | \n", "
chol_corr[1, 2] | \n", "0.1675 | \n", "0.3483 | \n", "-0.4430 | \n", "0.8095 | \n", "0.0079 | \n", "0.0056 | \n", "1978.9399 | \n", "1538.2851 | \n", "1.0011 | \n", "
chol_corr[1, 3] | \n", "0.1526 | \n", "0.3561 | \n", "-0.4722 | \n", "0.7963 | \n", "0.0070 | \n", "0.0050 | \n", "2595.1991 | \n", "3126.5524 | \n", "1.0014 | \n", "
chol_corr[2, 0] | \n", "0.1427 | \n", "0.3705 | \n", "-0.5480 | \n", "0.7769 | \n", "0.0093 | \n", "0.0066 | \n", "1673.7845 | \n", "1975.7307 | \n", "1.0020 | \n", "
chol_corr[2, 1] | \n", "0.1675 | \n", "0.3483 | \n", "-0.4430 | \n", "0.8095 | \n", "0.0079 | \n", "0.0056 | \n", "1978.9399 | \n", "1538.2851 | \n", "1.0011 | \n", "
chol_corr[2, 2] | \n", "1.0000 | \n", "0.0000 | \n", "1.0000 | \n", "1.0000 | \n", "0.0000 | \n", "0.0000 | \n", "3929.0431 | \n", "4000.0000 | \n", "1.0007 | \n", "
chol_corr[2, 3] | \n", "0.1757 | \n", "0.3411 | \n", "-0.4384 | \n", "0.7867 | \n", "0.0071 | \n", "0.0051 | \n", "2260.6724 | \n", "2564.2728 | \n", "1.0017 | \n", "
chol_corr[3, 0] | \n", "0.1157 | \n", "0.3753 | \n", "-0.5676 | \n", "0.7683 | \n", "0.0079 | \n", "0.0056 | \n", "2319.4753 | \n", "2119.7780 | \n", "1.0012 | \n", "
chol_corr[3, 1] | \n", "0.1526 | \n", "0.3561 | \n", "-0.4722 | \n", "0.7963 | \n", "0.0070 | \n", "0.0050 | \n", "2595.1991 | \n", "3126.5524 | \n", "1.0014 | \n", "
chol_corr[3, 2] | \n", "0.1757 | \n", "0.3411 | \n", "-0.4384 | \n", "0.7867 | \n", "0.0071 | \n", "0.0051 | \n", "2260.6724 | \n", "2564.2728 | \n", "1.0017 | \n", "
chol_corr[3, 3] | \n", "1.0000 | \n", "0.0000 | \n", "1.0000 | \n", "1.0000 | \n", "0.0000 | \n", "0.0000 | \n", "3954.4789 | \n", "3702.0363 | \n", "1.0001 | \n", "
<xarray.Dataset>\n", "Dimensions: (chain: 4, draw: 1000, obs: 900, alts_probs: 5)\n", "Coordinates:\n", " * chain (chain) int64 0 1 2 3\n", " * draw (draw) int64 0 1 2 3 4 5 6 7 ... 992 993 994 995 996 997 998 999\n", " * obs (obs) int64 0 1 2 3 4 5 6 7 ... 892 893 894 895 896 897 898 899\n", " * alts_probs (alts_probs) <U2 'ec' 'er' 'gc' 'gr' 'hp'\n", "Data variables:\n", " p (chain, draw, obs, alts_probs) float64 0.04832 ... 0.05605\n", " y_cat (chain, draw, obs) int64 2 4 4 2 1 2 2 2 2 ... 2 3 3 3 2 1 2 4 2\n", "Attributes:\n", " created_at: 2023-07-13T17:30:54.332027\n", " arviz_version: 0.15.1\n", " inference_library: pymc\n", " inference_library_version: 5.3.0
<xarray.Dataset>\n", "Dimensions: (ic_ec_dim_0: 900, oc_ec_dim_0: 900, ic_er_dim_0: 900,\n", " oc_er_dim_0: 900)\n", "Coordinates:\n", " * ic_ec_dim_0 (ic_ec_dim_0) int64 0 1 2 3 4 5 6 ... 894 895 896 897 898 899\n", " * oc_ec_dim_0 (oc_ec_dim_0) int64 0 1 2 3 4 5 6 ... 894 895 896 897 898 899\n", " * ic_er_dim_0 (ic_er_dim_0) int64 0 1 2 3 4 5 6 ... 894 895 896 897 898 899\n", " * oc_er_dim_0 (oc_er_dim_0) int64 0 1 2 3 4 5 6 ... 894 895 896 897 898 899\n", "Data variables:\n", " ic_ec (ic_ec_dim_0) float64 859.9 796.8 719.9 ... 842.8 799.8 967.9\n", " oc_ec (oc_ec_dim_0) float64 664.0 624.3 526.9 ... 574.6 594.2 622.4\n", " ic_er (ic_er_dim_0) float64 995.8 894.7 900.1 ... 1.123e+03 1.092e+03\n", " oc_er (oc_er_dim_0) float64 606.7 583.8 485.7 ... 538.3 481.9 550.2\n", "Attributes:\n", " created_at: 2023-07-13T17:30:54.333501\n", " arviz_version: 0.15.1\n", " inference_library: pymc\n", " inference_library_version: 5.3.0
<xarray.DataArray 'p' (alts_probs: 5)>\n", "array([0.05383866, 0.07239016, 0.66253495, 0.1482966 , 0.06293963])\n", "Coordinates:\n", " * alts_probs (alts_probs) <U2 'ec' 'er' 'gc' 'gr' 'hp'
\n", " | rank | \n", "elpd_loo | \n", "p_loo | \n", "elpd_diff | \n", "weight | \n", "se | \n", "dse | \n", "warning | \n", "scale | \n", "
---|---|---|---|---|---|---|---|---|---|
m2 | \n", "0 | \n", "-1023.600927 | \n", "4.964862 | \n", "0.000000 | \n", "1.000000e+00 | \n", "27.802379 | \n", "0.000000 | \n", "False | \n", "log | \n", "
m3 | \n", "1 | \n", "-1025.830780 | \n", "9.954792 | \n", "2.229854 | \n", "2.220446e-16 | \n", "28.086804 | \n", "2.070976 | \n", "False | \n", "log | \n", "
m1 | \n", "2 | \n", "-1309.610895 | \n", "1.196878 | \n", "286.009968 | \n", "0.000000e+00 | \n", "12.933024 | \n", "22.677606 | \n", "False | \n", "log | \n", "
\n", " | personId | \n", "disp.sunshine | \n", "disp.keebler | \n", "disp.nabisco | \n", "disp.private | \n", "feat.sunshine | \n", "feat.keebler | \n", "feat.nabisco | \n", "feat.private | \n", "price.sunshine | \n", "price.keebler | \n", "price.nabisco | \n", "price.private | \n", "choice | \n", "lastChoice | \n", "personChoiceId | \n", "choiceId | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0.99 | \n", "1.09 | \n", "0.99 | \n", "0.71 | \n", "nabisco | \n", "nabisco | \n", "1 | \n", "1 | \n", "
1 | \n", "1 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0.49 | \n", "1.09 | \n", "1.09 | \n", "0.78 | \n", "sunshine | \n", "nabisco | \n", "2 | \n", "2 | \n", "
2 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1.03 | \n", "1.09 | \n", "0.89 | \n", "0.78 | \n", "nabisco | \n", "sunshine | \n", "3 | \n", "3 | \n", "
3 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1.09 | \n", "1.09 | \n", "1.19 | \n", "0.64 | \n", "nabisco | \n", "nabisco | \n", "4 | \n", "4 | \n", "
4 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0.89 | \n", "1.09 | \n", "1.19 | \n", "0.84 | \n", "nabisco | \n", "nabisco | \n", "5 | \n", "5 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
3151 | \n", "136 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1.09 | \n", "1.19 | \n", "0.99 | \n", "0.55 | \n", "private | \n", "private | \n", "9 | \n", "3152 | \n", "
3152 | \n", "136 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0.78 | \n", "1.35 | \n", "1.04 | \n", "0.65 | \n", "private | \n", "private | \n", "10 | \n", "3153 | \n", "
3153 | \n", "136 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1.09 | \n", "1.17 | \n", "1.29 | \n", "0.59 | \n", "private | \n", "private | \n", "11 | \n", "3154 | \n", "
3154 | \n", "136 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1.09 | \n", "1.22 | \n", "1.29 | \n", "0.59 | \n", "private | \n", "private | \n", "12 | \n", "3155 | \n", "
3155 | \n", "136 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1.29 | \n", "1.04 | \n", "1.23 | \n", "0.59 | \n", "private | \n", "private | \n", "13 | \n", "3156 | \n", "
3156 rows × 17 columns
\n", "personId | \n", "1 | \n", "2 | \n", "3 | \n", "4 | \n", "5 | \n", "6 | \n", "7 | \n", "8 | \n", "9 | \n", "10 | \n", "... | \n", "127 | \n", "128 | \n", "129 | \n", "130 | \n", "131 | \n", "132 | \n", "133 | \n", "134 | \n", "135 | \n", "136 | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
choiceId | \n", "15 | \n", "15 | \n", "13 | \n", "28 | \n", "13 | \n", "27 | \n", "16 | \n", "25 | \n", "18 | \n", "40 | \n", "... | \n", "17 | \n", "25 | \n", "31 | \n", "31 | \n", "29 | \n", "21 | \n", "26 | \n", "13 | \n", "14 | \n", "13 | \n", "
1 rows × 136 columns
\n", "\n", " | mean | \n", "sd | \n", "hdi_3% | \n", "hdi_97% | \n", "mcse_mean | \n", "mcse_sd | \n", "ess_bulk | \n", "ess_tail | \n", "r_hat | \n", "
---|---|---|---|---|---|---|---|---|---|
beta_disp | \n", "0.023 | \n", "0.021 | \n", "0.000 | \n", "0.061 | \n", "0.000 | \n", "0.000 | \n", "5386.0 | \n", "2248.0 | \n", "1.0 | \n", "
beta_feat | \n", "0.019 | \n", "0.018 | \n", "0.000 | \n", "0.052 | \n", "0.000 | \n", "0.000 | \n", "6417.0 | \n", "2283.0 | \n", "1.0 | \n", "
beta_price | \n", "-0.021 | \n", "0.020 | \n", "-0.059 | \n", "-0.000 | \n", "0.000 | \n", "0.000 | \n", "4281.0 | \n", "2277.0 | \n", "1.0 | \n", "
alpha[sunshine] | \n", "-0.054 | \n", "0.096 | \n", "-0.243 | \n", "0.119 | \n", "0.002 | \n", "0.001 | \n", "3632.0 | \n", "3220.0 | \n", "1.0 | \n", "
alpha[keebler] | \n", "2.023 | \n", "0.073 | \n", "1.886 | \n", "2.159 | \n", "0.001 | \n", "0.001 | \n", "3302.0 | \n", "2894.0 | \n", "1.0 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
beta_individual[135, keebler] | \n", "0.012 | \n", "0.048 | \n", "-0.077 | \n", "0.104 | \n", "0.000 | \n", "0.001 | \n", "10419.0 | \n", "3135.0 | \n", "1.0 | \n", "
beta_individual[135, nabisco] | \n", "-0.009 | \n", "0.051 | \n", "-0.108 | \n", "0.081 | \n", "0.000 | \n", "0.001 | \n", "10504.0 | \n", "2555.0 | \n", "1.0 | \n", "
beta_individual[136, sunshine] | \n", "-0.002 | \n", "0.049 | \n", "-0.089 | \n", "0.096 | \n", "0.001 | \n", "0.001 | \n", "7867.0 | \n", "2729.0 | \n", "1.0 | \n", "
beta_individual[136, keebler] | \n", "-0.018 | \n", "0.048 | \n", "-0.112 | \n", "0.071 | \n", "0.001 | \n", "0.001 | \n", "7684.0 | \n", "2845.0 | \n", "1.0 | \n", "
beta_individual[136, nabisco] | \n", "0.020 | \n", "0.050 | \n", "-0.072 | \n", "0.114 | \n", "0.001 | \n", "0.001 | \n", "8252.0 | \n", "2559.0 | \n", "1.0 | \n", "
414 rows × 9 columns
\n", "