Mlogit error:解算时出错。默认值(H,g[!fixed]):Lapack例程dgesv:系统完全是单数的:U[6,6]=0
我试图在我的数据集上运行多项式回归,以查看频道和接触点对选择的影响,并将价格和设备作为控件,但不幸的是,收到了一个错误消息 在已经运行了mlogit.data之后,my data.frame的前几行如下所示:Mlogit error:解算时出错。默认值(H,g[!fixed]):Lapack例程dgesv:系统完全是单数的:U[6,6]=0,r,mlogit,R,Mlogit,我试图在我的数据集上运行多项式回归,以查看频道和接触点对选择的影响,并将价格和设备作为控件,但不幸的是,收到了一个错误消息 在已经运行了mlogit.data之后,my data.frame的前几行如下所示: ORDER_ID PRODUCT_ID DEVICE PRICE TOUCHPOINT CHANNEL 1_or_2 CHOICE chid alt 123 566 laptop 99
ORDER_ID PRODUCT_ID DEVICE PRICE TOUCHPOINT CHANNEL 1_or_2 CHOICE chid alt
123 566 laptop 99 paid offline 1 TRUE 33 1
123 566 laptop 99 paid offline 1 FALSE 33 2
123 534 phone 56 paid offline 2 FALSE 45 1
123 534 phone 56 paid offline 2 TRUE 45 2
124 876 laptop 85 unpaid online 1 TRUE 111 1
124 876 laptop 85 unpaid online 1 FALSE 111 2
我尝试运行的代码是:
Choice_mlg <- mlogit(Choice_A_or_B ~ 1 | Channel + Touchpoint + Price + Device,
data = ml_choice_1, reflevel = 1, na.action = na.exclude)
谁能帮我解释一下我做错了什么
谢谢你和贝斯特这个错误意味着海森矩阵是奇异的,即行列式等于零。实际上,您无法获得方差矩阵,它等于Hessian函数的负逆 查看您的模型和数据,可能有一些因素导致了它。您没有提供MWE,因此我只能离开您提供的信息
alt
变量,它在1和2之间变化,但两个选项是相同的。这意味着在解释选择的备选方案之间绝对没有差异。这可能导致计算上的奇异Hessian(另一个原因是备选方案之间的相关性非常强)choice\u A\u或\u B
。它不是数据的一部分,所以很难看到,但在长格式中,它应该采用值TRUE/FALSE
。对于选择的备选方案,它应该是TRUE
;对于每个选择场合中所有未选择的备选方案,它应该是FALSE
。查看您的选项
变量,该变量似乎是此处要使用的正确变量ORDER\u ID
变量,两个chid
的情况相同。这是否意味着同一位客户购买了两件商品李>
频道
、接触点
、价格
和设备
指定为特定的备选方案?这对于上面的示例并不重要(参见第1点),但在最终模型中应仔细考虑李>
通常,当您设置数据(长格式)时,您希望每个备选方案有一行,其中包含针对个人、选择场合和备选方案的索引
Error in solve.default(H, g[!fixed]) : Lapack routine dgesv: system is exactly singular: U[6,6] = 0