Mlogit error:解算时出错。默认值(H,g[!fixed]):Lapack例程dgesv:系统完全是单数的:U[6,6]=0

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

我试图在我的数据集上运行多项式回归,以查看频道和接触点对选择的影响,并将价格和设备作为控件,但不幸的是,收到了一个错误消息

在已经运行了mlogit.data之后,my 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)
谁能帮我解释一下我做错了什么


谢谢你和贝斯特

这个错误意味着海森矩阵是奇异的,即行列式等于零。实际上,您无法获得方差矩阵,它等于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