It is possible to calibrate a choice simulator from a conjoint analysis study so that it more accurately predicts current market share. While I detail how to do it in this post at the request of users, there are better methods.

Before implementing the steps in this post, I would encourage you to first read 12 Techniques for Increasing the Accuracy of Forecasts from Conjoint Analysis and also an excellent paper by Sawtooth Software on this topic. Again, while it is possible to calibrate a model to predict market share, it is often not the best method.

The theory

The basic idea of calibrating is as follows:

  • You have predicted market share using a choice simulator.
  • You know the actual shares, and they are different from the predicted shares.
  • You believe that the difference is due to having failed to measure the utility of some relevant attributes. (If the difference is due to something else, like awareness or distribution, please use the methods described in the links in the introduction to this post and also in Creating Online Conjoint Analysis Choice Simulators Using Displayr.)
  • You estimate the missing utilities, such that the predicted and actual market share perfectly align.


The shares below are predictions from an admittedly simplistic model of the US chocolate market, where predictions are made using only two attributes: price and brand. (If it is not clear to you how to read this code, first read Creating Online Conjoint Analysis Choice Simulators Using Displayr.)

More accurate market share figures for the brands in the market were: Hershey 46%, Mars 39%, Lindt 17.3%, and Godiva 2%. The really big difference is for Godiva as the research has somehow inadvertently made Godiva more prominent. The most likely explanation is that perhaps the attribute that accounts for things ignored in the experiment has a utility of 0 for each of Hershey, Mars, and Lindt, and a utility of -2 for Godiva.

This would result in the market share below. Note that the calibration is being provided via offset. In this example, I've used the same offset for all 403 respondents. However, it is also possible to have separate offsets for different respondents.

Using the estimated offset of -2 for Godiva has made the shares more accurate, but we can automatically estimate an offset that exactly matches the observed market share. I've done this with the code below. This can be easily adapted to other data sets, by updating:

  • scenario (line 1 to 4).
  • market.shares (line 5)
  • replacing choice.model.7 with whatever the name is of the choice model you have fit to your data
  • indicating the number of respondents in line 12

And, as a check, this last bit of code uses the estimated calibration utilities. We can see now that our model makes the correct predictions.

In this post I've described a classic method for calibrating preference shares to market share. I must emphasize that I have done this due to many requests by users. In my own 20 odd years as a data scientist specializing in conjoint analysis, I have rarely used this method. Typically, I have instead preferred the methods described in Creating Online Conjoint Analysis Choice Simulators Using Displayr.