楼主: 踺子8
2862 0

[stata资源分享] 【Stata】数据批量季节调整教程 [推广有奖]

  • 0关注
  • 2粉丝

硕士生

32%

还不是VIP/贵宾

-

威望
0
论坛币
4358 个
通用积分
7.4412
学术水平
22 点
热心指数
22 点
信用等级
21 点
经验
1299 点
帖子
42
精华
0
在线时间
253 小时
注册时间
2016-3-12
最后登录
2022-11-29

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
一、关于季节调整:

之前是一直在用 Eviews 做 X-12 的季节调整,但是调整选项和 Stata 的相比确实有点少了,影响精度。
另外,做 BigData 的模型动则 几千个 个体不可能一个个在 Eviews 里手动调整,有人提到过用 Eviews 命令行批量执行,但是控制选项又很困难(我也没试过,命令行能不能跑起来也是个问题),总的来说用 Stata 季节调整是最优的。

二、问题:

用 Stata 最大的问题就是不好批量做季节调整,于是踩了一些坑,思考了一套最快的批量调整方案。

1. 在调整前你需要具备 Stata 季节调整程序,可以在这里下:
https://bbs.pinggu.org/thread-2625052-1-1.html


2. 下完之后只需要把 x12a 文件夹里的 x12a.exe 放到你的 Stata 的 plus 目录就可以,下面介绍如何找 plus 目录:
(1)在 Stata 里执行 sysdir ,就会显示你的 PLUS 目录
(2)直接把 x12a.exe 放到 plus 目录下即可

P.S. 感谢 niuniuyiwan 提供本步教程参考,原帖子:
https://bbs.pinggu.org/thread-3742755-1-1.html


3. 安装季节调整包,命令:
  1. findit sax12
复制代码


三、解决方案

注:假如你只需要调整几个变量,不需要查看本教程,直接输入命令 db sax12 调整即可,可以参考 Lee_iris 这套不错的设定方案:
https://bbs.pinggu.org/forum.php?mod=viewthread&tid=6945402


1. 先把大量数据导进 Stata ,我们这里假设的是 多变量 、 面板数据 ,注意变量名字统一用英文,中文 x12a.exe 不识别,建议使用 var01 这种形式的命名,为后续操作提供便利。

2. 生成时间序列,确定时间区间。在 Stata 执行以下代码:
  1. gen t=tm(2009m1)+_n-1
  2. tsset t, monthly
复制代码
这段代码的作用是先生成时间数据,之后设定,下面介绍修改项:
(1)其中 tm() 函数要根据你的时间形式来选取,如果是 2009m1 也就是只有到月度的数据(最常用的),使用 tm() 函数即可,如果是精确到 日 ,请自行百度找到相应函数替换。
(2)其中 tm() 函数内是数据的起始时间,这里是假定为了 2009m1 开始,可以自行替换自己的起始时间,注意 tsset 之后根据显示的确认一下你的时间区间是否正确。

3.  Python 批量拼接生成执行代码,举例:
  1. sax12 var01, satype(single) inpref(z1.spc) outpref(z1) transfunc(none)  regpre( const td ) ammaxlag(2 1) ammaxdiff(2 1) ammaxlead(12) x11mode(add) x11seas(x11default)
复制代码
注:这里的配置方案参考了 Lee_iris 提供的,感谢。

(1)有三个需要拼接的地方,第一个是变量 var01,第二个是 .spc 文件,我们这里假定为了 z+序号 形式的,为了给后续操作提供便利,建议使用相同格式,第三个是输出前缀,这里同样使用 z+序号 的前缀格式。
(2)设定参数生成语句。
  1. # 需要自己修改的只有 n 参数:面板个体数 + 1
复制代码
这个代码会含在最后的下载文件里,只需要更改参数 n 即可,改成你的 面板数据个体数 (这里假定有 34 个省,那就是 35 )

P.S.
如果你不熟悉 Python ,可以参考格式自行用熟悉的语言拼接生成。另外如果你只有 几十个个体 ,文件里还提供了生成好的 几十个 命令行,无需进行这一步。

4. 将批量生成的代码在 Stata 里跑完,执行过程会不断有 控制台 窗口弹出,不要点击,否则会导致暂停。另外,还会自动打开 季节调整报告 ,无需理会,最后一并关掉即可。
注:如果报错,说明你的 季节调整程序 即 x12a.exe 没有放对位置,或者 sax12 库没有安装,亦或是空格出错,单词中断了,自行检查,可以先跑一条试试看。

5. 跑完之后打开你的 Stata 安装根目录,下面会有一大堆 z+序号 格式的文件,全部复制备份起来,如果你想了解每一个文件的内容并做 X-12 季节调整 分析和预测,请打开以 .out 为结尾的文件查看 季节调整报告。
之后把本帖尾下载文件内的 Python 程序 SeasonalAdjustmentDataExtraction.py 放到该目录,用 Python 编辑器或者记事本修改其中两个参数,代码较长就不展示了,里面自带备注。

6. 执行完毕提供的 .py 脚本之后,自动清理冗余的 z+序号 文件,同时生成 SeasonalAdjustmentDataExtraction.csv 汇总表格,点开即为 季节调整 后的 面板数据 结果,横向为时间期数,纵向为按 var01 即 Stata 命名顺序排列的个体。

四、其他

本流程需要的两个文件以及包含在 下载文件 中,有很多人可能不会用 Python ,也没有关系,下载一个 Python 安装包安装之后,就可以直接双击执行提供的脚本文件了,编辑时使用记事本或 Python 编辑器均可。

虽然流程有点小复杂,但是都有相应的机械化方案,还是比较快的,不过,Eviews 有最新的 X-13 解决方案,不过其 自动化 还是问题。

五、下载文件

Stata批量季节调整方案.zip (784.49 KB, 需要: 5 个论坛币)
二维码

扫码加我 拉你入群

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

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

关键词:Stata 季节调整 X-12 大数据

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 17:44