上一年的Stata交互变量
我使用的是Stata,我的面板数据集的格式如下: 年 身份证件 var1 var2 2000 1. 100 . 2001 1. 200 0.2 2002 1. 300 0.3 2000 2. 500 . 2001 2. 300 0.4 2002 2. 400 0.1 基于,以下是您问题的最新答案。更新使用了滞后运算符上一年的Stata交互变量,stata,interaction,Stata,Interaction,我使用的是Stata,我的面板数据集的格式如下: 年 身份证件 var1 var2 2000 1. 100 . 2001 1. 200 0.2 2002 1. 300 0.3 2000 2. 500 . 2001 2. 300 0.4 2002 2. 400 0.1 基于,以下是您问题的最新答案。更新使用了滞后运算符L1.var1,在创建滞后变量时,它比var1[\u n-1]优越得多。它防止代码从不同的面板(在这种情况下,不同的年份)获取观察结果 至少在数据示例中,这在实践中是有效的,因为每个
L1.var1
,在创建滞后变量时,它比var1[\u n-1]
优越得多。它防止代码从不同的面板(在这种情况下,不同的年份
)获取观察结果
至少在数据示例中,这在实践中是有效的,因为每个面板的第一次观察缺少
var2
。原则上,最好先执行tsset ID year
,然后执行gen wanted=L1.var1*var2
。最重要的是避免使用数据集中以前用于其他面板的任何观察结果。你是对的,@NickCox,我根据你的评论更新了答案。非常感谢。
clear all
input year ID var1 var2
2000 1 100 .
2001 1 200 0.2
2002 1 300 0.3
2000 2 500 .
2001 2 300 0.4
2002 2 400 0.1
end
// Declare data to be time series
tsset ID year
// Use Lag operator on var1 (for details see: help tsvarlist)
gen wanted = L1.var1 * var2
list
/* +----------------------------------+
| year ID var1 var2 wanted |
|----------------------------------|
1. | 2000 1 100 . . |
2. | 2001 1 200 .2 20 |
3. | 2002 1 300 .3 60 |
4. | 2000 2 500 . . |
5. | 2001 2 300 .4 200 |
|----------------------------------|
6. | 2002 2 400 .1 30 |
+----------------------------------+ */