我对 R 中的包有疑问mnlogit
,我会在 StackOverflow 上询问它,因为它与特定的语言和库有关,但是如果有人决定将它移到交叉验证,我不会生气(这是一个艰难的选择 StackExchange网站是最合适的)。
我只是想确保我理解它是如何工作的,因为文档不是太详细,我在这个包上看到了一些令人困惑/冲突的博客条目,而且因为我已经有几年没有处理选择了楷模。
的示例用法mnlogit
基本如下:
> require(mnlogit)
> data(Fish)
> head(Fish)
mode income alt price catch chid
1.beach FALSE 7083.332 beach 157.930 0.0678 1
1.boat FALSE 7083.332 boat 157.930 0.2601 1
1.charter TRUE 7083.332 charter 182.930 0.5391 1
1.pier FALSE 7083.332 pier 157.930 0.0503 1
2.beach FALSE 1250.000 beach 15.114 0.1049 2
2.boat FALSE 1250.000 boat 10.534 0.1574 2
> fm <- formula(mode ~ price | income | catch)
> result <- mnlogit(fm, Fish, "alt", ncores = 2)
我觉得令人困惑的是mode
and alt
。我会认为因变量将是多项选择,这似乎是alt
(海滩、船、包机或码头)。
相反,它是这个逻辑变量,mode
. 是什么mode
?
为了澄清我的理解,我阅读了一篇关于该主题的R-Bloggers 文章。它实际上通过重复Fish
示例使事情变得更加混乱,但是以这种方式描述数据集的序言:
一个数据框包含:
mode - The choice set: beach, pier, boat, and charter price - price for a mode for an individual catch - fish catch rate for a mode for an individual income - monthly income of the individual decision-maker chid - decision maker ID
它描述mode
得好像是alt
然后不提alt
。谁可以给我解释一下这个?
如果mode
真的采用了 R-Bloggers 文章中描述的离散选择值,那么该模型formula(mode ~ price | income | catch)
对我来说是有意义的……但mode
它是一个逻辑变量,所以我完全糊涂了。