在計(jì)算時(shí)間序列問題的時(shí)候顽耳,經(jīng)常需要計(jì)算滯后數(shù)值颖杏。Stata 里使用 lag 函數(shù)計(jì)算,試?yán)缦拢?/p>
數(shù)據(jù)庫中有變量 a
需要生成滯后一天的新變量肮之,使用如下語句
sysuse sp500, clear
gen open_lag1=l1.open
但此時(shí)回報(bào)錯(cuò)(錯(cuò)誤信息為:time variable not set)瘤袖,因?yàn)?Stata 并不知道按照什么樣的時(shí)間滯后
應(yīng)在先告訴 Stata 那個(gè)是時(shí)間變量衣摩。完整代碼如下:
sysuse sp500, clear
tsset date
gen open_lag1=l1.open
對(duì)于 panel 數(shù)據(jù),使用 tsset year 語句會(huì)報(bào)錯(cuò)(錯(cuò)誤信息顯示為:stata repeated time values in sample)捂敌。因?yàn)閷?duì)于面板數(shù)據(jù)而言昭娩,需要兩個(gè)維度的標(biāo)識(shí)才能確定每一行觀察值的位置,使用 tsset 時(shí)要求 year 值不能重復(fù)黍匾。正確的做法是 tsset id year 或 xtset id year,代碼如下:
webuse nlswork, clear
xtset idcode year
gen tenure_lag1=l1.tenure
ID是 panel 數(shù)據(jù)里的調(diào)查對(duì)象編碼
如果需要設(shè)置滯后2天呛梆、3天的锐涯,也很簡單,代碼如下:
gen tenure_lag1=l2.tenure
gen tenure_lag1=l3.tenure
說了半天填物,最重要的就是:gen 新的 lag 變量前一定要用 tsset 或 xtset 設(shè)置時(shí)間變量纹腌!