【问题标题】:R mlogit model, , missing value where TRUE/FALSE needed, 20 invalid factor level warningsR mlogit 模型,,需要 TRUE/FALSE 的缺失值,20 个无效因子级别警告
【发布时间】:2017-08-13 18:46:45
【问题描述】:

我正在尝试使用 R 中的 mlogit 包运行多项逻辑回归。 我已经在https://drive.google.com/file/d/0B_o3xTWAYdbuRGw0dzNFRzd2NEk/view?usp=sharing 上传了数据。

数据包含两个不同的选择变量,我想在它们上运行相同的模型。我像这样运行第一个模型:

lfsm1 <- mlogit.data(lfs.models, shape="wide", choice="PWK")
f1 <- mFormula(PWK~1 | MIGGRP+SEX+AGE+EDU)
m1 <- mlogit(f1, lfsm1, weights=PWT14)
summary(m1)

此模型运行没有问题。然后我在另一个选择变量上运行相同的模型:

lfsm2 <- mlogit.data(lfs.models, shape="wide", choice="multi")
f2 <- mFormula(multi~1 | MIGGRP+SEX+AGE+EDU)
m2 <- mlogit(f1, lfsm2, weights=PWT14)

我收到以下错误:

Error in if (is.null(initial.value) || lnl <= initial.value) break : 
missing value where TRUE/FALSE needed
In addition: There were 20 warnings (use warnings() to see them)
> warnings()
Warning messages:
1: In `[<-.factor`(`*tmp*`, is.na(x), value = FALSE) :
   invalid factor level, NA generated

并且该警告消息重复 20 次。

我不确定这些错误在我的模型中意味着什么。以前的帖子 (mlogit: missing value where TRUE/FALSE needed) 表明我的第一个错误发生是因为我的数据不是宽格式,或者因为有些人没有选择任何替代方案。就我而言,这些解释都不是正确的。我所看到的警告消息表明 mlogit 对变量是因子或数字的反应很糟糕。但我不太明白为什么这在多项回归环境中很重要,或者问题如何在如此大的数据集中只发生了 20 次。

任何建议将不胜感激!

【问题讨论】:

  • 你是否有意在定义m2的调用中使用f1
  • 另外,您能否在帖子中提供示例数据?很少有人想从网络上下载、保存、加载和浏览文件只是为了在这里回答问题。
  • @coffeinjunky 你是对的,使用m2 &lt;- mlogit(f2, lfsm2, weights=PWT14) 不会出现错误。

标签: r mlogit


【解决方案1】:

试试

m2 <- mlogit(f2, lfsm2, weights=PWT14)

注意对mlogit 的调用中的f2

在您对mlogit.data 的第二次调用中,您已指定multi 是选择变量,并且相应地准备了数据。然而,在您使用的公式 f1 中,因变量被指定为 PWK,因此 mlogit 期望每个备选方案都有一个数据框,如 PMK 定义的那样,而不是multi

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 2016-11-06
    • 2015-06-28
    相关资源
    最近更新 更多