R mlogit模型,缺少需要TRUE / FALSE的值,20个无效因子级警告

时间:2017-08-13 18:46:46

标签: r mlogit

我正在尝试使用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次。

任何建议都会非常感激!

1 个答案:

答案 0 :(得分:0)

尝试

mlogit

请注意mlogit.data的调用中的 f2

在您对multi的第二次调用中,您已指定PWK是选择变量,并且相应地准备了数据。然而,在您使用的公式 f1 中,因变量被指定为mlogit,因此PMK期望每个备选方案的数据帧具有一行由multi而非{{1}}。