问题标签 [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 - 从另一个函数内部调用 mlogit(),使用附加时变量的范围问题
我需要从另一个函数内部调用mlogit() R函数。
这是一个用于演示目的的函数:
显然存在环境问题,因此 mlogit() 函数找不到未全局声明的变量作为参数。
此示例不起作用:
如果在主环境中分配变量,则它可以工作:
或者,如果我从函数内部全局分配变量,它也可以工作
关于如何避免全局分配变量的任何想法?
r - R mlogit 在我的数据上给出错误'系统在计算上是奇异的?
谁能解释错误是什么,我该如何解决?
r - 在垂直列中组织 mlogit 生成的结果
我正在尝试组织我使用 mlogit 获得的结果,以便使用xtable
. 但是,我发现很难像学术出版物中经常发现的那样在相邻列中准备结果。
特别是,我在最后一步遇到问题,其中方程需要彼此相邻移动。
我正在展示一个带有小数据框的示例,以及到目前为止我已经走了多远。如果有更简单的方法可以做到这一点,如果你让我知道,我会很高兴。
我需要帮助创建一个可以适应不同数量的方程(取决于结果变量有多少级别)和每个方程的不同长度(取决于预测变量的数量)的解决方案。
r - 多项式混合 logit 模型 mlogit r-package
我发现了多项式 logit 模型的mlogit
-包,以搜索估计多项式混合 logit 模型。在阅读了优秀的小插图后,我发现我无法将我的数据应用于任何描述的示例。
我现在写信希望对我的问题有所帮助,并创建了一个最小的例子来说明我的情况。
问题如下:某处有辅音“Q”的单词。现在进行了一项实验,这些人的任务是听这些单词并说出他们是否听到了 Q、U 或其他辅音。这必须根据音节位置或真实/非真实单词等因素进行建模。
在最小的例子中,我用音节位置创建了 4 个人和他们的答案。
据我所知nnet
的multinom
功能不包括混合模型。
首先,我使用mlogit.data
-function 来重塑文件。在与一位同事讨论后,我们得出的结论是没有替代的具体变量。
不,我不知道该怎么做,所以我在这里寻求帮助。但我相信这种问题可以解决,mlogit
我只是还没有看到;)
scipy - BFGS 无法收敛
我正在研究的模型是多项 logit 选择模型。这是一个非常具体的数据集,因此其他现有的 MNLogit 库不适合我的数据。
所以基本上,这是一个非常复杂的函数,它接受 11 个参数并返回一个对数似然值。然后我需要找到可以使用 scipy.optimize.minimize 最小化对数似然的最佳参数值。
以下是我使用不同方法遇到的问题:
'Nelder-Mead':效果很好,而且总是给我正确的答案。但是,它非常缓慢。对于另一个设置更复杂的功能,需要 15 个小时才能达到最佳点。同时,使用 fminunc(默认使用 BFGS)在 Matlab 上相同的功能仅需 1 小时
'BFGS':这是 Matlab 使用的方法。它适用于任何简单的功能。但是,对于我拥有的函数,它总是无法收敛并返回“由于精度损失而不一定实现的期望错误。”。我花了很多时间玩这些选项,但仍然无法工作。
'Powell':快速收敛,但返回错误的答案。代码打印在下面(x0 是正确答案,Nelder-Mead 适用于任何初始值),您可以在此处获取数据:https ://www.dropbox.com/s/aap2dhor5jyxy94/data.csv
谢谢!
更新:2014 年 3 月 7 日更简单的代码版本现在 Powell 在非常小的容差下运行良好,但是在这种情况下 Powell 的速度比 Nelder-Mead 慢。BFGS 仍然无法正常工作。
r - R中多项logit回归的奇怪错误
我尝试在 R 中进行多项 logit 回归。我使用了以下命令:
适合 <- glmnet(xdata, newdata2$state, family="multinomial" )
但我收到了这个错误:
错误:来自 glmnet Fortran 代码(错误代码 8001);第 1 类 < 1.0e-5 的空概率
我不知道我应该如何解决这个错误,我会感谢任何帮助。另外请让我知道是否有任何更简单的方法可以在 R 中执行多项 logit 回归(而不是仿生回归)。
编辑:
r - R,将数据集转换为 mlogit(/mnlogit) 长格式
我想使用这个R
mlogit
包。文档(http://cran.r-project.org/web/packages/mlogit/vignettes/mlogit.pdf)写得很好,但我还有一个问题。
假设我有一个由三个分类变量组成的数据集:mode
、age
、cost
。mode
有三个水平(mode1
, mode2
, mode3
),另外两个变量有两个水平(age1
,age2
和cost1
, cost2
)。
基本上,它采用以下形式:
使用该命令mlogitSample <- mlogit.data(df, choice = "mode", shape = "wide")
,我可以将此数据集“转换”为以下mlogit
格式:每行扩展为三行(对应于三个不同的响应类别),mode
列转换为TRUE
or的序列FALSE
。这非常适合使用mlogit
;但是,我认为这也是我得到错误的原因Lapack routine dgesv: system is exactly singular: U[8,8] = 0
,因为我有多个不再独立的行。
因为我知道可以将多项式 logit 方法应用于我的案例,所以我想知道如何使用这个包来做到这一点。为了类似的目标,multinom
package的功能nnet
工作正常,但它不适合我想到的同一模型:我想拟合模型 $\log(\pi_j(x)) = \alpha_j + \beta\cdot x$,每个模式类别 $j$ 的截距 $\alpha_j$ 和常数系数 $\beta$ 的向量不同。
r - 多项式 logit 模型和嵌套 logit 模型
我在程序 R 中使用 mlogit 包。我已将数据从原始宽格式转换为长格式。这是转换后的 data.frame 的示例,我将其称为“long_perp”。所有的自变量都是个体特定的。我在数据集中有 4258 个独特的观察结果。
“act2”是因变量,包括漂浮在水面上的鸟在靠近船时可能做出的选择;飞行、潜水或无。我对这些概率如何与 data.frame 中的剩余自变量相关感兴趣,即与船舶路径 (pdist) 的垂直距离海况 (sea)、速度 (avgknots)、到岸边的距离 (shore) 等。变量由二分变量、因子变量和连续变量组成。
我运行了两个多项式 logit 模型,一个包括所有选择选项,另一个只包括一个子集。然后,我将这些模型与 hmftest() 函数进行了比较,以测试 IIA 假设。至少可以说,结果令人困惑。我将包含两个模型的代码和测试输出(以防我在代码中未指定模型)。
如您所见,卡方统计量为负!我假设我要么 1. 做错了事,要么 2. 违反了 IIA。这个结果适用于选择子集(飞行,潜水),但是选择子集(无,潜水)支持 IIA 假设?这让我很困惑。
接下来,我尝试制定一个嵌套模型来放松 IIA 假设。我将选项嵌套为nest1 = none,nest2 = fly,dive。这对我来说很有意义,因为这似乎是一个合乎逻辑的中断,鸟决定做出反应或不做出反应,然后决定做出哪种反应。
我不清楚如何运行嵌套的 logit 模型(即使在阅读了 mlogit、Croissant vignette和Train vignette的两个小插图之后)。
当我按照羊角面包小插图中的示例运行分析时,我收到以下错误。
我已经阅读了一些有关此错误消息的信息,它可能由于完全分离而发生。我查看了一些数据表,但不相信这种情况正在发生,因为我有 4,000 多个观察值,并且只有一个因子变量具有 2 个以上的水平(它有 3 个)。
非常感谢您对这些特定问题的帮助,但我也愿意接受可以用来回答我的问题的替代分析。我主要对飞行概率作为与船舶路径垂直距离的函数感兴趣。
谢谢,蒂姆
r - Lapack 例程 dgesv mlogit mlogit in R
当我尝试运行 mlgit 时,我在R中遇到错误。
我尝试估计以下内容:
出现的错误如下:
logit3 <- mlogit(choice~1|prod1+prod2+camp1+camp2+salm1+salm2+orig1+orig2+price1+price2, data=CNLdata)
solve.default(H, g[!fixed]) 中的错误:
系统是计算奇异:倒数条件数 = 5.49164e-20
谁能帮我解决这个问题?
数据示例:
r - Mlogit 多项概率模型:需要 TRUE/FALSE 的缺失值
我正在尝试使用该mlogit
包来估计多项概率模型,但出现以下错误。
这些是我使用的语句
我的数据如下所示:
最后 4 列仅是个人特定的,而其他列是替代特定的。有人可以帮忙吗?