Felix Eggers - Uni Hamburg
2011-Jul-06 14:31 UTC
[R] mlogit: nested model with constant option in degenerate partition
Dear R users, I am trying to estimate a nested logit model that has a constant option in a degenerate partition. The data set is a conjoint survey where respondents were asked to answer multiple choice sets. The choice sets consist of three alternatives (described by four varying attributes) and a no-choice option, i.e., none of the three alternatives. In the nested model one branch should represent the three varying choice options and the other branch the no-choice option. However, the R code I am using results in an error message because the no-choice option is not varying in the four attributes that I included in the mlogit formula. Is there another way of coding the no-choice option in this way? This is the R code I am using:> library(mlogit) > IA<-read.csv2("test.csv")# attributes are R, H, J, V, each having three levels. # r1, r2, h1, h2, etc are effect codes of these attribute levels.> head(IA, 20)Resp_id Resp_count chid Alternative_id Alt_text r1 r2 h1 h2 j1 j2 v1 v2 none_dummy selection_dummy 1 100007 1 1 1 Alt1 0 1 0 1 -1 -1 0 1 0 0 2 100007 1 1 2 Alt2 1 0 1 0 0 1 1 0 0 0 3 100007 1 1 3 Alt3 -1 -1 -1 -1 1 0 -1 -1 0 1 4 100007 1 1 4 NoChoice 0 0 0 0 0 0 0 0 1 0 5 100007 1 2 1 Alt1 0 1 -1 -1 0 1 -1 -1 0 0 6 100007 1 2 2 Alt2 -1 -1 1 0 -1 -1 1 0 0 1 7 100007 1 2 3 Alt3 1 0 0 1 1 0 0 1 0 0 8 100007 1 2 4 NoChoice 0 0 0 0 0 0 0 0 1 0 9 100007 1 3 1 Alt1 0 1 1 0 1 0 1 0 0 0 10 100007 1 3 2 Alt2 -1 -1 0 1 0 1 0 1 0 0 11 100007 1 3 3 Alt3 1 0 -1 -1 -1 -1 -1 -1 0 0 12 100007 1 3 4 NoChoice 0 0 0 0 0 0 0 0 1 1 13 100007 1 4 1 Alt1 0 1 1 0 1 0 -1 -1 0 0 14 100007 1 4 2 Alt2 -1 -1 0 1 0 1 1 0 0 1 15 100007 1 4 3 Alt3 1 0 -1 -1 -1 -1 0 1 0 0 16 100007 1 4 4 NoChoice 0 0 0 0 0 0 0 0 1 0 17 100007 1 5 1 Alt1 -1 -1 -1 -1 1 0 0 1 0 0 18 100007 1 5 2 Alt2 0 1 0 1 -1 -1 1 0 0 0 19 100007 1 5 3 Alt3 1 0 1 0 0 1 -1 -1 0 0 20 100007 1 5 4 NoChoice 0 0 0 0 0 0 0 0 1 1> IADATA<-mlogit.data(IA, choice="selection_dummy", shape="long",alt.var="Alt_text", id.var="Resp_count", chid="chid")> nl<-mlogit(selection_dummy~r1+r2+h1+h2+j1+j2+v1+v2 | 0, data=IADATA,nests = list(opt1 = c("Alt1", "Alt2", "Alt3"), opt2 = "NoChoice"), unscaled=TRUE ) Error in solve.default(crossprod(attr(x, "gradi")[, !fixed])) : Lapack routine dgesv: system is exactly singular Thank you for your help! Best, Felix --- Felix Eggers