《商业数据分析与Stata程序设计》是一本经管类专业本科精品教材,Stata具有优异的交互式功能,基于整理好的数据,在交互式环境下,当用户需要进行特定方法下的统计分析时,只需运行合适的Stata(Mata)命令便可得到结果。例如,用户可以通过运行reg(或xtreg)命令,便可实现回归分析,运行anova便可实现方差分析等。对于仅限于使用特定统计方法的用户而言,只需掌握交互方式下特定命令的使用方法。因此,Stata具有易学易用的特点,是一款可运行于个人计算机的通用统计软件。本书通过介绍构成Stata(Mata)程序的基本要素,数理统计的基本原理以及常见统计方法的Stata运用实例和do程序设计、ado程序设计、Mata编程基础以及Mata和Stata之间数据交换的方法等三部分帮助学生掌握高效率实现数据分析的实操技巧,在写作过程中还参考了大量的有关Stata(Mata)的软件技术开发资料,如Stata 18的软件说明书及Stata公司技术开发人员的论文或著作,理论与实践紧密结合,推荐作为专业教材使用。
前言
Stata是一款可运行于个人计算机的通用统计软件。自1985年诞生以来,Stata已经实现了多次更新升级。2023年4月,Stata公司发布了最新版本Stata 18。目前,Stata已成为一个功能完整的集成统计软件包,可提供数据分析所需的数据处理、可视化、统计分析和自动报告等功能。由于软件的开放性,Stata不但能够实现几乎所有主流统计学中的方法,对于新出现的统计方法,Stata也能够快速推出相应的解决方案。特别是在2008年第8版中推出了用于矩阵运算的Mata模块后,Stata的数据运算功能进一步强化。因此,Stata受到越来越多用户的认可,市场占有率逐步扩大,现在已经成为主流的统计应用软件之一。据美国经济协会(美国经济评论杂志的主办方)数据编辑Vilhuber的统计,2019年在经济学领域顶级期刊发表的论文中,高达73%的研究者使用Stata进行数据分析(Vilhuber,2020)。
Stata具有优异的交互式功能。基于整理好的数据,在交互式环境下,当用户需要进行特定方法下的统计分析时,只需运行合适的Stata(Mata)命令便可得到结果。例如,用户可以通过运行reg(或xtreg)命令,便可实现回归分析,运行anova便可实现方差分析等。对于仅限于使用特定统计方法的用户而言,只需掌握交互方式下特定命令的使用方法。因此,Stata具有易学易用的特点,这也是Stata深受用户特别是初学者欢迎的原因之一。
然而,在实际统计分析过程中,尤其是在经验实证研究过程中,数据分析变得越来越复杂,仅在交互式状态下运行特定命令已经不能满足数据分析的需求。首先,在数据分析中,用户经常需要重复执行具有特定功能的命令。例如,在基于时间序列回归方法估计某个资产的超额收益时,研究者可基于已经整理的数据,在交互式状态下运行reg命令,得到某个资产的超额收益的估计值。而金融市场上往往有数量众多的资产,因此需要基于每个资产的收益数据反复执行reg命令才能够获得每个资产的超额收益。显然,这在交互式状态下通过重复运行reg命令很难实现计算目的。其次,在数据分析中,用户需要在多个Stata命令的运行结果基础上汇总数据以便做进一步的综合分析,以实现研究目的。显然,仅仅通过在交互式状态下运行Stata命令很难达到数据综合分析的目的。最后,数据分析所依赖的数据往往来自多个数据源,用户需要将来自不同数据源的原始数据经过整理、拼接,并形成Stata命令所需要的数据格式,才能够正确运行Stata(Mata)命令并完成统计分析。大多数的数据整理、拼接工作都很难在交互式状态下通过输入Stata(Mata)命令完成。由此可见,在数据分析中,仅在交互方式下通过运行Stata命令很难满足数据分析的需求。
通过编写Stata程序可以高效率地实现数据分析。首先,用户可以通过编写Stata程序实现命令的自动重复运行;其次,由于Stata程序记录了数据处理的整个过程,通过对程序的检查分析,能够发现数据处理过程中存在的问题;最后,用户只需重新运行程序,便能实现对数据重新处理而无需再次输入Stata命令。因此,编写Stata程序能够大大提高数据处理的灵活性和准确性,提高数据分析的效率。
本书阐述了如何设计Stata(Mata)程序以高效地完成数据分析。本书分为三个部分:第一部分介绍了构成Stata(Mata)程序的基本要素,包括Stata的命令、变量(数据集)、宏与标量等;第二部分介绍了数理统计的基本原理以及常见统计方法的Stata运用实例。这部分内容包括区间估计与假设检验、方差分析、回归分析等内容,以及聚类分析、主成分分析和因子分析的原理及运用示例。第三部分详细介绍了do程序设计、ado程序设计、Mata编程基础以及Mata和Stata之间数据交换的方法;
本书在写作过程中参考了大量的有关Stata(Mata)的软件技术开发资料,如Stata 18的软件说明书及Stata公司技术开发人员的论文或著作。其中,Baum(2014)和Gould(2018)无疑是最重要的关于Stata和Mata编程的著作。Baum(2014)主要讲述Stata编程(部分内容也讨论了有关Mata编程的问题),而Gould是Stata公司的创始人,长期从事Stata软件开发。Gould(2018)是目前唯一的一本专门阐述Mata编程的专著。读者可以从这两本专著获得有关Stata和Mata编程的详细资料。
本书得到了西华大学工商管理国家级一流本科专业建设项目的支持。在本书写作过程中,西华大学国际经济与管理研究院的李明春、张菲菲、谢雨婷、黄一参与了本书的资料收集和文字校对等编写工作;西华大学管理学院的研究生陈铭阳、陈耀、段志栋、刘琴、叶芮江、程楠、陈虹瑾也参与了本书的资料收集和文字校对等编写工作。
本书适用于具有一定Stata软件应用基础并需要提高Stata(Mata)数据分析能力的高年级本科生、研究生及相关研究人员。
目录
第1章 Stata概述
1.1 Stata的发展历程与软件特点
1.2 Stata程序的类型及程序编辑器
1.3 Stata的命令与函数
1.4 Stata的文件组织与帮助资源
第2章 数据集与变量
2.1 数据集及其类型
2.2 观测变量及其类型
2.3 变量的标签、注释和格式化输出
2.4 变量类型的转换与变量的生成
2.5 数据集的合并
2.6 其它数据集管理命令
2.7 数据分析实例1数据集导入与管理
第3章 标量、宏与矩阵
3.1 第一节 标量
3.2 宏的定义及其引用
3.3 宏函数
3.4 Stata矩阵
3.5 Stata数据集与Stata矩阵的互相转换
3.6 数据分析实例2打印九九乘法表
第4章 区间估计与假设检验及其Stata实现
4.1 总体、样本以及样本统计量
4.2 区间估计
4.3 假设检验
4.4数据分析实例3工人小时工资的区间估计与假设检验
第5章 方差分析及其Stata实现
5.1 方差分析的基本原理
5.2 数据分析实例4方差分析的Stata实现
第6章 相关分析与回归分析
6.1 相关分析
6.2 回归分析
6.3 回归估计结果的格式化输出
6.4 数据分析实例5工人小时工资影响因素分析
第7章 条件控制、循环与前缀子句
7.1 条件控制
7.2 循环
7.3 while
7.4 Stata命令的前缀(by,statsby,xi,rolling)
7.5 数据分析实例6比较变量中位数
第8章 do程序和ado程序设计
8.1 程序及其作用
8.2 do程序及其执行
8.3 do程序参数传递
8.4 从do程序到ado程序
8.5 ado程序的类型、返回值与前缀
8.6 子程序及egen适用函数的设计
8.7 程序设计的常用命令
8.8 ado程序设计风格指南
8.9 数据分析实例7估计基金超额收益
第9章 Mata基础
9.1 为什么需要Mata?9
9.2 Mata程序(函数)的结构
9.3 Mata的变量类型
9.4 Mata的表达式与运算符
9.5 条件控制与循环
第10章 Mata与Stata的数据交换
10.1 Mata获取与修改Stata数据集
10.2 Mata获取与修改Stata的宏、标量与矩阵
10.3 Mata中获取、修改Stata数据集中变量标签
10.4 显示与删除当前内存中的数据
10.5 数据分析实例8变量去均值处理
第11章 Mata程序设计
11.1 Mata程序的结构
11.2 do程序中定义并调用Mata函数
11.3 在ado程序中定义并调用Mata函数
11.4 定义并添加Mata函数到Mata库中并引用
11.5 线程代码与Mata函数
11.6 结构(struct)及其在程序设计中的应用
11.7 Mata的类(class)及其在程序设计中的应用
11.8 数据分析实例9双重自举抽样法及其Mata编程实践
第12章 图形绘制
12.1 Stata的图形种类与构成要素
12.2 图形绘制命令的标准选项
12.3 二维图坐标轴的设定
12.4 二维散点图
12.5 二维柱形图
12.6 二维函数图形
12.7 直方图
12.8 普通柱形图
参考文献