数据清洗|生成平衡面板数据
在 Stata 中,可以使用 tsfill
命令或者 xtbalance
命令生成平衡面板数据。两个命令的原理并不相同。 tsfill
通过【补样本】获得平衡面板, 更多用于宏观数据中;xtbalance
通过【删样本】获得平衡面板,更多用于微观数据中。
1. 命令展示
1 | ** 设置面板数据 |
注:在使用 tsfill
和 xtbalance
之前,需要使用 xtset
命令设置好面板数据。
2. 结果展示
(1)tsfill
补样本
以涵盖江苏和上海两个省份的三年面板数据为例,其中江苏缺少2020年的样本。可以看到,tsfill
对缺失的样本进行了填补,但是不会填补province
、x
等变量的取值。使用 fillmissing
命令,可以在tsfill
的基础上,进一步填补缺失的宏观地理信息,其原理是根据变量ID
分组,组内的每一个省份名称province
都是相同的,使用组内其中一个province
的取值替代缺失值。
(⚠️注意:不同设备的显示字体不同,可能会出现字符错位的现象。将错位的文本复制到其他文本编辑器 / Stata do 文件编辑器中,可以解决此问题。)
1 | ** tsfill 补样本 |
(2)xtbalance
删样本
以涵盖上海、江苏和安徽三个省份的三年面板数据为例,其中:
- 安徽缺少2021年的样本;
- 针对变量
x1
和x2
,江苏2020年的取值为缺失值。
因此,这个数据为非平衡面板数据。
情况1:
若要让其变成2019-2021年的平衡面板数据,只有上海符合变量 x1
和 x2
不是缺失值,而且年份不缺失的要求。因此,最后生成的平衡面板数据应该只有 2019-2021 年上海的数据。使用 xtbalance
命令,可以在指定年份范围和变量的条件下,删除非平衡的样本来构造平衡面板。
(⚠️注意:不同设备的显示字体不同,可能会出现字符错位的现象。将错位的文本复制到其他文本编辑器 / Stata do 文件编辑器中,可以解决此问题。)
1 |
|
情况2:
如果要构造 2019-2020 年的平衡面板数据,要求变量 x1
和 x2
不是缺失值,那么可以修改年份范围,这样最后保留的就是 2019-2020 年上海和安徽的样本。需要注意的是,xtbalance
需要生成的平衡面板数据的变量要求和时间范围均要在命令的 option
中指定,以确定生成什么样的平衡面板,因此2021年的上海样本也被删除了。
(⚠️注意:不同设备的显示字体不同,可能会出现字符错位的现象。将错位的文本复制到其他文本编辑器 / Stata do 文件编辑器中,可以解决此问题。)
1 | ** xtbalance 删样本 |