楼主: snowdeer
28264 29

[程序分享] 用stata做rolling regression [推广有奖]

21
日复一日12 发表于 2015-11-22 19:49:45
help rolling
可以面板

22
ygr.♂ 发表于 2016-4-19 22:55:45
谢谢楼主分享。
matlab上面做,又不会编程,看来只好下载stata了。

23
Who.When.Why 发表于 2016-7-12 11:28:02
按照楼主的方法走了一遍 结果出来的dta是空的 求解决

24
残香幽梦 发表于 2016-9-24 23:16:54
太棒了,楼主!弄了好久按这个方法做了,good~

25
PhoebeSG 发表于 2016-10-12 21:31:30

使用rollreg命令进行rolling regression

还有一个更简便的方法。我们可以使用rollreg命令。
这需要先安装rollreg包,安装完成后help rollreg查看命令。有时候stata还会要求你安装ivreg2的包,一并安装了就好。现在来解释如何用rollreg命令进行滚动回归。举个例子,我的数据之前都存储在excel中,因变量是y,自变量是x,日期是date,日期是yyyy-mm-dd这样的格式。把数据导入stata之后,首先要重新编辑日期的格式(注意哦,日期必须要是连续的):

encode date,gen(t)
这样,新生成的变量t就是stata所认可的日期格式;接下来,我要设置时间序列变量:

tsset t
时间序列变量设置之后,就可以用rollreg命令进行滚动回归啦:

rollreg y x, move(250) stub(Est) graph(full)

解释一下:rollreg后输入因变量和自变量;250即为设定的window size,自己按照滚动窗口大小进行设定啦;Est是为估计出的系数和标准误所取的前缀名称,stub这个选项是不能缺省的,所以大家自己在括号中取名好啦;graph能显示每次估计后R方和RMSE的趋势图,所以就不用再把估计结果导入到excel中自己画啦,stata可以帮你画好。贴一张stata画的图,见下方:
Graph.png

通过以上命令,我们得到的系数和标准误的估计结果和在“Statistics - Time series - Rolling-window and recursive estimation”中操作的结果是一样的,都等价于以下的命令:

rolling _b _se, window(250) clear: reg y x

不好的一点就是rollreg没有帮我们计算t值,大家用系数除以标准误计算一下来判断显著性就好啦。祝大家学习愉快~





已有 1 人评分学术水平 热心指数 信用等级 收起 理由
johnroe + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

26
钱学森64 发表于 2017-12-20 08:20:35
谢谢分享好方法

27
辛桐 在职认证  发表于 2018-5-9 18:42:57
看看~正在找!用完反馈

28
辛桐 在职认证  发表于 2018-5-11 20:35:13
按照楼上的做法做下来了!!!激动

29
陈学术 发表于 2019-1-17 01:46:48
请问楼主对于数据末尾的滚动是怎么处理的呢?

30
gouyifengamber 发表于 2019-9-24 22:48:51
joyye2008joyye 发表于 2011-8-16 20:46
对于多变量的时间序列分析,比如VEC命令,好像不行。请问这该怎么解决呢?
同问同问,而且那个STATA command to run 好像不支持多行命令

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-25 12:44