使用 pgmm 函数时 lag(log(emp), 1:2) 是什么意思?

What does lag(log(emp), 1:2) mean when using pgmm function?

我在 plm 包中尝试了一个关于 pgmm 函数的例子。代码如下:

library(plm)
data("EmplUK", package = "plm")

## Arellano and Bond (1991), table 4 col. b 
z1 <- pgmm(log(emp) ~ lag(log(emp), 1:2) + lag(log(wage), 0:1)
           + log(capital) + lag(log(output), 0:1) | lag(log(emp), 2:99),
            data = EmplUK, effect = "twoways", model = "twosteps")
summary(z1, robust = FALSE)

我不确定 lag(log(emp), 1:2)lag(log(emp), 2:99) 的含义。 lag(log(emp), 1:2) 是否表示从一个单位到两个单位的滞后值 log(emp)lag(log(emp), 2:99) 从两个单位到 99 个单位的滞后值 log(emp)?

而且有时我在 运行 摘要部分的回归时出现错误,但有时没有这样的错误(代码相同): Error in !class_ind : invalid argument type

谁能帮我解决这些问题?That's the error here

log,一个基本的 R 函数,为您提供(自然)对数,在本例中为变量 emp.

plm

lag 可以给出第二个参数,称为 k,就像在您的示例中一样。通过查看 ?plm::lag.plm 可以清楚地看到:k

an integer, the number of lags for the lag and lead methods (can also be negative). For the lag method, a positive (negative) k gives lagged (leading) values. For the lead method, a positive (negative) k gives leading (lagged) values, thus, lag(x, k = -1) yields the same as lead(x, k = 1). If k is an integer with length > 1 (k = c(k1, k2, ...)), a matrix with multiple lagged pseries is returned

因此,不用输入两次 lag 来获得第一次和第二次滞后:

(lag(<your_variable>, 1) lag(<your_variable>, 2)

只需输入

lag(<your_variable>, k = 1:2),或没有命名参数

lag(<your_variable>, 1:2).

k 设置为 2:99 会得到第 2 到第 99 个滞后。

数量是指滞后适用的时间段数,不是指个体(单位)的数量,因为滞后适用于所有个体。

您可能需要 运行 ?plm::lag.plm 中的示例以帮助理解该函数。