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

问题描述 投票:0回答:1

我尝试了一个有关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)?

而且有时在摘要部分运行回归时有时会出错,但有时没有此类错误(代码相同):!class_ind错误:无效的参数类型

有人可以帮助我解决这些问题吗?预先谢谢你。

r lag plm
1个回答
0
投票

log,基本的R函数,在变量emp的情况下为您提供(自然)对数。

像您的示例一样,可以给包lag的[[plm]添加第二个参数,称为k。通过查看?plm::lag.plm可以清楚地看到:k

“ pseries对象,

整数,滞后和超前方法的滞后数(也可以是负面的)。对于滞后法,正(负)k会导致滞后(领先)价值。对于前导方法,正(负)k给出前导(滞后)值,因此lag(x,k = -1)产生与超前(x,k = 1)。如果k是一个长度> 1的整数(k = c(k1,k2,...)),则返回具有多个滞后pseries的矩阵

因此,不要两次键入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个延迟。

© www.soinside.com 2019 - 2024. All rights reserved.