R:使用回归(PLM)中观察较少的变量

  • 本文关键字:观察 变量 PLM 回归 r plm
  • 更新时间 :
  • 英文 :


我已经尝试处理了一段时间,现在没有运气。本质上,我正在做的是某些面板数据上的两个阶段最小二乘。为此,我正在使用PLM软件包。我想做的是

  1. 做一个2SLS
  2. 从2SL中获取残差1。
  3. 使用这些残留物作为不同2SLS中的仪器

我遇到的问题是,在前2SL中,所使用的观察次数小于数据集中的总观测值,因此我的残差向量很短,我得到以下错误

model.frame.default中的错误 可变长度有所不同(针对'ivreg.2.a $残差找到)

这是我要运行的代码以进行参考,让我知道您是否需要更多详细信息。我真的只需要我的剩余向量与前2SL中使用的数据相同。作为参考,我的数据有1713个观察结果,但是,在回归中只有1550使用,因此我的残差向量为长度1550。我的两个2SLS回归的代码在下面。

ivreg.2.a = plm(formula = diff(loda) ~ factor(year)+diff(lgdp) | index_g_l + diff(lcru_l) + diff(lcru_l_sq) + factor(year), index = c("country", "year"), model = "within", data = panel[complete.cases(panel[, c(1,2,3,4,5,7)]),])
 ivreg.2.a = plm(formula = diff(lgdp) ~ factor(year)+index_g_l + diff(lcru_l) + diff(lcru_l_sq) + diff(loda)| index_g_l + diff(lcru_l) + diff(lcru_l_sq) + factor(year) + ivreg.2.a$residuals, index = c("country", "year"), model = "within", data = panel[complete.cases(panel[, c(1,2,3,4,5,7)]),])

让我知道您是否需要其他任何东西。

我假设163个观测值被删除,因为它们在一个相关变量之一中具有NA。R中的大多数*lm函数都有na.action参数,可用于填充残差以纠正长度。例如,当缺少观察3时,

residuals(lm(formula, data, na.action=na.omit)) # 1 2 4
residuals(lm(formula, data, na.action=na.exclude)) # 1 2 NA 4

plm的文档说,此参数"当前尚未完全支持",因此,如果您首先将这些1550行过滤到新的DataFrame,然后对此进行所有后续工作。

btw,如果plm的行为像lm,则不需要指定complete.cases才能工作,因为它应该只使用NAs。

跳过任何内容

最新更新