I'm having trouble figuring out how to correctly calculate conjoint part-worth-utility from a discrete choice experiment.

I have recently run a pilot study to analyse in R where I used the packages “support.CEs” and “survival” and I’m trying to figure out how to calculate conjoint part-worth-utilities from the coefficients, but not sure I’m doing it correctly.

For simplicity sake I will use a simplified example about rice to explain my problem.

The experiment contains the following attributes and levels.

Region = c("RegA", "RegB", "RegC"),
Cultivation = c("Conv", "NoChem", "Organic"),
Price = c("1700", "2000", "2300")),

I then used the clogit() function to analyse the results of the experiment using the following model:

RES ~ ASC + RegB + RegC + NoChem + Organic + Price + strata(STR)

This gave the following result:

        coef    exp(coef)   se(coef)     z   p
ASC     4,443   85,035      0,483    9,199   0,00E+00
RegB    0,469   1,599       0,137    3,417   6,30E-04
RegC    0,968   2,632       0,108    8,996   0,00E+00
NoChem  0,752   2,120       0,177    4,257   2,10E-05
Organic 1,165   3,205       0,141    8,252   1,10E-16
Price  -0,002   0,998       0,000   -9,732   0,00E+00

Now my assumption is that the part-worth-utilities for each attribute level is simply the corresponding coefficients, with the remaining level not part of the model (RegA for the Region attribute) being 0?

However, while looking at another R package called conjoint, devised to analyse rating based conjoint, I noticed that they determined the last levels value in a different way:

 # Example 1

To find the remaining levels utility they take the sum of all other levels in the attribute and subtract it from 0, meaning RegA would have an utility of -1,437 instead of 0.

0 - (0,469 + 0,968) = -1,437

I can't quite figure out the logic behind this as it seems to considerably widen the distance in utility between RegA and RegB/RegC while keeping the distance between RegA and RegC fixed.

At first I dismissed this as being a mistake, however I then saw that the example for the ChoiceModelR package also calculated the remaining attribute levels as the inverse sum of the rest.

Is this truly the correct way to determine the utility of the remaining attribute level?

Secondary question:

If so, how is the result of say the “marginal willingness to pay” function mwtp() reliable, when it would sets RegA as 0?


1 Answer 1


I don't know what the R package "conjoint" does. The part-worth utilities (PWU) are the model estimates. The PWU for the reference categories will depend on the coding scheme you used to describe the variables. If standard dummy coding (0/1), then the PWU of the reference category is 0. An alternative, that has been (a little bit) used in the DCE literature, would be effects coding (-1/0/1). In this last case, the PWU for the reference category is: (sum of estimates for the remaining categories) x -1.

In your case: PWU_RegA = (0,469 + 0,968) * -1 = -1,437.

Important: The difference between dummy and effect coding does not technically matter (Try the 2 coding schemes and you will see that in both cases the model log-likelihood will be the same - well, it should!). There is a paper criticizing the use of effects coding (http://eprints.whiterose.ac.uk/104911/).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.