stata中设置滞后值时需要注意的问题

作者: 许四书 | 来源:发表于2018-01-08 11:32 被阅读507次

在计算时间序列问题的时候,经常需要计算滞后数值。Stata 里使用 lag 函数计算,试例如下:

数据库中有变量 a
需要生成滞后一天的新变量,使用如下语句

sysuse sp500, clear
gen  open_lag1=l1.open

但此时回报错(错误信息为:time variable not set),因为 Stata 并不知道按照什么样的时间滞后
应在先告诉 Stata 那个是时间变量。完整代码如下:

sysuse sp500, clear
tsset date
gen  open_lag1=l1.open


对于 panel 数据,使用 tsset year 语句会报错(错误信息显示为:stata repeated time values in sample)。因为对于面板数据而言,需要两个维度的标识才能确定每一行观察值的位置,使用 tsset 时要求 year 值不能重复。正确的做法是 tsset id year 或 xtset id year,代码如下:

webuse nlswork, clear
xtset idcode year
gen  tenure_lag1=l1.tenure

ID是 panel 数据里的调查对象编码

如果需要设置滞后2天、3天的,也很简单,代码如下:

gen  tenure_lag1=l2.tenure
gen  tenure_lag1=l3.tenure

说了半天,最重要的就是:gen 新的 lag 变量前一定要用 tsset 或 xtset 设置时间变量!

相关文章

网友评论

  • 宋政伟:不是应该介绍一下 ac 和 pac嘛。。
  • stata连享会:另有一个建议,最好使用 sysuse sp500, clear 范例数据作为 tsset 的例子,同时贴出相关的数据结果,让读者一目了然。再用 webuse nlswork, clear 调入一份 stata 手册中的面板数据来举例。

    最后,为了保证最佳的阅读效果,中英文混排时,最好在英文单词和数字两侧各加一个空格。
    许四书:非常感谢您提的意见,我已经据此修改!
  • stata连享会:写的不错,完成修改后可以再次投递,我们会接受。
    96517cfbdbae:@stata连享会 滞后没有数据,怎么解决
  • stata连享会:有一个地方放写错了,应该是 xtset 而不是 xtest 。另外,“使用teset语句会报错” 表述也不准确,应该是 “使用 tsset date 语句会报错,因为对于面板数据而言,需要两个维度的标识才能确定每一行观察值的位置。正确的做法是 tsset id date 或 xtset id date”。

本文标题:stata中设置滞后值时需要注意的问题

本文链接:https://www.haomeiwen.com/subject/xdavnxtx.html