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 ill 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 analyses 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”, made to analyses rating based conjoint, I noticed that they determined the last levels value in a different way.
#Example 1 library(conjoint) data(herbata) ul<-caUtilities(hpref,hprof,hlevn) print(ul)
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 level as the inverse sum of the rest.
Is this truly the correct way to determine the utility of the remaining attribute level?
If so, how is the result of say the “marginal willingness to pay” function mwtp() reliable, when it would sets RegA as 0?