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.