如何处理NA的面板数据进行回归?(How to deal with NA in a panel da

2019-08-07 14:10发布

我试图在包含数据来预测拟合值NA S,并且基于由所生成的模型plm 。 下面是一些示例代码:

require(plm)
test.data <- data.frame(id=c(1,1,2,2,3), time=c(1,2,1,2,1), 
   y=c(1,3,5,10,8), x=c(1, NA, 3,4,5))
model <- plm(y ~ x, data=test.data, index=c("id", "time"), 
       model="pooling", na.action=na.exclude)
yhat <- predict(model, test.data, na.action=na.pass)
test.data$yhat <- yhat

当我运行的最后一行,我得到一个错误,指出更换有4行,而数据有5行。

我不知道怎么去预测返回长度5的矢量...

如果不是运行plm我运行一个lm (如下面的线),我得到预期的结果。

model <- lm(y ~ x, data=test.data, na.action=na.exclude)

Answer 1:

我认为这是一个事predict.plm 应该为您办理-似乎是在包装上作者的一时疏忽-但你可以使用?napredict实现它自己:

 pp <- predict(model, test.data)
 na.stuff <- attr(model$model,"na.action")
 (yhat <- napredict(na.stuff,pp))
 ## [1] 1.371429       NA 5.485714 7.542857 9.600000


文章来源: How to deal with NA in a panel data regression?