【发布时间】:2015-07-06 11:35:57
【问题描述】:
我得到了一个面板数据(时间:日期名称:股票代码)。我想为x 创建最多 10 个滞后变量。所以我使用下面的代码。
tsrevar L(1/10).x
rename (`r(varlist)') x_#, addnumber
因为我的数据是按小时计算的,而且只在白天进行观察。使用上面的代码,每个交易日的第一个观察结果都丢失了。 我的替代解决方案是:
by ticker: gen lag1 = return[_n-1]
然后,我得把这段代码复制粘贴10次,看起来很乱。谁能教教我如何解决这个问题
【问题讨论】:
-
我使用循环解决了这个问题,但如果有更好的解决方案请告诉我
-
与stackoverflow.com/questions/31234458/…重叠请不要重复非常相似的问题。
-
当然,如果您的观察是每小时一次并且交易是白天活动,那么当天第一次观察的滞后就会消失。您的解决方案将使用前一天的值作为滞后值。对于一天的前 10 个时段,值将来自前一天的最后 10 个时段。如果这是您想要的,只需使用
bysort ticker (hour): gen period = _n重新定义时间。
标签: stata