错误:0(非NA)案例plm package

时间:2017-01-12 21:49:24

标签: r statistics plm

我知道这已经被问到了,我已经看过这个主题的至少10个主题,但我仍然无法理解。我正在使用plm包来估计某些面板数据的随机效应模型。我有一个我已指定的模型,但是当我插入一个不包含任何NA的附加变量时,我收到以下错误消息。

lm.fit中的错误(x,y,offset = offset,singular.ok = singular.ok,...):   0(非NA)案件

我尽可能地减少了以下内容。

plm(dependent ~ varA + varB + varC + varD, data=mydata, 
model="random", index=c("Name", "Month"), na.action=na.exclude)

没有varA,模型工作正常。代替VarA,我可以插入我拥有的其他变量,有些可以使用,而有些则无法使用。

我的数据可以获得here

我尝试过使用na.omit(mydata),它有时会工作但不可靠。

任何见解都将受到赞赏。

3 个答案:

答案 0 :(得分:1)

这是由于您的数据和模型的具体情况而发生的,因此这是一个统计问题:

Swamy-Arora(random.method = "swarm")的默认随机效应方法中使用的回归之间的估计不可用于此模型(4个人(数据中为Name),同时尝试估计4个协变量和截距),因此模型不能用默认的RE估计器估计。您可以尝试不同的随机效果方法,例如将random.method设置为amemiyawalhus

plm(dependent ~ varA + varB + varC + varD, data=mydata, 
    model="random", index=c("Name", "Month"), random.method = "amemiya")

(是的,这里可以改进plm的错误信息。)

答案 1 :(得分:1)

这是一篇旧帖子,但它是对此特定问题的唯一参考。我只是使用plm包和plm函数来解决这个问题。在这种情况下,我发现错误消息具有误导性。在我的情况下,完整案例的数量(参见函数complete.cases())不是0,我无法弄清楚为什么plm函数给我这个错误信息。

在挖掘了我的数据后,我发现问题实际上是我的数据中存在值为-Inf或Inf的条目。我只是用NA取代了这些条目(具有讽刺意味!),并且plm函数运行顺畅。

请注意,对同一回归公式使用lm函数实际上给了我这个实际的错误消息:

“lm.fit中的错误(x,y,偏移=偏移,singular.ok = singular.ok,...):   “y”中的NA / NaN / Inf

这显然更能说明实际情况。

祝你好运

答案 2 :(得分:0)

当尝试使用由字符串组成的变量时,也会出现这个问题。 对我来说,当我尝试使用包含像

这样的列的数据框时,出现了这个确切的错误
data$column
"1", "2", "3", "4", ...

使用 as.numeric(data$column) 用对应的数字替换字符串可以解决问题并允许回归。