1

我想使用这个R mlogit包。文档(http://cran.r-project.org/web/packages/mlogit/vignettes/mlogit.pdf)写得很好,但我还有一个问题。

假设我有一个由三个分类变量组成的数据集:modeagecostmode有三个水平(mode1, mode2, mode3),另外两个变量有两个水平(age1,age2cost1, cost2)。

基本上,它采用以下形式:

R> head(df)
  mode   age   cost
1 mode2  age1  cost2
2 mode1  age1  cost2
3 mode1  age2  cost1
4 mode3  age1  cost1  

使用该命令mlogitSample <- mlogit.data(df, choice = "mode", shape = "wide"),我可以将此数据集“转换”为以下mlogit格式:每行扩展为三行(对应于三个不同的响应类别),mode列转换为TRUEor的序列FALSE。这非常适合使用mlogit;但是,我认为这也是我得到错误的原因Lapack routine dgesv: system is exactly singular: U[8,8] = 0,因为我有多个不再独立的行。

因为我知道可以将多项式 logit 方法应用于我的案例,所以我想知道如何使用这个包来做到这一点。为了类似的目标,multinompackage的功能nnet工作正常,但它不适合我想到的同一模型:我想拟合模型 $\log(\pi_j(x)) = \alpha_j + \beta\cdot x$,每个模式类别 $j$ 的截距 $\alpha_j$ 和常数系数 $\beta$ 的向量不同。

4

0 回答 0