r语言 - Mlogit 错误:solve.default(H, g[!fixed]) 中的错误:Lapack 例程 dge



我正在尝试对我的数据集运行多项式回归,以查看渠道和接触点对选择的影响,价格和设备作为控件,但不幸的是收到错误消息。

在已经运行 mlogit.data 之后,我的 data.frame 的前几行看起来像这样:

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)

然后我收到的是以下错误消息:

Error in solve.default(H, g[!fixed]) : Lapack routine dgesv: system is exactly singular: U[6,6] = 0

谁能帮助我在这里做错了什么?

谢谢你,最好

该误差意味着黑森矩阵是奇异的,即行列式等于零。实际上,您无法获得方差矩阵,该矩阵等于黑森州的负逆矩阵。

查看您的模型和数据,可能有几个原因导致了它。您没有提供MWE,所以我只能删除您提供的信息。

  1. 查看您的alt变量,它在 1 和 2 之间变化,但两个备选方案是相同的。这意味着在解释选择的替代方案之间绝对没有差异。这可能会导致计算上单一的黑森(另一个原因是替代方案之间的相关性非常强(。
  2. 您的选择变量称为Choice_A_or_B。它不是数据的一部分,很难看到,但在长格式中,它应该取值TRUE/FALSE.在每个选择场合,应TRUE所选备选方案,FALSE所有未选择的备选方案。查看您的CHOICE变量,它看起来是在此处使用的正确变量。
  3. 查看ORDER_ID变量,两个chid是相同的。这是否意味着同一客户购买了两件商品?
  4. 您是否有理由指定ChannelTouchpointPriceDevice为替代特定?这对于上面的示例无关紧要(请参阅第 1 点(,但在最终模型中应仔细考虑。

通常,当您设置数据(长格式(时,您可能希望每个备选方案有一行,其中包含个人、选择场合和备选方案的索引。

相关内容

最新更新