Discrete choice

Random utility

Continuous utility functions

With non-discrete choice a consumer chooses how much of product \(x\) to consume.

The utility function is of the form:


And the consumer chooses how much of \(x_i\) to consume to maximise this, subject to the budget constraint.

We include features relating to the individual, \(d\).

Discrete choice

The utility customer \(i\) gets from product \(j\) is:


The customer chooses the product with the highest utility.

The outside option

We need to know the market share of the outside option. Do this theoretically. Eg number of customers in area, and 1 per day.

Linear random utility functions

Price preferences

We start with a simple model, where the customer has price preference.

\(U_{ij}=-\beta_i p_{ij} +\epsilon_{ij}\)

Product characteristics

\(U_{ij}=\alpha_i x_j -\beta_i p_{ij} +\epsilon_{ij}\)

Individual characteristics

\(U_{ij}=\alpha_i x_j -\beta_i p_{ij} + \theta_j d_i +\epsilon_{ij}\)

The general form

We can convert this to the form:

\(U_{ij}=\Theta z_{ij} + \epsilon_{ij}\)

Modelling homogeneous preferences with multinomial logit

Modelling homogeneous preferences with multinomial logit


Our model is:

\(U_{ij}=\Theta z_{ij} + \epsilon_{ij}\)

\(U_{ij}=\alpha_i x_j -\beta_i p_{ij} + \theta_j d_i +\epsilon_{ij}\)

Homogeneous model

We model all customers as having the same preferences.

\(U_{ij}=\alpha x_j -\beta p_{ij} + \theta_j d_i +\epsilon_{ij}\)

The multinomial logit assumption

If errors are IID and extreme we get:

\(P_{ij}=\dfrac{e^{\Theta z_j}}{\sum_k e^{\Theta z_k }}\)

The outside option

A user has the option of not buying anything.


This gives us the following shares:

\(P_{ij}=\dfrac{e^{\Theta z_j}}{e^0+\sum_{k=1} e^{\Theta z_k }}\)

\(P_{ij}=\dfrac{e^{\Theta z_j}}{1+\sum_{k=1} e^{\Theta z_k }}\)

Own-price elasticity of demand

\(P_{ij}=\dfrac{e^{\Theta z_j}}{1+\sum_{k=1}} e^{\Theta z_k }\)

\(P_{ij}=\dfrac{e^{\alpha x_j -\beta p_j + \theta_j d_i}}{1+\sum_{k=1} e^{ \alpha x_k -\beta p_k +\theta_k d_i}}\)

\(\dfrac{\delta P_{ij} }{\delta p_j}\dfrac{p_j}{P_{ij}}=-\beta p_j(1-P_{ij})\)

\(\dfrac{\delta P_{ij} }{\delta p_k}\dfrac{p_j}{P_{ij}}=\beta p_kP_{ij}\)

This means that the lower the price, the lower the own price elasticity of demand.

This means that mark ups are higher for cheaper goods, which doesn’t always match reality.

This can be adjusted by changing the form. For example we could use \(\ln p\) or \(p^2\).

However, we are still getting the shape by assumption.

Cross-price elasticity of demand

Getting aggregate market shares

\(s_j = \dfrac{1}{n}\sum_i P_{ij}\)

Modelling homogeneous preferences with nested logit

Nested logit

With IID all goods are equal substitutes. If prices rise customers will switch to others in proportion to market size.

In practice if the price of a cheap car rises, there will be more substitution to other cheap cars than expensive cars.

Nested logit can address this.

Estimating the nested logit model

As with the multinomial logit model, we have prices, market shares and product characteristics.

Own-price elasticity of demand

Cross-price elasticty of demand

Modelling heterogeneous preferences with individual characteristics


In the multinomial logit model we had:

\(P_{ij}=\dfrac{e^{\Theta z_j}}{1+\sum_{k=1} e^{\Theta z_k }}\)

Adding customer characteristics

If \(z_j\) just includes product characteristics then we have homogeneous preferences.

We can include customer level data in \(z_j\), for example individual income, location, age etc.


As before, we want product characteristics and prices.

However rather than market share we instead use customer level information.

Modelling heterogeneous preferences with mixed logit

Modelling heterogeneous preferences with mixed logit

Using demographic data