I am analysing data from a discrete choice experiment from a sample of 1000 responses where a respondent were presented with two cards and had to choose their preferred option. In the survey there were 3 attributes out of which one was categorical while the two other (price, speed) were continuous. Below is the model output.

mlogit(formula = choice ~ speed + price + cat1 + cat2 + cat3, 
    data = test.data, method = "nr", print.level = 0)

Frequencies of alternatives:
      1       2 
0.71558 0.28442 

nr method
5 iterations, 0h:0m:0s 
g'(-H)^-1g = 0.000741 
successive function values within tolerance limits 

Coefficients :
                Estimate Std. Error  t-value Pr(>|t|)    
2:(intercept) -0.3582505  0.0372617  -9.6144  < 2e-16 ***
speed          -0.1726341  0.0105252 -16.4020  < 2e-16 ***
price         -0.1672694  0.0073242 -22.8380  < 2e-16 ***
cat1           0.0965562  0.0415806   2.3221  0.02023 *  
cat2           0.8722452  0.0526031  16.5816  < 2e-16 ***
cat3          -0.0788710  0.0451093  -1.7484  0.08039 .  
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Log-Likelihood: -5419.7
McFadden R^2:  0.093196 
Likelihood ratio test : chisq = 1114 (p.value = < 2.22e-16

Based on these results, I would like to calculate relative variable importance and have this scaled to 100. Based on reading chapter 9.4 here, my understanding is that I'm meant to use the difference of the range in the attribute’s utility values and then scale this to a 100. As I have a multinomial logit model, I would of course have to first exponentiate the utility values.

However, I do not know how to extract utility values for the different attributes levels using the mlogit package - is this somehow possible?

Also, how should I go about dealing with the fourth categorical value that is not in the model?


1 Answer 1


You might consider using a dominance analysis instead (see Luchman, 2014). This approach would decompose the McFadden's R2 and might, as a consequence, be easier to interpret than the utility-based approach discussed here.

That would avoid the 4th categorical value issue and would scale to 100 if standardized based on the McFadden R2.

The dominance method is implemented in the R package relaimpo, but has not been extended to accommodate mlogits. The only version I know of that does is in Stata. That said, dominance analysis is not a terribly difficult method to implement.

To do so, collect all McFadden's R2's according to each possible subset including or omitting each predictor (in your case 2^5 - 1 different models) and average them as in the linked article (note: the gives some examples along which to follow).

  • $\begingroup$ Thanks for the suggestion. I had a quick look at the paper and concluded that, while this solution should work well, it is probabably a bit too time consuming for my needs. Anyways, this is a very useful reference and I will keep this methodology in mind for any future work this might be applicable to. $\endgroup$
    – Cadbon
    Apr 18, 2018 at 9:41

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.