问题标签 [mlogit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
267 浏览

r - 如何在 r 中使用 mlogit 来估计二元 Probit 模型

对于二元选择,我知道我可以glm用来估计二元 Probit 模型。但是,出于教学目的,由于我将在稍后阶段继续进行多项选择(有两个以上的选择),因此我一直尝试使用mlogit包。奇怪的是,mlogit包似乎无法处理二进制 Probit 问题。

假设我导入的数据集叫做“data.set”。可以从此链接下载 CSV 文件。

这是我的程序

鉴于 CSV 数据已作为 data.set 导入。我运行以下几行。

然后我收到错误消息:

M[, ((i - 1):(J - 2))] 中的错误:下标超出范围另外:警告消息:在 rbind(0, diag(J - 2)) 中:结果的列数不是向量长度的倍数(arg 1)

我的“data.set2”是一个mlogit数据框,看起来像:

0 投票
0 回答
276 浏览

r - 在 R 中使用 mlogit 进行估计

我有一篇论文,其中作者提出了无选择的嵌套多项 Logit 模型的 D 最优设计。设计如下:

CS 1:

替代 A: 1 2 2 1 2 2

替代 B: 2 2 1 2 1 2

替代 C: 0 0 0 0 0 0

CS 2:

替代项 1: 2 1 1 2 2 2

替代项 2: 2 2 2 2 1 1

替代 3: 0 0 0 0 0 0

CS 3:

替代项 1: 2 2 1 1 1 2

替代项 2: 1 1 2 2 2 1

替代 3: 0 0 0 0 0 0

CS 4:

替代项 1: 2 2 1 1 2 1

替代项 2: 1 1 2 2 1 2

替代 3: 0 0 0 0 0 0

CS 5:

替代项 1: 1 2 1 2 2 1

替代项 2: 2 1 2 1 1 2

替代 3: 0 0 0 0 0 0

CS 6:

替代项 1: 1 2 1 2 1 2

替代项 2: 2 1 2 1 2 1

替代 3: 0 0 0 0 0 0

CS 7:

替代项 1: 2 1 1 2 2 1

替代项 2: 1 2 2 1 2 2

替代 3: 0 0 0 0 0 0

CS 8:

替代项 1: 2 1 2 2 2 1

替代项 2: 1 2 2 1 1 2

替代 3: 0 0 0 0 0 0

该设计是具有 8 个选择集的 D 最优设计,每个选择集有 2 个备选方案(备选方案的 6 个二级属性)。我尝试使用 mlogit 和该设计来估计 R 中的嵌套多项式 Logit 模型。因此,我使用随机响应制作了一个模拟数据,如下所示:

个人--Choiceid--Mode----Choice----AA--AB--AC--AD--AE--AF
------1----------- --1---------A--------FALSE-----1-----2-----2-----1---- -2-----2
------1-------------1----------B--------FALSE-- ----2-----2-----1-----2-----1-----2
------1--------- ----1---------C--------TRUE-----0-----0-----0-----0- --0-----0
------1----------------2----------A-------- FALSE-----2-----1-----1-----2-----2-----2
-----1------ --------2---------B--------TRUE-----2-----2-----2---- -2-----1-----1
------1-------------2----------C---- ---FALSE-----0-----0-----0-----0-----0-----0
------1--- ----------3---------A--------FALSE-----2-----2-----1-- ---1--------1-----2
---1-------------3---------B-- -----FALSE-----1-----1-----2-----2-----2-----1

数据包含 30 个人的回答,也就是说,数据包含 240 个选项(每个人选择 8 个)。但是当我使用命令时

我收到以下错误

solve.default(crossprod(attr(x, "gradi")[, !fixed])) 中的错误:
系统在计算上是奇异的:倒数条件数 = 1.13304e-18

有人知道我做错了什么吗?

0 投票
2 回答
2012 浏览

r - 为 mlogit 格式化数据

我正在为通过 mlogit 进行多项 logit 分析整理我的数据集而度过了一段痛苦的时光。我的数据集可从下面代码中的url获得。

我收到以下错误:

row.names<-.data.frame( , value = c("1.Accessible", "1.Accessible", 中的错误*tmp*:不允许重复的 'row.names'

我在其他地方检查过,似乎出现了这个问题。我尝试过使用与论点alt.levels相反的方法alt.var,但这不起作用。

0 投票
2 回答
1179 浏览

r - mlogit 中多项逻辑模型的影响

我收到了一些很好的帮助,让我的数据正确格式化,在这里生成了一个带有 mlogit 的多项逻辑模型(为 mlogit 格式化数据

但是,我现在正在尝试分析协变量在我的模型中的影响。我发现其中的帮助文件mlogit.effects()信息量不大。问题之一是该模型似乎产生了很多行 NA(见下文index(mod1))。

  1. 谁能澄清为什么我的数据会产生这些 NA?
  2. 谁能帮我mlogit.effects处理下面的数据?
  3. 我会考虑将分析转移到multinom(). 但是,我不知道如何格式化数据以适合使用公式multinom()。我的数据是七个不同项目(可访问性、信息、权衡、辩论、社交和响应)的一系列排名 我可以得到那个信息。

可重现的代码如下:

这是我尝试设置一个类似于帮助文件中描述的数据框的尝试。它不起作用。我承认,虽然我非常了解应用程序家族,但tapply 对我来说是模糊的。

从帮助中进行比较:

0 投票
0 回答
295 浏览

r - 多级嵌套 Logit R

我想使用语言 R 估计一个嵌套的 logit 模型。作为此类问题的标准包,我使用“mlogit”。现在我想估计一个模型,不止一个阶段。问题如下:

  1. 阶段:人们决定是否要移民美国。
  2. 阶段:对于所有决定移民的人,他们必须决定他们想去美国的哪个地区(美国分为6个地区)
  3. 阶段:在区域内,他们决定住在什么样的区域;城市与农村

我已经使用 mlogit.data() 转换了我的数据。

这就是“数据”的样子:

这是我的想法,我想如何编码,但它不起作用:

可以看到,第一阶段的一个巢(决定不迁移=“home_country”)是退化的。

如果有人可以帮助我,那就太棒了。

最好的祝愿,

克里斯

0 投票
1 回答
256 浏览

r - 多项 logit 模型

我将使用mlgit包。我像示例一样运行它,但它仍然给我一个错误,我不知道该怎么做。

错误是:

对比错误<-( tmp , value = contr.funs[1 + isOF[nn]]) :对比只能应用于具有 2 个或更多级别的因子

谢谢您的支持。

我添加了推荐的评论;检查模型中非数值变量的计数

0 投票
1 回答
1185 浏览

r - 包括选择退出作为 R Mlogit 中的替代特定常量

在我的硕士论文中,我正在对一种假设的治疗减肥的药物的属性偏好进行离散选择实验,我需要一些帮助。

我的设计是通用的,有 12 个选项集和三个选项:Product AProduct BOption out

不知何故,我需要包含 option-out 作为替代的特定常量,但似乎我在这里做错了什么。我对 12 个选项集的三个选项有 197 个响应,因此 197*12*3 的选项观察 = 7,092

我正在为我的分类变量(noadfeff、tab、infreq_3 和 optout)使用效果编码

mode.ids 表示替代品,即产品 A 或 B,或 option-out (mode.ids == C)

optout 变量已使用以下命令进行编码,

使用这个数据集,我设置了 mlgit-package 的数据

并运行以下模型

这会导致以下错误。

没有 optout 的类似模型不会产生任何问题,所以我的 optout 变量一定有问题。

我希望你能看到问题出在哪里?:)

最好的,亨里克

0 投票
4 回答
1360 浏览

r - 通过R中的组查找布尔值是否为真

我想要一种简单的方法来创建一个新变量,以确定 R 数据框中的布尔值是否为真。这是示例:假设在数据集中我有 2 个变量(以及其他不相关的变量)“a”和“b”和“a”确定一个组,而“b”是一个布尔值,值为 TRUE (1)或假 (0)。我想创建一个变量“c”,对于“b”至少一次为“真”的组中的所有条目,它也是一个布尔值,为 1,对于“b”从不为真的组中的所有条目,它为 0。从以下条目中:

我想得到变量'c',如下所示:

我知道如何在 Stata 中做到这一点,但我还没有在 R 中做过类似的事情,而且很难在互联网上找到这方面的信息。事实上,我这样做只是为了以后删除“c”为 0 的所有观察结果,所以任何其他建议也可以。它的应用与多项式 logit 估计有关,其中从未选择过的替代方案需要在估计之前从数据集中删除。

0 投票
0 回答
687 浏览

r - 在混合 logit 中使用“对数正态”分布时出现“if (abs(x - oldx) < ftol) 错误”

我有一个关于如何使用 R 中的 mlogit 包来分析离散选择调查数据的问题。我们的调查是关于要求人们从不同的保险单中进行选择(具有免赔额和保费两个属性)。

我用来拟合混合 logit 的代码是:

我尝试使用对数正态,因为我们希望免赔额和保费的系数都是负数。我在 [1] 中使用“相反”来反转符号,因为对数正态总是正的。

但我总是收到错误警告:

我仔细检查了数据,并确定没有任何丢失的数据。如果我将对数正态“ln”更改为“n”或“cn”,它将在没有任何警告的情况下工作。

有谁知道如何处理这个?谢谢您的帮助。

0 投票
1 回答
760 浏览

r - 如何将权重衰减参数传递给 mlogit()?

如何在mlogit拟合的模型中指定权重衰减?

nnetmultinom()函数允许您为正在拟合的模型指定权重衰减,并且 mlogit 在幕后使用此函数来拟合其模型,所以我想应该可以将参数传递给 multinom,但到目前为止还没有找到了一种方法来做到这一点。decay

到目前为止,我试图简单地在模型公式中传递一个值,就像这样。

但输出完全相同: