我正在尝试使用此处描述的 logit 模型(更具体地说是 5.1 中的模型)分析排序数据。现在我对任何协变量的影响不感兴趣,只想通过查看相应的对数几率来评估项目的具体差异。如果我理解正确,我可以通过仅包含一个常数项作为单个特定变量并删除任何其他截距来实现这一点。我在 R 中使用 mlogit 包,并从我从小插图中收集到的内容(尤其是 2.8 中排序 logit 模型的示例)我尝试执行以下操作:
library(mlogit)
data("Game", package = "mlogit")
G <- mlogit.data(Game, shape="wide", choice="ch", varying=1:12, ranked=TRUE)
summary(mlogit(ch ~ 1 | -1 | -1,G))
这让我收到以下错误消息:
Error in `rownames<-`(`*tmp*`, value = c("1.GameBoy", "1.GameCube", "1.PC", :
attempt to set 'rownames' on an object with no dimensions
很明显,我对 mlogit 公式的构造方式有一个误解,所以我试着玩了一下,我得到的唯一看起来像我想要的东西如下:
Call:
mlogit(formula = ch ~ alt | -1 | -1, data = G, method = "nr",
print.level = 0)
Frequencies of alternatives:
GameBoy GameCube PC PlayStation PSPortable Xbox
0.13846 0.13407 0.17363 0.18462 0.17363 0.19560
nr method
4 iterations, 0h:0m:0s
g'(-H)^-1g = 0.000575
successive function values within tolerance limits
Coefficients :
Estimate Std. Error t-value Pr(>|t|)
GameCube:(intercept) 0.058678 0.182572 0.3214 0.747911
PC:(intercept) 1.275749 0.194292 6.5661 5.164e-11 ***
PlayStation:(intercept) 1.273903 0.191226 6.6618 2.705e-11 ***
PSPortable:(intercept) 0.622355 0.181645 3.4262 0.000612 ***
Xbox:(intercept) 1.401230 0.189758 7.3843 1.532e-13 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Log-Likelihood: -546.82
然而,这并不是很令人满意,因为对我来说,将替代方案作为个体特定的协变量包括在内似乎很奇怪。任何有经验的人都可以使用 mlogit 包在 R 中拟合这样的模型吗?
PS:我不确定这个问题是否更适合 CV 或 StackOverflow,但由于基础问题是一个统计问题,我选择将它放在这里。