全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
985 8
2023-04-01
我在处理一组很unbalanced的数据,不能用tsset的样子,那么怎么生成按年的滞后项L.X呢?

IDYear X L.X(应该生成这样)
1 2001 1 0
1 2003 3 2
1 2005 5 4
2 2000 0 .
2 2002 2 1
2 2004 4 3
3 2003 3 2
3 2004 4 3
3 2005 5 4

As xtset is impossible for my case, how do I generate L.X?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2023-4-1 22:03:27
为啥不能xtset??
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2023-4-2 10:59:38
qianchen 发表于 2023-4-1 22:03
为啥不能xtset??
因为并不是公司数据,而是别的房地产数据。houseid特别多,但是连续记录的缺失也很多
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2023-4-2 21:43:28
你可以通过以下步骤生成按年的滞后项L.X:

首先按照ID和Year排序,可以使用sort命令,例如:sort IDYear
然后使用by命令对每个ID进行循环,并计算L.X的值,例如:
by ID: gen L.X = X[_n-1] if Year == Year[_n]-1
这里的gen L.X表示生成一个名为L.X的新变量,X[_n-1]表示当前观测的前一个观测的X值,Year[_n]-1表示当前观测的前一年。by ID:表示对每个ID进行循环。
3. 最后,你可以用fillin命令补全缺失值,例如:
fillin ID Year: keep if _fillin == 0
这里的fillin ID Year:表示对每个ID和每年进行补全,_fillin == 0表示只保留原始数据中存在的观测。

这样就可以生成按年的滞后项L.X了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2023-4-3 09:41:44
Markqb 发表于 2023-4-2 21:43
你可以通过以下步骤生成按年的滞后项L.X:

首先按照ID和Year排序,可以使用sort命令,例如:sort IDYea ...
十分感谢,看来很多人都建议我用fillin
我自己之前也试过面板的tsfill

但我这数据量有点夸张,这么搞有点慢就是了……

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2023-4-3 11:05:24
lzhpanda 发表于 2023-4-3 09:41
十分感谢,看来很多人都建议我用fillin
我自己之前也试过面板的tsfill
这样取滞后项是有问题的,同样一年 (例如 2020),有的滞后项是 2019 年,有的可能是 2018 年。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群