问题标签 [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.
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
数据框,看起来像:
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
有人知道我做错了什么吗?
r - 为 mlogit 格式化数据
我正在为通过 mlogit 进行多项 logit 分析整理我的数据集而度过了一段痛苦的时光。我的数据集可从下面代码中的url获得。
我收到以下错误:
row.names<-.data.frame
( , value = c("1.Accessible", "1.Accessible", 中的错误*tmp*
:不允许重复的 'row.names'
我在其他地方检查过,似乎出现了这个问题。我尝试过使用与论点alt.levels
相反的方法alt.var
,但这不起作用。
r - mlogit 中多项逻辑模型的影响
我收到了一些很好的帮助,让我的数据正确格式化,在这里生成了一个带有 mlogit 的多项逻辑模型(为 mlogit 格式化数据)
但是,我现在正在尝试分析协变量在我的模型中的影响。我发现其中的帮助文件mlogit.effects()
信息量不大。问题之一是该模型似乎产生了很多行 NA(见下文index(mod1)
)。
- 谁能澄清为什么我的数据会产生这些 NA?
- 谁能帮我
mlogit.effects
处理下面的数据? - 我会考虑将分析转移到
multinom()
. 但是,我不知道如何格式化数据以适合使用公式multinom()
。我的数据是七个不同项目(可访问性、信息、权衡、辩论、社交和响应)的一系列排名 我可以得到那个信息。
可重现的代码如下:
这是我尝试设置一个类似于帮助文件中描述的数据框的尝试。它不起作用。我承认,虽然我非常了解应用程序家族,但tapply 对我来说是模糊的。
从帮助中进行比较:
r - 多级嵌套 Logit R
我想使用语言 R 估计一个嵌套的 logit 模型。作为此类问题的标准包,我使用“mlogit”。现在我想估计一个模型,不止一个阶段。问题如下:
- 阶段:人们决定是否要移民美国。
- 阶段:对于所有决定移民的人,他们必须决定他们想去美国的哪个地区(美国分为6个地区)
- 阶段:在区域内,他们决定住在什么样的区域;城市与农村
我已经使用 mlogit.data() 转换了我的数据。
这就是“数据”的样子:
这是我的想法,我想如何编码,但它不起作用:
可以看到,第一阶段的一个巢(决定不迁移=“home_country”)是退化的。
如果有人可以帮助我,那就太棒了。
最好的祝愿,
克里斯
r - 多项 logit 模型
我将使用mlgit包。我像示例一样运行它,但它仍然给我一个错误,我不知道该怎么做。
错误是:
对比错误<-( tmp , value = contr.funs[1 + isOF[nn]]) :对比只能应用于具有 2 个或更多级别的因子
谢谢您的支持。
我添加了推荐的评论;检查模型中非数值变量的计数
r - 包括选择退出作为 R Mlogit 中的替代特定常量
在我的硕士论文中,我正在对一种假设的治疗减肥的药物的属性偏好进行离散选择实验,我需要一些帮助。
我的设计是通用的,有 12 个选项集和三个选项:Product A、Product B和Option 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 变量一定有问题。
我希望你能看到问题出在哪里?:)
最好的,亨里克
r - 通过R中的组查找布尔值是否为真
我想要一种简单的方法来创建一个新变量,以确定 R 数据框中的布尔值是否为真。这是示例:假设在数据集中我有 2 个变量(以及其他不相关的变量)“a”和“b”和“a”确定一个组,而“b”是一个布尔值,值为 TRUE (1)或假 (0)。我想创建一个变量“c”,对于“b”至少一次为“真”的组中的所有条目,它也是一个布尔值,为 1,对于“b”从不为真的组中的所有条目,它为 0。从以下条目中:
我想得到变量'c',如下所示:
我知道如何在 Stata 中做到这一点,但我还没有在 R 中做过类似的事情,而且很难在互联网上找到这方面的信息。事实上,我这样做只是为了以后删除“c”为 0 的所有观察结果,所以任何其他建议也可以。它的应用与多项式 logit 估计有关,其中从未选择过的替代方案需要在估计之前从数据集中删除。
r - 在混合 logit 中使用“对数正态”分布时出现“if (abs(x - oldx) < ftol) 错误”
我有一个关于如何使用 R 中的 mlogit 包来分析离散选择调查数据的问题。我们的调查是关于要求人们从不同的保险单中进行选择(具有免赔额和保费两个属性)。
我用来拟合混合 logit 的代码是:
我尝试使用对数正态,因为我们希望免赔额和保费的系数都是负数。我在 [1] 中使用“相反”来反转符号,因为对数正态总是正的。
但我总是收到错误警告:
我仔细检查了数据,并确定没有任何丢失的数据。如果我将对数正态“ln”更改为“n”或“cn”,它将在没有任何警告的情况下工作。
有谁知道如何处理这个?谢谢您的帮助。