首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R:在回归(plm)中使用观测量较少的变量(Plm)

R:在回归(plm)中使用观测量较少的变量(Plm)
EN

Stack Overflow用户
提问于 2017-12-08 03:29:55
回答 1查看 1K关注 0票数 1

我已经试着处理这件事有一段时间了,没有运气。本质上,我所做的是对一些面板数据的两阶段最小二乘法。为此,我使用plm软件包。我想做的是

  1. 做一个2SLS
  2. 在1中从2 2SLS中获取剩余值。
  3. 在不同的2 2SLS中使用这些残差作为仪器。

我的问题是,在第一个2 2SLS中,所使用的观测数少于数据集中的总观测值,所以我的残差向量很短,我得到了以下误差

Model.frame.default中的错误(公式,lhs = lhs,rhs = rhs,data = data,变量长度不同(“ivreg.2.a$残留物”))

这是我试图运行的代码,以便参考,如果您需要更多的详细信息,请告诉我。我真的需要我的剩余向量是相同的长度,在第一个2 2SLS中使用的数据。作为参考,我的数据有1713个观测,然而,只有1550被用于回归,因此,我的残差向量是长度1550。我的两个2SLS回归代码如下所示。

代码语言:javascript
复制
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)]),])

如果你还需要什么就告诉我。

EN

回答 1

Stack Overflow用户

发布于 2017-12-08 11:42:01

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

代码语言:javascript
复制
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中,并完成所有后续工作,就会更简单。

顺便说一句,如果plm的行为类似于lm,那么您不需要指定complete.cases才能工作,因为它应该跳过NA的任何操作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47707281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档