我正在尝试对以下数据进行离散选择建模。基本上,30 位顾客有 16 种不同的披萨选择。他们可以选择一种以上的比萨饼,他们选择的比萨饼由选择变量表示。
pizza cust choice pan thin pineapple veggie sausage romano mozarella oz
1 1 Cust1 0 1 0 1 0 0 1 0 1
2 2 Cust1 1 0 1 1 0 0 0 0 0
3 3 Cust1 0 0 0 1 0 0 0 1 1
4 4 Cust1 1 0 1 1 0 0 0 0 0
5 5 Cust1 1 1 0 0 1 0 0 0 1
6 6 Cust1 0 0 1 0 1 0 1 0 0
7 7 Cust1 0 0 0 0 1 0 0 0 1
8 8 Cust1 1 0 1 0 1 0 0 1 0
9 9 Cust1 0 1 0 0 0 1 0 1 0
10 10 Cust1 1 0 1 0 0 1 0 0 1
11 11 Cust1 0 0 0 0 0 1 1 0 0
12 12 Cust1 0 0 1 0 0 1 0 0 1
13 13 Cust1 0 1 0 0 0 0 0 0 0
14 14 Cust1 1 0 1 0 0 0 0 1 1
15 15 Cust1 0 0 0 0 0 0 0 0 0
16 16 Cust1 0 0 1 0 0 0 1 0 1
17 1 Cust10 0 1 0 1 0 0 1 0 1
18 2 Cust10 0 0 1 1 0 0 0 0 0
19 3 Cust10 0 0 0 1 0 0 0 1 1
20 4 Cust10 0 0 1 1 0 0 0 0 0
当我使用以下命令转换我的数据时。我尝试在这里进行一些更改,例如添加chid.var = "chid"
和alt.levels=c(1:16)
. 如果我同时使用两者alt.levels
,alt.var
它会给我一个错误,说披萨已经存在并将被替换。但是,如果我使用它们中的任何一个,我都不会出错。
pz <- mlogit.data(pizza,shape = "long",choice = "choice",
varying = 4:8, id = "cust", alt.var = "pizza")
最后,当我使用 mlgit 命令时,我得到了这个错误。
mlogit(choice ~ pan + thin + pineapple + veggie + sausage + romano + mozarella + oz, pz)
Error in solve.default(H, g[!fixed]) :
system is computationally singular: reciprocal condition number = 8.23306e-19
这是我在 stackoverflow 上的第一篇文章。我经常访问这个网站,到目前为止,我已经找到了解决方案,因此不需要发帖。我浏览了几乎所有类似的帖子,但都是徒劳的。我是离散选择建模的新手,所以我不知道我是否在这里犯了任何基本错误。
另外,我不确定是什么chid.var
。