具有时间间隔的面板数据,如何创建滞后变量

时间:2018-03-23 02:44:38

标签: panel stata lag

我正在处理时间差距的面板数据。但不是同一时间差距。 Year变量有1980年,1990年,2000年,2010年,2015年和2020年。

正如您所看到的,它与2010年相比有10年的时间差距,但在2010年至2020年之间为5年。

在Stata中设置面板数据结构后(使用xtset命令),我想使用时间(滞后)运算符作为主变量兴趣和结果变量。但是,当我在变量名称前面使用L.时,Stata会告诉我no observations

是不是自动占用了上一个时间段?

或者我是否手动创建滞后变量?

1 个答案:

答案 0 :(得分:0)

我们需要了解但无法看到的是您使用的代码,特别是xtset。但它可以猜测。我在这里制作一个面板;具有更多面板的结构不会显示出不同的问题。

clear 
input Y Year 
1  1980
2  1990 
3  2000 
4  2010  
5  2015 
6  2020 
end 

gen ID = 42 

如果您只是指定面板和年份变量,Stata需要单位间距,因此滞后1和年度数据意味着“前一年”。要求滞后1变量是合法的,但所有值都缺失。

xtset ID Year 
gen lag1 = L1.Y 

如果指定delta(5),则除了两个观察值之外的所有变量都缺少滞后1变量。

xtset ID Year, delta(5) 
gen lag5 = L1.Y 

如果您尝试delta(10)无法使用(除非您drop 2015)。

xtset ID Year, delta(10) 

你也可以这样做:

bysort ID (Year) : gen prev = Y[_n-1] 

将您的成果结合在一起

list , sep(0) 

     +------------------------------------+
     | Y   Year   ID   lag1   lag5   prev |
     |------------------------------------|
  1. | 1   1980   42      .      .      . |
  2. | 2   1990   42      .      .      1 |
  3. | 3   2000   42      .      .      2 |
  4. | 4   2010   42      .      .      3 |
  5. | 5   2015   42      .      4      4 |
  6. | 6   2020   42      .      5      5 |
     +------------------------------------+

no observations错误消息可能来自其他命令。