全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 经管代码库
3018 5
2015-10-28

Stata调用EViews做统计模拟的程序

复制代码

二维码

扫码加我 拉你入群

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

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

全部回复
2015-10-28 12:40:35
之前我发过一个帖子,大概是说Eviews进行某些运算的速度比Stata快很多。但是我觉得Stata的数据管理功能用起来更得心应手。于是就想到使用EViews来做需要大量运算的工作,而通过Stata来处理运算结果。这个程序就是为了这个目的写的。

简单的说,每一次repetition(14到39行),程序首先调用一个stata程序(dgp选项)来生成模拟的数据,然后把数据保存下来(23到28行)。然后,让Eviews读取这个数据并进行需要的计算(31行)。EViews中需要的的计算程序保存在sim.prg文件里。这个文件会把运算的结果保存为Stata格式的数据文件。这个数据文件被重命名以后移动到用户指定的文件夹备用(34到37行)。然后,每次repetition的结果被整合到一起并保存(42到52行)。

除了上述的核心部分之外,第4行定义runsim的syntax;9到11行定义可选项(reps)的默认值;17到22行有一个简单的进度条。

至于这个命令的语法:
dgp接受一个string,这个string是用来生成数据的程序的名字,比如simdata1.do
simout接受一个string,这个会作为每次repetition的结果的名字(实际保存的文件为这个名字加上repetition number)。
result接受一个string,这个是最终结果的文件名。
folder接受一个string,表示你要把结果保存在什么文件夹。
reps是一个可选的项目,接受一个整数*,这是repetition的次数。如果不明确指定这个数值,则程序默认使用100

*注意,虽然这里只能接受整数,但是如果程序主要是内部使用,完全可以在syntax行使用string作为可接受的值。Stata会自动进行local macro从numeric到string和从string到numeric的转换。

二维码

扫码加我 拉你入群

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

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

2015-10-28 12:46:01
对了,漏了一个关键点:
第31行,shell命令是个非常好用的命令。这里,shell命令用来调用EViews。不过还有一些用法大家也许会感兴趣。这里列举一些。大家可以补充。
1. 调用7zip来对项目文件进行打包保存。
2. 调用pdflatex.exe之类的程序来生成pdf文件。
3. 调用vbscript来处理Excel表格。

第三点尤其有用。很多时候Stata输出的Excel表需要进一步处理,但是一般来说发给客户的Excel最好不要带有VBA程序(比如我们不想公开我们的VBA程序,或者基于安全考虑不想在工作簿里启用宏)。这个时候就可以通过这个方法来解决调整表格格式的问题。很好用的。
二维码

扫码加我 拉你入群

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

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

2015-10-28 13:24:04
谢谢分享。
二维码

扫码加我 拉你入群

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

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

2017-4-2 11:10:17
谢谢分享
二维码

扫码加我 拉你入群

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

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

2019-8-12 13:38:16
非常棒!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群