Choice Modelling II: Advanced Techniques
Choice models attract academic and applied interest for their ability to generate economically grounded outputs such as demand forecasts, willingness-to-pay estimates, and price elasticities that inform policy and strategic decisions.
(most) Choice models are based on random utility theory and use a form of logistic regression to make estimates about the relative utility decision makers derive from a set of alternatives.
Statistical software that can estimate a logit model can be used to run choice models of this type (e.g., base R, core Python, SPSS, Stata, Matlab, SAS) as well as commercial software packages designed specifically for choice models (NLogit, ALogit, Sawtooth, Biogeme).
SP experiments (also known as “choice experiments”) are a specific type of data generation process that choice modellers use to record the choices of decision makers.
The task for a respondent in a SP experiment is to select the alternative before them which best maximises their utility. The alternatives are described by attributes, and those attributes have levels.
Typically analysts will observe respondents making several choices. Having multiple observations per respondent allows for more precise estimation of model parameters, as well as allows the analyst to make rich behavioural insights.
In this example, there are 8 alternatives in the set shown. Each alternative has attributes (price, grape type, etc), and these attributes vary across alternatives ($9.99 vs $13.99, Cabernet vs Shiraz, etc). After making a choice, the respondent will be shown another choice set (another “shelf of wine”) and asked to choose again. The screen is also formatted aesthetically to resemble a real decision making context.
Which bottle would you choose?
The analyst has to carefully select the attributes and levels they will use to describe the range of hypothetical alternatves to display to respondents.
The attributes should reflect the real-world. The attributes should be important, plausible, and understandable to respondents. The levels of the attributes should have realistic ranges, and be sufficiently separated such that decision makers can reasonably trade them off.
Next, the analyst has to combine the attributes and levels together in such a way that is statistically robust and be suitable for respondents.
How do we actually create a SP experiment?
The design of SP experiments typically relies on experimental design plans, which are either generated using specialised software or sourced from established design catalogues.
The design of SP experiments constitutes a specialised field in its own right, encompassing diverse methods of algorithmic optimisation, combinatorial logic, and simulation techniques. These approaches are used to systematically combine attributes and levels into presentable “choice sets” that balance statistical rigour with respondent realism.
Designing SP experiments can be really hard.
A design plan is a table of rows and colums, where each row represents an alternative within a choice set, and each column represents an attribute. The cells in the table show which level of each attribute is used for each alternative.
Design plans are structured to reduce overlap between attributes and to cover the range of possibilities efficiently. If researchers already know how people are likely to respond (based on prior studies) they can use Bayesian methods to create more efficient designs tailored to those expectations.
Once a design plan is located/generated, the choice sets need to be constructed and made presentable to respondents.
Choice Set | Alternative | Price | Variety | Region |
---|---|---|---|---|
1 | 1 | 5 | 1 | 1 |
1 | 2 | 3 | 2 | 2 |
1 | 3 | 1 | 3 | 3 |
1 | 4 | 4 | 4 | 4 |
1 | 5 | 7 | 5 | 5 |
1 | 6 | 2 | 2 | 1 |
1 | 7 | 6 | 3 | 2 |
1 | 8 | 8 | 1 | 4 |
2 | 1 | 3 | 5 | 3 |
2 | 2 | 4 | 3 | 5 |
2 | 3 | 2 | 4 | 1 |
2 | 4 | 6 | 2 | 2 |
2 | 5 | 1 | 1 | 4 |
2 | 6 | 7 | 5 | 1 |
2 | 7 | 5 | 4 | 5 |
2 | 8 | 3 | 3 | 2 |
3 | 1 | 8 | 2 | 3 |
3 | 2 | 1 | 1 | 5 |
3 | 3 | 4 | 5 | 4 |
3 | 4 | 3 | 4 | 2 |
3 | 5 | 2 | 3 | 1 |
3 | 6 | 7 | 2 | 5 |
3 | 7 | 5 | 1 | 2 |
3 | 8 | 6 | 5 | 3 |
4 | 1 | 3 | 3 | 4 |
4 | 2 | 4 | 4 | 1 |
4 | 3 | 1 | 2 | 2 |
4 | 4 | 2 | 1 | 3 |
4 | 5 | 7 | 5 | 5 |
4 | 6 | 6 | 3 | 1 |
4 | 7 | 5 | 4 | 2 |
4 | 8 | 8 | 2 | 4 |
5 | 1 | 4 | 3 | 4 |
5 | 2 | 3 | 4 | 2 |
5 | 3 | 7 | 5 | 3 |
5 | 4 | 1 | 2 | 5 |
5 | 5 | 5 | 1 | 1 |
5 | 6 | 2 | 3 | 2 |
5 | 7 | 6 | 4 | 3 |
5 | 8 | 8 | 5 | 4 |
6 | 1 | 3 | 2 | 5 |
6 | 2 | 5 | 1 | 2 |
6 | 3 | 2 | 3 | 4 |
6 | 4 | 4 | 4 | 1 |
6 | 5 | 1 | 5 | 3 |
6 | 6 | 7 | 2 | 5 |
6 | 7 | 6 | 1 | 2 |
6 | 8 | 8 | 3 | 1 |
7 | 1 | 1 | 4 | 5 |
7 | 2 | 3 | 5 | 4 |
7 | 3 | 4 | 2 | 2 |
7 | 4 | 2 | 1 | 3 |
7 | 5 | 5 | 3 | 1 |
7 | 6 | 7 | 4 | 2 |
7 | 7 | 6 | 5 | 5 |
7 | 8 | 8 | 2 | 4 |
8 | 1 | 3 | 1 | 2 |
8 | 2 | 1 | 3 | 3 |
8 | 3 | 4 | 4 | 4 |
8 | 4 | 2 | 2 | 1 |
8 | 5 | 5 | 5 | 5 |
8 | 6 | 7 | 1 | 2 |
8 | 7 | 6 | 3 | 4 |
8 | 8 | 8 | 4 | 1 |
Choice Set | Alternative | Price | Variety | Region |
---|---|---|---|---|
1 | Wine A | 21.99 | Shiraz | Barossa |
1 | Wine B | 13.99 | Semillon | Hunter |
1 | Wine C | 5.99 | Chardonnay | Margaret |
1 | Wine D | 17.99 | Pinot Noir | Yarra |
1 | Wine E | 25.49 | Grenache | McLaren |
1 | Wine F | 9.99 | Semillon | Barossa |
1 | Wine G | 23.39 | Chardonnay | Hunter |
1 | Wine H | 27.19 | Shiraz | Yarra |
2 | Wine A | 13.99 | Grenache | Margaret |
2 | Wine B | 17.99 | Chardonnay | McLaren |
2 | Wine C | 9.99 | Pinot Noir | Barossa |
2 | Wine D | 23.39 | Semillon | Hunter |
2 | Wine E | 5.99 | Shiraz | Yarra |
2 | Wine F | 25.49 | Grenache | Barossa |
2 | Wine G | 21.99 | Pinot Noir | McLaren |
2 | Wine H | 13.99 | Chardonnay | Hunter |
3 | Wine A | 27.19 | Semillon | Margaret |
3 | Wine B | 5.99 | Shiraz | McLaren |
3 | Wine C | 17.99 | Grenache | Yarra |
3 | Wine D | 13.99 | Pinot Noir | Hunter |
3 | Wine E | 9.99 | Chardonnay | Barossa |
3 | Wine F | 25.49 | Semillon | McLaren |
3 | Wine G | 21.99 | Shiraz | Hunter |
3 | Wine H | 23.39 | Grenache | Margaret |
4 | Wine A | 13.99 | Chardonnay | Yarra |
4 | Wine B | 17.99 | Pinot Noir | Barossa |
4 | Wine C | 5.99 | Semillon | Hunter |
4 | Wine D | 9.99 | Shiraz | Margaret |
4 | Wine E | 25.49 | Grenache | McLaren |
4 | Wine F | 23.39 | Chardonnay | Barossa |
4 | Wine G | 21.99 | Pinot Noir | Hunter |
4 | Wine H | 27.19 | Semillon | Yarra |
5 | Wine A | 17.99 | Chardonnay | Yarra |
5 | Wine B | 13.99 | Pinot Noir | Hunter |
5 | Wine C | 25.49 | Grenache | Margaret |
5 | Wine D | 5.99 | Semillon | McLaren |
5 | Wine E | 21.99 | Shiraz | Barossa |
5 | Wine F | 9.99 | Chardonnay | Hunter |
5 | Wine G | 23.39 | Pinot Noir | Margaret |
5 | Wine H | 27.19 | Grenache | Yarra |
6 | Wine A | 13.99 | Semillon | McLaren |
6 | Wine B | 21.99 | Shiraz | Hunter |
6 | Wine C | 9.99 | Chardonnay | Yarra |
6 | Wine D | 17.99 | Pinot Noir | Barossa |
6 | Wine E | 5.99 | Grenache | Margaret |
6 | Wine F | 25.49 | Semillon | McLaren |
6 | Wine G | 23.39 | Shiraz | Hunter |
6 | Wine H | 27.19 | Chardonnay | Barossa |
7 | Wine A | 5.99 | Pinot Noir | McLaren |
7 | Wine B | 13.99 | Grenache | Yarra |
7 | Wine C | 17.99 | Semillon | Hunter |
7 | Wine D | 9.99 | Shiraz | Margaret |
7 | Wine E | 21.99 | Chardonnay | Barossa |
7 | Wine F | 25.49 | Pinot Noir | Hunter |
7 | Wine G | 23.39 | Grenache | McLaren |
7 | Wine H | 27.19 | Semillon | Yarra |
8 | Wine A | 13.99 | Shiraz | Hunter |
8 | Wine B | 5.99 | Chardonnay | Margaret |
8 | Wine C | 17.99 | Pinot Noir | Yarra |
8 | Wine D | 9.99 | Semillon | Barossa |
8 | Wine E | 21.99 | Grenache | McLaren |
8 | Wine F | 25.49 | Shiraz | Hunter |
8 | Wine G | 23.39 | Chardonnay | Yarra |
8 | Wine H | 27.19 | Pinot Noir | Barossa |
The next step is to transpose the information from the design plan to formatted choice sets.
Survey design software (e.g., Qualtrics) can be used for this purpose using a “tick one” rating scale question with each of the attributes and levels for each alternative described above the selection button.
This method requires manual construction of each alternative within each choice set (a tedious, but doable, process!)
Choice Set | Alternative | Price | Variety | Region |
---|---|---|---|---|
1 | Wine A | 21.99 | Shiraz | Barossa |
1 | Wine B | 13.99 | Semillon | Hunter |
1 | Wine C | 5.99 | Chardonnay | Margaret |
1 | Wine D | 17.99 | Pinot Noir | Yarra |
1 | Wine E | 25.49 | Grenache | McLaren |
1 | Wine F | 9.99 | Semillon | Barossa |
1 | Wine G | 23.39 | Chardonnay | Hunter |
1 | Wine H | 27.19 | Shiraz | Yarra |
becomes choice set 1…
Attribute | Wine A | Wine B | Wine C | Wine D | Wine E | Wine F | Wine G | Wine H |
---|---|---|---|---|---|---|---|---|
Variety | Shiraz | Semillon | Chardonnay | Pinot Noir | Grenache | Semillon | Chardonnay | Shiraz |
Region | Barossa | Hunter | Margaret | Yarra | McLaren | Barossa | Hunter | Yarra |
Price (AUD) | $21.99 | $13.99 | $5.99 | $17.99 | $25.49 | $9.99 | $23.39 | $27.19 |
Select |
Choice Set | Alternative | Price | Variety | Region |
---|---|---|---|---|
2 | Wine A | 13.99 | Grenache | Margaret |
2 | Wine B | 17.99 | Chardonnay | McLaren |
2 | Wine C | 9.99 | Pinot Noir | Barossa |
2 | Wine D | 23.39 | Semillon | Hunter |
2 | Wine E | 5.99 | Shiraz | Yarra |
2 | Wine F | 25.49 | Grenache | Barossa |
2 | Wine G | 21.99 | Pinot Noir | McLaren |
2 | Wine H | 13.99 | Chardonnay | Hunter |
becomes choice set 2…
Attribute | Wine A | Wine B | Wine C | Wine D | Wine E | Wine F | Wine G | Wine H |
---|---|---|---|---|---|---|---|---|
Variety | Grenache | Chardonnay | Pinot Noir | Semillon | Shiraz | Grenache | Pinot Noir | Chardonnay |
Region | Margaret | McLaren | Barossa | Hunter | Yarra | Barossa | McLaren | Hunter |
Price (AUD) | $13.99 | $17.99 | $9.99 | $23.39 | $5.99 | $25.49 | $21.99 | $13.99 |
Select |
Choice Set | Alternative | Price | Variety | Region |
---|---|---|---|---|
3 | Wine A | 27.19 | Semillon | Margaret |
3 | Wine B | 5.99 | Shiraz | McLaren |
3 | Wine C | 17.99 | Grenache | Yarra |
3 | Wine D | 13.99 | Pinot Noir | Hunter |
3 | Wine E | 9.99 | Chardonnay | Barossa |
3 | Wine F | 25.49 | Semillon | McLaren |
3 | Wine G | 21.99 | Shiraz | Hunter |
3 | Wine H | 23.39 | Grenache | Margaret |
becomes choice set 3…
Attribute | Wine A | Wine B | Wine C | Wine D | Wine E | Wine F | Wine G | Wine H |
---|---|---|---|---|---|---|---|---|
Variety | Semillon | Shiraz | Grenache | Pinot Noir | Chardonnay | Semillon | Shiraz | Grenache |
Region | Margaret | McLaren | Yarra | Hunter | Barossa | McLaren | Hunter | Margaret |
Price (AUD) | $27.19 | $5.99 | $17.99 | $13.99 | $9.99 | $25.49 | $21.99 | $23.39 |
Select |
Choice Set | Alternative | Price | Variety | Region |
---|---|---|---|---|
4 | Wine A | 13.99 | Chardonnay | Yarra |
4 | Wine B | 17.99 | Pinot Noir | Barossa |
4 | Wine C | 5.99 | Semillon | Hunter |
4 | Wine D | 9.99 | Shiraz | Margaret |
4 | Wine E | 25.49 | Grenache | McLaren |
4 | Wine F | 23.39 | Chardonnay | Barossa |
4 | Wine G | 21.99 | Pinot Noir | Hunter |
4 | Wine H | 27.19 | Semillon | Yarra |
becomes choice set 4…
Attribute | Wine A | Wine B | Wine C | Wine D | Wine E | Wine F | Wine G | Wine H |
---|---|---|---|---|---|---|---|---|
Variety | Chardonnay | Pinot Noir | Semillon | Shiraz | Grenache | Chardonnay | Pinot Noir | Semillon |
Region | Yarra | Barossa | Hunter | Margaret | McLaren | Barossa | Hunter | Yarra |
Price (AUD) | $13.99 | $17.99 | $5.99 | $9.99 | $25.49 | $23.39 | $21.99 | $27.19 |
Select |
Choice Set | Alternative | Price | Variety | Region |
---|---|---|---|---|
5 | Wine A | 17.99 | Chardonnay | Yarra |
5 | Wine B | 13.99 | Pinot Noir | Hunter |
5 | Wine C | 25.49 | Grenache | Margaret |
5 | Wine D | 5.99 | Semillon | McLaren |
5 | Wine E | 21.99 | Shiraz | Barossa |
5 | Wine F | 9.99 | Chardonnay | Hunter |
5 | Wine G | 23.39 | Pinot Noir | Margaret |
5 | Wine H | 27.19 | Grenache | Yarra |
becomes choice set 5…
Attribute | Wine A | Wine B | Wine C | Wine D | Wine E | Wine F | Wine G | Wine H |
---|---|---|---|---|---|---|---|---|
Variety | Chardonnay | Pinot Noir | Grenache | Semillon | Shiraz | Chardonnay | Pinot Noir | Grenache |
Region | Yarra | Hunter | Margaret | McLaren | Barossa | Hunter | Margaret | Yarra |
Price (AUD) | $17.99 | $13.99 | $25.49 | $5.99 | $21.99 | $9.99 | $23.39 | $27.19 |
Select |
Choice Set | Alternative | Price | Variety | Region |
---|---|---|---|---|
6 | Wine A | 13.99 | Semillon | McLaren |
6 | Wine B | 21.99 | Shiraz | Hunter |
6 | Wine C | 9.99 | Chardonnay | Yarra |
6 | Wine D | 17.99 | Pinot Noir | Barossa |
6 | Wine E | 5.99 | Grenache | Margaret |
6 | Wine F | 25.49 | Semillon | McLaren |
6 | Wine G | 23.39 | Shiraz | Hunter |
6 | Wine H | 27.19 | Chardonnay | Barossa |
becomes choice set 6…
Attribute | Wine A | Wine B | Wine C | Wine D | Wine E | Wine F | Wine G | Wine H |
---|---|---|---|---|---|---|---|---|
Variety | Semillon | Shiraz | Chardonnay | Pinot Noir | Grenache | Semillon | Shiraz | Chardonnay |
Region | McLaren | Hunter | Yarra | Barossa | Margaret | McLaren | Hunter | Barossa |
Price (AUD) | $13.99 | $21.99 | $9.99 | $17.99 | $5.99 | $25.49 | $23.39 | $27.19 |
Select |
Choice Set | Alternative | Price | Variety | Region |
---|---|---|---|---|
7 | Wine A | 5.99 | Pinot Noir | McLaren |
7 | Wine B | 13.99 | Grenache | Yarra |
7 | Wine C | 17.99 | Semillon | Hunter |
7 | Wine D | 9.99 | Shiraz | Margaret |
7 | Wine E | 21.99 | Chardonnay | Barossa |
7 | Wine F | 25.49 | Pinot Noir | Hunter |
7 | Wine G | 23.39 | Grenache | McLaren |
7 | Wine H | 27.19 | Semillon | Yarra |
becomes choice set 7…
Attribute | Wine A | Wine B | Wine C | Wine D | Wine E | Wine F | Wine G | Wine H |
---|---|---|---|---|---|---|---|---|
Variety | Pinot Noir | Grenache | Semillon | Shiraz | Chardonnay | Pinot Noir | Grenache | Semillon |
Region | McLaren | Yarra | Hunter | Margaret | Barossa | Hunter | McLaren | Yarra |
Price (AUD) | $5.99 | $13.99 | $17.99 | $9.99 | $21.99 | $25.49 | $23.39 | $27.19 |
Select |
Choice Set | Alternative | Price | Variety | Region |
---|---|---|---|---|
8 | Wine A | 13.99 | Shiraz | Hunter |
8 | Wine B | 5.99 | Chardonnay | Margaret |
8 | Wine C | 17.99 | Pinot Noir | Yarra |
8 | Wine D | 9.99 | Semillon | Barossa |
8 | Wine E | 21.99 | Grenache | McLaren |
8 | Wine F | 25.49 | Shiraz | Hunter |
8 | Wine G | 23.39 | Chardonnay | Yarra |
8 | Wine H | 27.19 | Pinot Noir | Barossa |
becomes choice set 8…
Attribute | Wine A | Wine B | Wine C | Wine D | Wine E | Wine F | Wine G | Wine H |
---|---|---|---|---|---|---|---|---|
Variety | Shiraz | Chardonnay | Pinot Noir | Semillon | Grenache | Shiraz | Chardonnay | Pinot Noir |
Region | Hunter | Margaret | Yarra | Barossa | McLaren | Hunter | Yarra | Barossa |
Price (AUD) | $13.99 | $5.99 | $17.99 | $9.99 | $21.99 | $25.49 | $23.39 | $27.19 |
Select |
Rather than manually transposing the design plan to choice sets in generic survey software, a better approach is to use platforms more specifically developed for the creation of SP experiments to remove the need to manually construct choice sets or reshape data for modelling.
SurveyEngine is the most recommended platform to do for academic research purposes. It provides high degree of statistical rigor and control the analyst to design their SP experiment with full transparency using the most advanced techniques available.
SurveyEngine was formed in Sydney in 2001 by Ben White whilst working as a programmer for Jordan Louviere. The platform integrates Ngene
for SP design and Apollo
for SP data modelling.
Jordan Louviere
Ben White
Apollo is an R
package for the estimation of a wide range of choice models, developed and maintained by Stephane Hess & David Palma.
Ngene
is specialised design software developed and maintained by John Rose, Michiel Bliemer, Andrew Collins and David Hensher.
Students in this workshop can access a standard account for FREE for a period of 3 months. Access the sign up page from the QR code or link, select the Standard option and use the promo code below. Once complete login to your SurveyEngine account on your laptop.
Select: Standard
Promo code: TEACH25
Thank you to SurveyEngine for sponsoring this workshop!
To create a new survey, click “Create Survey”.
To create a new SP choice experiment click “Experiment”.
Fill in the fields in the SurveyEngine experimental design generator.
Attributes should have a descriptive name.
Attributes should have at least two levels.
Once ready to generate the experimental design plan, click “Design” then click “Generate Orthogonal”.
Stated preference experiments can quickly become too cognitively burdensome for respondents to engage with if they have too many attributes, too many levels or too many alternatives.
Complex designs with too many elements are difficult to find statistically tractable ways to combine together into choice sets.
Simple designs are the best (and worst). Designs with about 4 to 6 attributes, 2 to 5 levels per attribute, and about 3 to 4 alternatives per choice set are close to the “sweet spot” when it comes to designing experiments. However, if a decision context has much more to consider than this in reality, such designs might not accurately lead to respondent behaviour that matches behaviour in that context.
Once you have completed the design of your experiment and the survey pages surrounding it, you are ready to launch the survey to a panel of respondents.
SurveyEngine offers a panel provider service, or alternatively you can distribute the published URL to an alternative panel provider (e.g., Prolific), Dynata, PureProfile, etc.
Once the data has been collected from a panel of respondents, SurveyEngine can generate an MNL model of the SP data within the browser platform.
Models can be generated on the fly as data is being collected. This enables you to track how results are tracking. It is also a good way to check they your experiment (and survey more generally) is behaving as expected.
SurveyEngine will also generate a .r
file which can be used to run models offline using Apollo
in R
.
R
scriptR
If you have not already, install R
and R Studio on your computer.
Download and install R
from: https://cran.rstudio.com/
Download and install R Studio from: https://posit.co/download/rstudio-desktop/
Install apollo
using:
.r
fileSurveyEngine packages the data and R
script for your first MNL model into a .zip
file. Unzip this file into a directory on your computer and open the .r
file in R Studio.
Opening the .r
file from where you have saved it on your computer should automatically set the correct working directory. If you need help setting your working directory in R
, reach out for help.
Once opened in R
, run the whole .r
file. This will read in the data from SurveyEngine, run the MNL model in Apollo
and print the output to the console and files within your working directory.
R
using Apollo
The estimated coefficients from a Multinomial Logit (MNL) model indicate how changes in attribute levels influence decision-makers’ preferences within the context of the study.
Choice modelling is an advanced methodology. There is only so much we can cover in a 2hr workshop!
Today we put the theory learnt in the previous workshop (Fundamentals of Choice Modelling) into quick practice, covering how to design SP experiments in SurveyEngine and run a first MNL model in Apollo.
UQ is hosting the 2026 International Choice Modelling Conference on the Gold Coast (20 - 22 July 2026). If you have a study which uses choice modelling, consider submitting it for presentation at ICMC2026! The call for abstracts will come out soon…
Stephane Hess (the author of the Apollo
package) will be running day long Apollo workshops here on campus at UQ either before or after the conference (TBA). These workshops will provide a deep dive into running and interpreting models models of both RP and SP data, as well other advanced usage of the Apollo
package.
More information will be available at https://www.icmconference.org.uk/ soon. We will also distribute the information to all workshop attendees.
Thank you!