3

I am doing an analysis of a choice-based conjoint / discrete choice experiment. After using the mlogit.data function in the mlogit package to manipulate the results into the following format:

    respondent task concept length interface recommendations       input price choice
1.1          6    1       1      8       app   bed.alarm.viz some.manual  4.49   TRUE
1.2          6    1       2     10       app   bed.alarm.viz     passive 14.49  FALSE
1.3          6    1       3     12       web             bed  all.manual  4.49  FALSE
2.1          6    2       1     10       app       bed.alarm  all.manual 19.49  FALSE
2.2          6    2       2     12      text             bed some.manual 14.49  FALSE
2.3          6    2       3      8       web   bed.alarm.viz     passive  4.49   TRUE

[NB: length and price are coded as numerical variables]

I run the following code:

m1 <- mlogit(
 formula = choice ~ price + input + recommendations + interface + length,
 data = conjoint.ml.df
)

And I get the following error:

Error in solve.default(H, g[!fixed]) : 
system is computationally singular: reciprocal condition number = 8.8882e-17

Notice that I didn't specify any individual-specific variables. Including individual-specific variables in the formula doesn't eliminate the issue.

I realize this is likely because there is perfect separation, or that some of my variables are linear combinations of the other. I tried doing quick xtabs to see if choice was perfectly separated by any of the predictors but it was not that easy sadly.

I am not sure how to proceed with this; how can I figure out which is the offending linear combination and then salvage the analysis? I have seen a number of questions running into a similar problem.

kjetil b halvorsen
  • 63,378
  • 26
  • 142
  • 467
Tom
  • 255
  • 1
  • 9

0 Answers0