我正在估计一个有关人们出行方式的模型。有4种选择:飞机,汽车,公共汽车和火车。我想创建一个嵌套的logit模型,在该模型中,旅行者首先选择是否乘飞机,然后如果他们不乘飞机,则在其余选择之间进行选择。因此,我的巢是(空中)和(汽车,公共汽车,火车)。
This article建议采用此程序。
但是,当我估计这个模型时,我发现它是单数的,除非每个嵌套中至少包含两个项目。与上面的文章相比,嵌套中似乎不能只有一项。为什么会这样?
示例:
#install.packages("AER")
data("TravelMode", package = "AER")
# Works fine
nl1 <- mlogit(choice ~ gcost + wait, TravelMode, shape = 'long', alt.var = 'mode',
nests = list(public = c('train', 'air'), other = c('bus', 'car')))
# Gives singularity, as does any permutation with only one object in a nest
nl2 <- mlogit(choice ~ gcost + wait, TravelMode, shape = 'long', alt.var = 'mode',
nests = list(public = c('air'), other = c('bus', 'car','train')))
答案 0 :(得分:0)
我在处理自己的模型时找到了解决此问题的方法。事实证明这是一个编码问题。仅包括一组的“退化”嵌套时,必须包括“ unscaled = TRUE”。在小插图版本之一的第35页上。