如何比较和 select 面板数据中的不变变量

How to compare and select non-changing variables in panel data

我有不平衡的面板数据,需要排除收入在前一年 (t-1) 发生变化的观察值 (t),同时保留这些人的其他观察值。因此,如果收入在 t 年发生变化,那么 t 年应该被删除(对于那个人)。

clear
input year id income
2003 513 1500
2003 517 1600
2003 518 1400
2004 513 1500
2004 517 1600
2004 518 1400
2005 517 1600
2005 513 1700
2005 518 1400
2006 513 1700
2006 517 1800
2006 518 1400
2007 513 1700
2007 517 1600
2007 518 1400
2008 513 1700
2008 517 1600
2008 518 1400
end

xtset id year
xtline income, overlay

为了说明发生了什么,我添加了一个 xtline 图,它跟踪多年来的人均收入。 ID=518 是完美的不变情况(保留所有 obs)。 ID=513 有一次跳跃(那个人跳到 2005 年)。 ID=517 有一些类似峰值的东西,可能是一次测量误差(下降 2006 和 2007)。

我认为应该有某种形式的循环。为每个人初始化第一个值(因为这个不能比较),比如t0。然后比较 t1-t0,如果发生变化则丢弃,否则比较 t2-t1 等。因为数据不平衡,所以可能缺少年份观察。谢谢指教。

Update/Goal: 目的是为固定效应回归分析准备数据。还有另一个变量,报告整个 "last year"。然而,收入是在面谈日期(时间点)报告的。我需要接近 "last year income" 之类的东西才能将它与这个变量联系起来。一些出版物建议并遵循该程序。我尝试复制并理解它。

解决方案

bysort id (year) : drop if income != income[_n-1] & _n > 1
bysort id (year) : gen byte flag = (income != income[_n-1]) if _n > 1
list, sepby(id)

该程序在方法论上非常不确定。除了 xtset 调整数据外,无需准备固定效应分析;并且很少有任何借口来创建缺失数据……更不用说这样做是为了将数据压缩到(其他)研究人员对统计和计量经济学的了解范围内。我知道这是一项复制研究,但无论你对复制做什么,无论你在哪里展示它,你都需要指出,原作者一开始并没有太多关于回归的线索。不要太努力去理解它。