楼主: uumen5
887 2

[问答] mlogit包做mixed logit model自动算出来的标准差为负数的原因 [推广有奖]

  • 0关注
  • 0粉丝

高中生

12%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
0.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
93 点
帖子
3
精华
0
在线时间
41 小时
注册时间
2020-6-12
最后登录
2025-12-12

楼主
uumen5 发表于 2024-10-17 13:20:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在R中用mlogit包做了mixed logit model,设置的random parameter几个变量,自动算出来的sd为负数。
查了查目前只有一个网友问答有所帮助,但是网友问答肯定没法引用,礼貌问下哪些数据有解释呢?

https://stats.stackexchange.com/questions/158260/mlogit-negative-value-for-sd
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:mlogit logit Mixed model mode

沙发
一叶知秋qaq 发表于 2025-2-28 15:07:08
原因:
1. 分布假设不当
若参数实际应服从对数正态分布(如价格系数需保持正号),但误设为正态分布,可能导致均值或标准差估计异常。

2. 模型未收敛
问题:若模型未达到收敛标准,参数估计可能不准确,包括标准差为负。

3. 数据质量问题
问题:数据中存在极端值、共线性或类别不平衡时,参数估计可能偏离理论预期。

4. 初始值敏感性与优化算法
问题:最大似然估计对初始值敏感,若初始值设定不当,可能陷入局部最优解。


解决方案与建议:
1. 调整分布假设
方法:将可能需保持正号的参数(如价格、时间成本)设为对数正态分布,而非正态分布。
操作示例:
  # 假设"cost"变量需保持正效应,设为对数正态分布
  mlogit_model <- mlogit(choice ~ var1 + var2 | 0, data = data,
                         rpar = c(cost = "ln", var2 = "n"), R = 1000)

2. 提高模型收敛性
- 增加抽样次数:使用Halton序列替代伪随机数,减少抽样误差。
- 调整优化参数:指定初始值或增加最大迭代次数:
  mlogit_model <- mlogit(..., start = c(0.1, 0.1, 0.1),
                         control = list(iterlim = 2000))

3. 数据预处理
标准化变量:对连续变量进行中心化或标准化,减少尺度差异对优化的影响。
检查共线性:使用方差膨胀因子(VIF)或相关矩阵排除高度相关的变量。

4. 验证模型设定
简化模型:逐步添加随机参数,观察标准差变化,定位问题变量。
固定部分参数:将部分变量设为固定参数(如ASC),减少随机效应维度。

5. 使用替代软件验证
跨软件验证:在Stata(`mixlogit`命令)或Python(`pylogit`库)中重复分析,确认是否为`mlogit`包特定问题。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 12:59