【问题标题】:How to deal with NA in a panel data regression?如何在面板数据回归中处理 NA?
【发布时间】:2013-01-03 20:48:11
【问题描述】:

我正在尝试基于plm 生成的模型预测包含NAs 的数据的拟合值。下面是一些示例代码:

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)

【问题讨论】:

    标签: r na predict plm panel-data


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      • 2021-08-05
      • 1970-01-01
      • 2017-06-02
      • 2018-05-06
      • 2021-08-25
      相关资源
      最近更新 更多