不平衡面板上一阶差分回归的残差

标签 r output panel-data plm

我正在尝试使用 plm 来估计一些不平衡面板数据的一阶差分模型。我的模型似乎有效并且我得到了系数估计值,但我想知道是否有办法获得每个观察值的残差(或拟合值)。

我遇到了两个问题,我不知道如何将残差附加到与它们相关联的观察中,而且我似乎得到了不正确的残差数。

如果我使用 model.name$residuals 从估计模型中检索残差,我会得到一个比 model.name$model 短的向量。

require(plm)
X <- rnorm(14)
Y <- c(.4,1,1.5,1.3,1,4,5,6.5,7.3,3.7,5,.7,4,6)
Time <- rep(1:5,times=2)
Time <- c(Time, c(1,2,4,5))
ID <- rep(1:2,each=5)
ID <- c(ID,c(3,3,3,3))
TestData <- data.frame("Y"=Y,"X"=X,"ID"=ID,"Time"=Time)
model.name <- plm(Y~X,data=TestData,index = c("ID","Time"),model="fd")

> length(model.name$residuals)
[1] 11
> nrow(model.name$model)
[1] 14

(注意:ID=3 缺少 t=3 的观察)

查看 model.name$model 我看到它包括所有观察结果,包括每个 ID 成员的 t=1。在第一次求差中,t=1 观测值将被移除,因此在这种情况下,所有时间段的两个 ID 都应该有来自剩余时间段的 4 个残差。 ID=3 应该有 t=2 的残差,t=3 没有残差,因为它缺失,t=4 没有,因为没有差异值(由于缺少 t=3 值),然后是 t 的残差=5。

由此看来,似乎应该有 10 个残差,但我有 11 个。我希望能帮助解释为什么有这么多残差,以及如何将残差连接到正确的索引(ID 和时间)。

最佳答案

滞后完成 model="fd"基于相邻行,而不是时间索引的实际值。因此,如果您有非连续的时间段,这会给您带来意想不到的结果。为避免这种情况,请在尊重滞后时间段的同时自己进行差分并估计 池化 模型。此处不考虑数据的不平衡性。

从包 plm 的 1.7.0 版开始,那里lag()函数根据默认时间段的值执行滞后(以前的默认值是相邻行)。使用此功能自己做滞后。

继续你的例子:

pTestData <- pdata.frame(TestData, index=c("ID", "Time"))

pTestData$Y_diff <- plm::lag(pTestData$Y) - pTestData$Y
pTestData$X_diff <- plm::lag(pTestData$X) - pTestData$X
fdmod <- plm(Y_diff ~ X_diff, data = pTestData, model = "pooling")
length(residuals(fdmod)) # 10
nrow(fdmod$model)        # 10

我明确使用了 plm::当提到滞后函数时,因为其他几个包也有滞后函数(最显着的是 statsdplyr ),并且您想在这里使用包 plm 中的那个。
要将残差增加到差异数据(实际上用于计算模型),只需执行以下操作:dat <- cbind(fdmod$model, residuals(fdmod))
此外,您可能对函数 is.pconsecutive 感兴趣。
检查数据的连续性:
is.pconsecutive(pTestData)
#    1     2     3 
# TRUE  TRUE FALSE 

功能 make.pconsecutive将通过插入行 NA 使您的数据连续缺失期间的值。

关于不平衡面板上一阶差分回归的残差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39364471/

相关文章:

c - IDEONE 字符串操作的奇怪输出

java - 格式化数字打印输出异常

variables - 平衡面板数据中的时间趋势变量,Stata

r - 使用gsub提取R中空格之前的字符串

从数据框中删除仅包含 0 或仅包含单个 0 的行

r - Caret::train - 未估算的值

r - 面板数据 : How to remove IDs with missing yearly information

r - 正确地对列表进行子集化以替换元素值

java catch block 导致多个输出

r - plm 或 lme4 用于面板数据的随机和固定效应模型