- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我今天一整天都在努力格式化我的 data (通过 BondedDust 的 table(TM) 建议发现错误后更新) 适合 mLogit:
raw <-read.csv("C:\\Users\\Andy\\Desktop\\research\\Oxford\\Prefs\\rData.csv", header=T, row.names = NULL,id="id")
raw <-na.omit(raw)
library(mlogit)
TM <- mlogit.data(raw, choice = "selected", shape = "long", alt.var = "dishId", chid.var = "individuals", drop.index = TRUE)
我失败的地方是尝试为我的数据建模。
model <- mlogit(selected ~ food + plate | sex + age +hand, data = TM)
Error in solve.default(H, g[!fixed]) : system is computationally singular: reciprocal condition number = 6.26659e-18
我真的很想在这个话题上得到一些帮助。恐怕我会有点生气。
数据本身来自一项实验,我们让 1000 多人在两盘食物之间做出决定(我们改变食物的外观 - 角形或圆形 - 并改变盘子的形状 - 角形或圆形).
致以最良好的祝愿,安迪。
PS 恐怕我是 StackOverflow 上统计问题的新手。
最佳答案
该模型无法将您的 dishId 解释为替代索引 (alt.var
),因为您有不同的 key 对用于不同的选择。例如,您将“TS”和“RS”作为 .csv 文件中第一个选择的替代索引键,但将“RR”和“RS”作为选择 3634 的键。此外,您也没有指定名称备选方案 (alt.levels
)。由于未填写 alt.levels
,mlogit.data
将自动尝试根据替代索引检测替代方案,它无法正确解释。这基本上就是一切出错的地方:“食物”和“盘子”变量没有被解释为替代项,而是被视为最终导致奇异性问题的个别特定变量。
您有两种选择来解决问题。您可以通过 alt.levels
参数将实际替代方案作为输入提供给 mlogit.data
:
TM <- mlogit.data(raw, choice = "selected", shape = "long", alt.levels = c("food","plate"),chid.var = "individuals",drop.index=TRUE)
model1 <- mlogit(selected ~ food + plate | sex + age +hand, data = TM)
或者,您可以选择使您的索引键保持一致,以便您可以通过 alt.var
将它们作为输入提供。 mlogit.data
现在能够正确猜测您的备选方案是什么:
raw[,3] <- rep(1:2,nrow(raw)/2) # use 1 and 2 as unique alternative keys for all choices
TM <- mlogit.data(raw, choice = "selected", shape = "long", alt.var="dishId", chid.var = "individuals")
model2 <- model <- mlogit(selected ~ food + plate | sex + age +hand, data = TM)
我们验证这两个模型确实相同。模型一的结果:
> summary(model1)
Call:
mlogit(formula = selected ~ food + plate | sex + age + hand,
data = TM, method = "nr", print.level = 0)
Frequencies of alternatives:
food plate
0.42847 0.57153
nr method
4 iterations, 0h:0m:0s
g'(-H)^-1g = 0.00423
successive function values within tolerance limits
Coefficients :
Estimate Std. Error t-value Pr(>|t|)
plate:(intercept) -0.0969627 0.0764117 -1.2689 0.2044589
foodCirc 1.0374881 0.0339559 30.5540 < 2.2e-16 ***
plateCirc -0.0064866 0.0524547 -0.1237 0.9015835
plate:sexmale -0.0811157 0.0416113 -1.9494 0.0512512 .
plate:age16-34 0.1622542 0.0469167 3.4583 0.0005435 ***
plate:age35-54 0.0312484 0.0555634 0.5624 0.5738492
plate:age55-74 0.0556696 0.0836248 0.6657 0.5055987
plate:age75+ 0.1057646 0.2453797 0.4310 0.6664508
plate:handright -0.0177260 0.0539510 -0.3286 0.7424902
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Log-Likelihood: -8284.6
McFadden R^2: 0.097398
Likelihood ratio test : chisq = 1787.9 (p.value = < 2.22e-16)
与模型 2 的结果对比。请注意,备选方案已正确识别,但名称未明确添加到模型中:
> summary(model2)
Call:
mlogit(formula = selected ~ food + plate | sex + age + hand,
data = TM, method = "nr", print.level = 0)
Frequencies of alternatives:
1 2
0.42847 0.57153
nr method
4 iterations, 0h:0m:0s
g'(-H)^-1g = 0.00423
successive function values within tolerance limits
Coefficients :
Estimate Std. Error t-value Pr(>|t|)
2:(intercept) -0.0969627 0.0764117 -1.2689 0.2044589
foodCirc 1.0374881 0.0339559 30.5540 < 2.2e-16 ***
plateCirc -0.0064866 0.0524547 -0.1237 0.9015835
2:sexmale -0.0811157 0.0416113 -1.9494 0.0512512 .
2:age16-34 0.1622542 0.0469167 3.4583 0.0005435 ***
2:age35-54 0.0312484 0.0555634 0.5624 0.5738492
2:age55-74 0.0556696 0.0836248 0.6657 0.5055987
2:age75+ 0.1057646 0.2453797 0.4310 0.6664508
2:handright -0.0177260 0.0539510 -0.3286 0.7424902
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Log-Likelihood: -8284.6
McFadden R^2: 0.097398
Likelihood ratio test : chisq = 1787.9 (p.value = < 2.22e-16)
关于R mlogit 模型,计算奇异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29849640/
两个 R 函数,multinom (包 nnet)和 mlogit (包 mlogit )可用于多项逻辑回归。但是为什么这个例子返回系数的 p 值的不同结果? #prepare data mydata
我得到了一些很好的帮助,让我的数据正确格式化,在此处使用 mlogit 生成多项逻辑模型 (Formatting data for mlogit) 但是,我现在正在尝试分析模型中协变量的影响。我在 m
我正在尝试使用估算数据运行多项回归。我可以用 nnet 包做到这一点,但是我想使用 mlogit。使用 mlogit 包,我不断收到以下错误“1:nrow(data) 中的错误:长度为 0 的参数”。
我在通过 mlogit 整理数据集以进行多项式 logit 分析时非常痛苦。我的数据集可从 url 获得在下面的代码中。 我收到以下错误: Error in row.names% gather(Ope
我正在尝试组织使用 mlogit 获得的结果,以便使用 xtable 导出到 LaTeX。但是,我发现很难像学术出版物中常见的那样在相邻的栏中准备结果。 特别是,我在最后一步遇到了问题,方程式需要彼此
谁能解释一下错误是什么,我该如何解决? > C.m<-mlogit(choice~TotalAmount,data=C) Error in solve.default(H, g[!fixed]) :
我正在使用以下包: library(mlogit) 我的数据准备如下 data(CollegeDistance, package="AER") testdata =0.4] =1] =2.5] as
我今天一整天都在努力格式化我的 data (通过 BondedDust 的 table(TM) 建议发现错误后更新) 适合 mLogit: raw summary(model1) Call: mlo
我正在估计一个多项式 Logit 模型并想报告边际效应。我遇到了困难,因为当我使用更大版本的模型时出现错误。 这是一个可重现的例子。以下带有两个协变量的代码运行良好。 library(mlogit)
我正在将 mlogit 包与 R 结合使用。 使用以下方式导入我的数据后: t mlogit.data(dat, choice="D", shape="long", id.var="key", al
我有一个离散选择实验 (DCE) 的数据,研究不同部门个人的招聘偏好。我已经格式化为长格式。我想使用 mlogit 建模。我已经导出了数据并且可以使用 asclogit 命令在 Stata 中成功运行
我有来自离散选择实验 (DCE) 的数据,该实验研究了来自不同行业的个人的招聘偏好。我已经格式化成长格式。我想使用 mlogit 建模。我已经导出数据并可以使用 asclogit 命令在 Stata
我在关卡上遇到了一些问题...运行以下命令: library(mlogit) panel.datasm = data.frame( cbind( round(runif(100
我们正在尝试使用 mlogit 包来估计出行方式选择模型。最终,我们打算建立一个包含更多变量的嵌套模型,但是我们试图首先建立一个非常简单的非嵌套多项式模型进行测试。特别是,我们要实现的目标与 mlog
我正在使用一个非常大的数据集(1.016 亿个单位备选方案)估计一个相当简单的 McFadden 选择模型。我可以使用 asclogit 在 Stata 中很好地估计这个模型命令,但是当我尝试使用 m
我发现了 mlogit - package用于多项式 logit 模型,以寻找估计多项式混合 logit 模型。在阅读了优秀的小插图后,我发现我无法将我的数据应用于任何描述的示例。 我现在写信希望对我
我正在为 iris 做多项逻辑回归模型数据集, library(VGAM) mlog1 <- vglm(Species ~ ., data=iris, family=multinomial()) co
我正在尝试导出mlogit()结果进入 latex table ,但我的尝试都没有成功! 1)首先我尝试使用包 xtable() : > library(xtable) > s tab library
我对 R 中的 mlogit 函数有疑问。我的数据集如下所示: personID caseID altID choice a1 a2 a3 a4 1
我正在尝试在 R 中重现 mlogit 包的多项式 logit 回归示例。 data("Fishing", package = "mlogit") Fish <- mlogit.data(Fishin
我是一名优秀的程序员,十分优秀!