数据清洗|生成平衡面板数据
在 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 删样本 |

