香樟青苗
当前位置是: 网站首页 -- 学术科研 -- 香樟青苗 -- 正文

香樟青苗简报|连玉君:如何编写和发布Stata程序

发布日期:2021-07-30   点击量:

连玉君(Yujun Lian)老师,现为中山大学岭南学院金融系副教授。2001年毕业于西安交通大学材料科学与工程学院,获工学学士学位;2007年毕业于西安交通大学金禾经济研究中心,获经济学博士学位。他的研究方向为公司金融和金融计量等。目前已在China Economic Review、Social Indicators Research、《经济研究》、《管理世界》、《经济学(季刊)》《世界经济》、《金融研究》、《会计研究》等期刊发表论文60余篇。已承担国家自然科学基金项目、教育部人文社会科学基金项目、广东省自然科学基金项目、广东省科技计划项目等多个研究项目。连老师多年来致力于STATA数据分析技术的教育,深受广大青年学者的喜爱。

2021年7月28日下午14时,中山大学岭南学院副教授连玉君老师受邀作为第四届香樟青苗授课教师,为大家带来了“如何编写和发布Stata程序”讲座。本次讲座由赵嘉珩助教主持,第四期青苗计划学员参加。

在讲座主题内容展开前,连老师认为在经过一段时间实证分析的训练之后,大家对stata常用的命令是比较熟悉的。但对于整个stata社区的长期发展来看,仅仅使用现成的命令是远远不够的,如果每个人都尽可能地把自己的新想法和创新分享至stata交流平台中,将对stata软件建设和自我学习建设均大有益处。

在介绍完stata编写程序的重要性之后,连老师从如何定义一个程序开始引入,首先介绍了程序编写的原理是对输入进行处理来执行不同子程序。使用local命令存放暂元,并打包执行调用的缺陷在于:一是输入项没有选择权会导致程序没有弹性,二是不能限定样本范围。因此另外两种更好的设定方式分别为args命令和syntax命令。args命令接收用户的输入参数,将第一个命令参数分配给暂元1(输入项),将第二个参数分配给暂元2(选项),依此类推,在编写代码时,可以用`'引用其内容;syntax命令与args命令类似,不过可以指定变量类型和限制数量,同时也可以使用条件语句限定样本范围。在介绍完程序编写过程后连老师总结了一个完整的程序应该包含的5个部分——①输入项:如变量名称、条件语句、样本范围、选项等;②程序主体:计算、产生新变量、估计等;③输出项;④存储返回值;⑤列示结果;⑥程序说明文件。

在第二部分连老师对编写程序后的程序管理和控制进行进一步介绍。对于程序管理一般先使用capture program drop删除内存中调入的程序,但不影响硬盘中的存储文件,再对程序进行修改和执行。对于程序的控制部分,可使用quietly命令避免列印过多的结果导致的运行时间缓慢问题;可使用capture命令来避免程序因错误而中断的问题;使用preserve命令备份当前内存状态和restore命令恢复到原状态来避免数据在程序执行过后有所变动的问题;使用set trace on命令对每一行代码都进行解读来追踪错误信息。

第三部分连老师对暂元的具体运用进行介绍。暂元具有存放数字、文字、长字符和变量名称的功能,并且在具体运用中连老师特别强调需要注意暂元的定义环境。同时,暂元可以被分解以起到切割输入项的功能,常用的命令是gettoken、tokenize。其中gettoken命令的作用是逐一提取暂元中的单词;而tokenize命令的作用是根据分割点来切割单词(选项、解释变量),默认分割点是空格,不过也可以指定特定的分割点。

第四部分分别介绍了选项的基本使用规则、子程序、如何编写帮助文件以及如何发布并分享程序。选项的作用是提供各种选择和组合,并且选项标签的前几个大写字母可以表示该选项可被缩写的程度,在编写时需要注意大小写规则;子程序的主要功能是可以将复杂的程序切割成多个模块,以便程序编写和调试;对于编写帮助文件最简单的方法,就是将一份已有风格类似的帮助文件作为模板,并将其对照需要的内容进行修改;最后对于发布和分享程序,主要可以通过2个途径进行——一是可以通过ssc发布,只需把ado文件和sthlp文件发送给Boston college的Baum C.F.教授即可,同时如果可以将pkg文件和toc文件同时定义好会更容易接纳;二是在预测试阶段可以通过码云(gitee.com)进行发布,通过建立一个与发布程序同名的仓库,并对以上需要文件进行上传,使用gitee install命令进行安装即可。最后,连老师推荐了连老师团队编写的非常实用的推文、数据、文献搜索工具。

至此,本场讲座圆满结束!大家收获慢慢,感谢连玉君老师不辞辛劳志愿为第四期青苗学子授课!(文案:赵艺萱)

版权所有 © 世界杯英格兰队vs丹麦队竞猜    邮编:102488

地址:北京市房山区长于大街11号