在R中生成滞后时间序列横截面变量

在R中生成滞后时间序列横截面变量,r,time-series,panel-data,plm,R,Time Series,Panel Data,Plm,我是一个新的R用户。我有一个时间序列横截面数据集,虽然我已经找到了在R中滞后时间序列数据的方法,但我还没有找到创建滞后时间序列横截面变量的方法,以便在分析中使用它们 以下是如何将lag()函数用于zoo(和面板系列数据): 落后1: > lag(x[1:3,1:3],1) ALABAMA ARIZONA ARKANSAS 1970-01-01 15501.94 10560.54 7982.03 1971-01-01 15972.41 10977.53 8309

我是一个新的R用户。我有一个时间序列横截面数据集,虽然我已经找到了在R中滞后时间序列数据的方法,但我还没有找到创建滞后时间序列横截面变量的方法,以便在分析中使用它们

以下是如何将
lag()
函数用于
zoo
(和面板系列数据):

落后1:

> lag(x[1:3,1:3],1)
            ALABAMA  ARIZONA ARKANSAS
1970-01-01 15501.94 10560.54  7982.03
1971-01-01 15972.41 10977.53  8309.01
> lag(x[1:3,1:3],k=-1)
            ALABAMA  ARIZONA ARKANSAS
1971-01-01 15032.67 10148.42  7613.26
1972-01-01 15501.94 10560.54  7982.03
正如德克所提到的,在不同的时间序列包中要注意滞后的含义。请注意
xts
如何区别对待这一点:

> lag(as.xts(x[1:3,1:3]),k=1)
            ALABAMA  ARIZONA ARKANSAS
1970-01-01       NA       NA       NA
1971-01-01 15032.67 10148.42  7613.26
1972-01-01 15501.94 10560.54  7982.03

对于横截面时间序列数据,该软件包非常有用。它有一个滞后函数,该函数考虑了数据的面板性质

library(plm)
data("Produc", package="plm")
dnow <- pdata.frame(Produc)
head(lag(dnow$pcap,1))
             ALABAMA-1970 ALABAMA-1971 ALABAMA-1972 ALABAMA-1973 ALABAMA-1974 
          NA     15032.67     15501.94     15972.41     16406.26     16762.67 

所以要小心。

只需小心lap运算符的含义是:“注意‘k’的符号:一个由正‘k’滞后的序列在时间上会提前移动。”问题是关于横截面时间序列(也称为面板)数据。afaik动物园不处理此类数据(由于重复的时间观测)。
library(plm)
data("Produc", package="plm")
dnow <- pdata.frame(Produc)
head(lag(dnow$pcap,1))
             ALABAMA-1970 ALABAMA-1971 ALABAMA-1972 ALABAMA-1973 ALABAMA-1974 
          NA     15032.67     15501.94     15972.41     16406.26     16762.67 
head(with(dnow, lag(pcap,1)))
15032.67 15501.94 15972.41 16406.26 16762.67 17316.26