Stata 如何在不同的时间段延迟?
我使用的是1970年至2002年的大型面板数据。其中一个变量的观测值为1985年、1995年、1999年和2002年。变量如下所示:Stata 如何在不同的时间段延迟?,stata,Stata,我使用的是1970年至2002年的大型面板数据。其中一个变量的观测值为1985年、1995年、1999年和2002年。变量如下所示: +-------------------------+ | country year groups | |-------------------------| 1. | Germany 1985 5 | 2. | Germany 1995 10 | 3. | Germany 1
+-------------------------+
| country year groups |
|-------------------------|
1. | Germany 1985 5 |
2. | Germany 1995 10 |
3. | Germany 1997 . |
4. | Germany 1998 . |
5. | Germany 1999 20 |
+-------------------------+
我的意图是通过下一次观察来滞后于Groups变量。我已经为这些时间段创建了一个显示1的虚拟对象,但我不知道如何进行下一步。我可以做些什么来延迟此组变量?我不完全清楚您是希望组代表下一年还是上一年的值。无论如何,如果数据集中每个国家/年只有一次,则此语法相当简单:
bysort country year: replace groups=groups[_n-1] //for the previous observation
bysort country year: replace groups=groups[_n+1] //for the next observation
我不知道你为什么要这样做,但也许你想摆脱丢失的值。在这种情况下,请查看ssc的
carryforward
。我打算使用[\u n-1]创建一个仪器。当我运行回归时,Stata只考虑1985年、1995年、1999年和2002年的时间段。你的方法可以奏效,但前提是我每隔一年放弃一次,而不是这四年。然而,如果我这样做,2002年的观察将转移到下一个国家。我想我可以创建一个副本并手动删除2002年的观察结果,然后将其延迟。您可以通过在前一年添加bysort country来避免将其移动到另一个国家,例如:bysort country year:groups=groups[\n-1]我还将编辑我的答案。