【发布时间】:2018-05-22 06:45:41
【问题描述】:
我已经尝试处理这个问题一段时间了,但没有运气。本质上,我正在做的是一些面板数据的两阶段最小二乘法。为此,我正在使用 plm 包。我想做的是
- 做一个 2SLS
- 从 1 中的 2SLS 中获取残差。
- 将这些残差用作不同 2SLS 中的工具
我遇到的问题是,在前 2SLS 中,使用的观察次数少于数据集中的总观察次数,因此我的残差向量很短,并且出现以下错误
model.frame.default(terms(公式, lhs = lhs, rhs = rhs, data = data, : 可变长度不同(为 'ivreg.2.a$residuals' 找到)
这是我试图运行以供参考的代码,如果您需要更多详细信息,请告诉我。我真的只需要我的残差向量与第一个 2SLS 中使用的数据长度相同。作为参考,我的数据有 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)]),])
如果您还需要什么,请告诉我。
【问题讨论】: