1、计量经济软件应用,Stata软件基本操作,内容概要,一、Stata 简介 二、Stata 常用基本操作 启动Stata Stata 窗口简介 Stata文件、命令和语句(含操作实例) Stata数据管理 三、Stata 描述性统计分析,一、Stata 简介,Stata(Data Analysis and Statistical Software)是 由美国计算机资源中心(Computer Resource Center)研制,现为Stata公司的产品。Stata是一个 用于分析和管理数据的功能强大、操作简单而又小巧 玲珑的实用统计分析软件。从1985年至今20多年间, 已连续推出了十几个版本,
2、最新的是Stata 12。随着 版本的不断升级,其功能也越来越多。我们将要上机 学习的是Stata 10 版本。,一、Stata 简介,目前,Stata 软件尤其受到从事经济学经验研究 或计量分析的研究者的喜爱。这是因为,几乎所有 的计量经济学中所提到的方法,在该软件中都可以 找到相应的命令,而且新的计量方法一旦被验证较 为成熟,就有人将该方法写成程序,并对命令附有 详细的说明。在大部分命令的帮助文件中,甚至列 出了该命令源自哪位经济学者的哪篇文献中提出的 计量方法。由此可见,该软件简直就是为经济学研 究的人士定做的。,一、Stata 简介,Stata命令语句极为简洁明快,用户在学习时极易 上
3、手; Stata命令同时又有极高的灵活性,用户可以 充分发挥自己的聪明才智,熟练应用各种技巧。尽 管Stata也提供了窗口菜单式的操作方式,但强烈建 议大家坚持使用命令行/程序操作方法,这样分析处 理数据时会更加随心所欲。 Stata软件的常用资源 1、 Stata软件自带资源:帮助(help)文件;帮助文件 介绍命令的使用方法和相关案例。 2、 Stata官方网站:http:/www.S 或 http:/www.Stata-,一、Stata 简介,3、国内有Stata资源的网站:人大经济论坛 (http:/www. pinggu.org)、中国经济学教育科研网 (http:/www.cene
4、t.org) 4、当一个新的Stata命令出来后,现有的Stata版本可能 不含有该命令,可到网络上搜寻并更新到软件中。,二、Stata 常用基本操作,启动 Stata 下载Stata10压缩包,解压后,在Stata10文件夹中,找 到wsestata图标,鼠标双击它即会出现Stata的界面。今 后大部分工作都将在这个界面上完成。 Stata 窗口简介 Stata窗口主要由以下几部分构成: 1、Command(命令,右下部分)窗口:用于向Stata键入 需要执行的命令,回车后即开始执行,相应的结果则会 在结果窗口中显示出来。 2、Stata results(结果,右上部分)窗口:显示运行结 果
5、、所执行的命令以及出错信息等。窗口中会使用不同 的颜色区分不同的文本,如白色表示命令,红色表示错 误信息。,二、Stata 常用基本操作,Stata 窗口简介 3、Variables(变量,左下部分)窗口:显示当前数据文 件中的所有变量名。 4、Review(命令回顾,左上部分)窗口:所有执行过的命 令会依次在该窗口中列出;选中某一行单击后命令即被 自动拷贝到命令窗口中;如果需要重复执行,用鼠标双 击相应的命令行即可。 5、窗口上方是工具栏,列出了常用的管理文件和数据 的命令,如打开文件、存储文件、数据管理窗口等。 6、工具栏上方是菜单栏。,二、Stata 常用基本操作,Stata文件、命令和
6、语句 若给出原始数据,用Stata完成计量分析,要做的工作主 要包括:把原始数据转换成Stata格式的数据文件;根据 任务写出Stata命令;Stata命令运行后看懂分析结果, 并把分析结果保存下来,或者写入文本文件(如word文 件)。上述工作涉及Stata的文件、数据与命令。 1、Stata文件 Stata文件主要有数据文件、Do-file文件、Log文件和程 序文件。 (1) 数据文件:即用来保存数据的文件,是Stata处理和 分析的对象,扩展名“. dta”。数据的结构包括变量(每 一列)和观测(每一行)。,二、Stata 常用基本操作,(2) Do-file文件:用来保存命令的文件,
7、扩展名“. do”; 该类文件的好处是把执行过的命令保存下来,以便以后 再重新执行这些命令。 (3) Log文件:用来直接保存分析结果的文件,扩展名 “. log”;这类文件可以直接用文本编辑程序(如记事 本、Word等)直接打开。 (4) 程序文件:是Stata命令的程序,扩展名“. ado”。除 非要自己编写某个计量方法的Stata程序,一般来说,这 类文件对于仅限于应用Stata做数据分析的人很少用到。,二、Stata 常用基本操作,2、Stata命令语句 命令语句是用Stata做数据分析的指令,它十分简单和灵 活。要想做一个计量分析,首先要知道它在Stata中的基 本命令名称是什么。如
8、要描述某个变量的基本统计信 息(平均值、最大值、最小值等),可以用的基本命令 就是“summarize”;然后写成一个命令语句,对数据分 析的所有要求都由命令语句来完成。 命令语句的格式为:summarize varlist if exp in exp weight ,options summarize是基本命令,大部分基本命令都有简写形 式,如该命令的简写就是su,该项必不可少;varlist是 变量,实际命令语句里指数据文件中具体的变量名;,二、Stata常用基本操作,if exp和in exp是逻辑条件,可以用来限定分析的观测 是哪个范围内的;weight 表示加权,加权的方式有多 种,
9、可查看help文件关于加权的说明;,options是选 项,可以用来对你想要的结果进行定义。加 项为可有 可无项。 3、Stata基本操作实例 例:拟打算做一项有关中国投资水平与人均GDP之间关 系的研究。采用的样本数据为2006年全国各省人均GDP 和人均固定资产投资(代表投资水平)的数据(见表S-1) 以此横截面数据为例,练习Stata基本操作,即用Stata 对此数据进行分析处理。,二、Stata常用基本操作,3、Stata基本操作实例 首先要形成Stata数据文件。 形成Stata数据文件最简单方式是在Stata窗口中直接录 入数据,这种方式虽然简单,但并不实用。经常用的其 他方式是先
10、在其他软件(Excel)中将数据编排好,然 后导入到Stata中。具体操作如下: 复制Excel表格中的数据和变量(数据连同变量一并选取 复制) 在Stata中打开数据编辑( Data Editor)窗口,即 点击Stata10窗口工具栏中右起第4个“数据编辑”小图 标,然后粘帖关闭数据编辑窗口,在Stata工具栏中 点击左起第2个“Save”将数据保存,保存时需给数据文 件命名;以后再用该数据时,只需在Stata窗口中打开该 文件即可。,二、Stata常用基本操作,3、Stata基本操作实例 用Stata对数据进行统计分析 需在命令窗口键入相关Stata命令,回车即执行命令。 计算描述性统计
11、量(基本命令:su) 键入 su rjgdp rjcap 回车显示两个变量的概要统计量 信息(观测数、平均值、标准差、最小值、最大值) 保存 运行结果,有两种方式: 方式 1:直接保存为Stata的Log文件,必须在su命令之前 点击Stata窗口file菜单中log项中的begin 并输入要保存 的文件名、选择路径,选择保存类型为Formatted Log或 Log均可(保存的文件后缀名不同) 保存再输入su命令 file菜单log项中的close查看保存的运行结果。,二、Stata常用基本操作,方式 2:直接将结果存入Word或Excel等文本编辑软件 中,即在Stata结果窗口中选择上述
12、计算结果 鼠标右 键Copy Table 打开Excel窗口粘帖,结果按表格方式 呈现。 计算相关系数(基本命令:corr)键入 corr rjgdp rjcap 回车显示两个变量的相关系数 矩阵 依据前述两种方式保存运行结果; 进行简单回归分析(基本命令:reg) 键入 reg rjgdp rjcap 回车(第一个变量rjgdp为被解释变 量,第二个变量rjcap为解释变量) 显示回归结果依 据前述两种方式保存运行结果;,二、Stata常用基本操作,图形分析(散点图基本命令:scatter) 键入 scatter rjgdp rjcap 回车(以第一个变量rjgdp为纵 轴,以第二个变量rj
13、cap为横轴)打开绘图窗口,显示 散点图点击绘图窗口工具栏中的保存图标保存图 file菜单Open Graph选中打开图;,二、Stata常用基本操作,Stata数据管理 在对数据进行分析时,经常会遇到这些事情:合并两个文 件;删除某个变量;重新生成一个新变量;计算某个变量的 函数值等。这些事情的处理就是数据管理。这里介绍一些常 用的数据管理命令,其他的可参考Stata帮助文件或Users Guide。常用的数据管理命令包括以下几类: 数据浏览、变量定义 合并两个或两个以上的数据文件,生成一个新数据文件 删除、生成或替代变量 转换数据的排列方式 使用函数 设定条件 内存管理 错误提示信息,1、
14、数据浏览与变量定义 常用的命令有: browse: 打开数据窗口,也可直接点击右起第4个图标。 rename:修改变量名。 label:加注变量说明。 clear:关闭当前数据文件(注意:在关闭前要检查一下是否 保存,否则新的数据操作将不能保存下来)。 sort:对数据按某个变量从小到大进行排序。 比如将变量rjgdp改名为gdp_per,命令如下: rename rjgdp gdp_per 为各变量增加标签说明,命令如下: label var code “省代码” label var year “年份” 将数据按变量rjgdp从小到大进行排序: sort rjgdp,2、数据文件的合并 数据
15、文件的合并包括两类:一类是将两个具有相同变量的 文件合并成新文件;另一类是在原数据文件中加入带有新 变量的文件。 (1) 相同变量数据文件的合并 基本命令格式:append using filename , options 前例数据文件中数据的年份是2006年的,现在又有了2007年 的数据(文件名为:中国经济与投资省级数据2007.dta),两 个文件中的变量相同,现在将两者合并成一个包括2006年和 2007年两年的数据文件;在当前打开的数据文件为2006年的 数据情况下,命令是: append using “:中国经济与投资省级数据2007.dta” 注意,前面的盘符应是该文件存放的盘符
16、,也可在using后 点击窗口filefilename栏找到相应的文件点击打开并保存 文件名可以命名为“中国经济与投资省级数据2006-07.dta”,2、数据文件的合并 (2) 在原数据文件中加入有新变量的文件 需要新文件中标识变量身份的变量与原文件的相同。比如在 前述过程后,现在又获得了06年和07年各省人口数,文件名 为“中国各省人口数2006-07.dta”,该文件中两个标识变量 code和year,与原文件相同,pop变量为人口数(即新增加变 量);现将该文件合并到“中国经济与投资省级数据2006- 07.dta”文件中,两文件的标识变量均为code和year。 基本命令为: mer
17、ge varlist using filename filename, options 其中merge为基本命令名称;varlist为标识变量,可以是一个, 也可以是多个,视具体情况而定;filename为要合并的具体的 文件名(注意不要漏下前面的using),可以加入多个文件; option是选项,视具体情况而定是否需要加入。,(2) 在原数据文件中加入有新变量的文件 上例的具体操作步骤为: 先分别对两个文件按标识变量进行排序(sort code year)分别 将排序后的数据文件保存在打开的一个文件 (中国经济与投资 省级数据2006-07.dta)情况下执行以下命令: merge usi
18、ng “:中国各省人口数2006-07.dta” 注意:前面的盘符应是该文件存放的盘符;同样可以在using后 点击窗口中filefilename栏找到相应的文件点击打开保存 为一个新的数据文件。 或者先不对两个数据文件排序,保持原来状态,打开一个文 件 (中国经济与投资省级数据2006-07.dta) 执行以下命令: merge using “:中国各省人口数2006-07.dta”再输入 sort code year 进行排序保存为一个新的数据文件(中国经济、 投资与人口省级数据2006-07.dta)。 注意:要在该文件的基础上再合并其他文件,需要将_merge变量去掉 或改为其他名称。
19、,3、删除、生成或替代变量 常用命令: drop:删除数据文件中的某个变量。 如要删除上述数据文件中的“_merge变量”,即键入命令: drop _merge drop in:删除数据文件中所有变量的某个观测。 如要删除上述数据文件中的第一个观测,即键入命令: drop in 1 generate:生成新的变量。 如用人均投资除以人均GDP可生成新变量投资率(rcap_gdp) 即键入命令: generate(可缩写为g) rcap_gdp=rjcap/rjgdp 采用generate命令生成新变量需熟记一些常用的算术表达 式,下面列出一些常用的算术表达式:,对两个或一个变量进行算术运算,得
20、到一个新变量,一 般算术符号都可以用,以var1、var2表示两个变量,var 表示新变量名,g为generate的缩写,则常用算术表达式如 下: g var=var1+var2 : 新变量var为var1和var2相加; g var=var1-var2 : 新变量var为var1和var2相减; g var=var1*var2 : 新变量var为var1和var2相乘; g var=var1/var2 : 新变量var为var1和var2相除; g var=var12 : 新变量var为var1的平方,3次方、4次方 依此类推; g var=var1*10+var2/10 : 新变量var为
21、var1乘以10和var2除 以10之和;,replace:改变原变量中的值。 如要将变量rjgdp的值改变单位为千元(原单位为元),则键入 命令: replace rjgdp=rjgdp/1000上述命令都可以加上附加条件。,4、转换数据的排列方式 观察上述数据文件(中国经济、投资与人口省级数据2006-07.dta) 中数据的排列,其排列方式为“纵排”;还有一种排列方式是“横 排”。 将纵排和横排数据相互转换的基本命令形式为: reshape long stubnames, i(varlist) j(varlist) , options reshape wide stubnames, i(
22、varlist) j(varlist) , options 其中reshape为基本命令名称,long指将横排数据转换为纵排数 据,wide指将纵排数据转换为横排数据;stubnames表示要对哪 些变量进行转换;i( )、j( )表示依据哪个标识变量,其中j( )根据 具体情况可有可无;options表示其他选项,根据具体情况可有 可无。 将上述数据文件中的纵排数据转换成横排数据,则键入命令: reshape wide rjgdp rjcap pop, i(code) j(year),而再将横排数据转换成纵排的命令就是: reshape long rjgdp rjcap pop, i(cod
23、e) j(year)这个命令在面板数据(panel data)的整理中非常有用。,5、使用函数 也就是与generate命令和replace命令一起使用的函数。 比如要生成rjgdp变量的自然对数值序列(在回归分析中经 常用到),可在generate中使用函数ln(log也行),即键入: g lnrjgdp=ln(rjgdp) 若要将原变量rjgdp的值直接改为自然对数值,则键入: replace rjgdp=ln(rjgdp) 补充:生成新变量的命令除了generate,egen也是一个常 用的命令,它是对generate命令的扩展,通过在egen之后加 入函数表达式,完成一些更复杂的生成新
24、变量的任务。 如要生成一个新变量tave,它等于rjgdp和rjcap按行求平均 值,就可加入rowmean函数,即键入: egen tave=rowmean(rjgdp rjcap),常用的一些函数形式有(可加在generate或者egen命令 之后): abs(x): x 的绝对值(加在generate命令后); exp(x): 指数函数(加在generate命令后); trunc(x): 截取x的整数形式(加在generate命令后); logit(x): x的对数发生比,即lnx/(1-x)(generate命令后) max(x1 x2 x3): x1,x2, x3.中的最大值; mi
25、n(x1 x2 x3): x1,x2, x3.中的最小值;其他函数形式可在help或Stata相关资料中查找。,6、设定条件 在进行数据管理或数据分析中经常遇到的事情是需要设定 一些条件,常用的方式是在基本命令中加入 if 或 in 条 件,这两个条件命令后面紧跟的往往是一些数学表达式。 以 if 条件命令为例,如要对前例中2006年和2007年的人均 GDP(rjgdp)与人均投资(rjcap)数据分别做散点图,则键入 命令:scatter rjgdp rjcap if year=2006scatter rjgdp rjcap if year=2007 注意:if 条件后的表达式中的等号必须
26、是双等号(中间无空 格) 再如:假设要生成一个新变量 y,其值定义如下: y=0,如果year为2006; y=1,如果year为2007。 则键入命令:g y=0 if year=2006replace y=1 if year=2007,7、内存管理 当打开一个数据文件时,Stata读取后会将其载入内存。能 否读入内存取决于内存空间和数据文件的容量大小。一般 情况下,Stata10版本中缺省内存空间一般是10MB,如果 数据文件容量超过了缺省内存设定的空间,比如要打开的 数据文件容量为20MB,就无法打开。这时会出现错误提 示信息:no room to add more observatio
27、ns An attempt was made to increase the number of 这就需要给内存分配更多的空间,可以键入如下命令: set memory 50m 其含义是,将内存空间设定为50MB。具体设定的内存空间多 大,可以视要处理的数据文件容量而定。,8、错误提示信息 当用Stata进行数据管理或分析数据时,若命令写错,往往 会出现一些错误提示信息。比如要对变量进行重新命名, 结果命令误写成了reneme(应该是rename),就会出现 错误提示信息:. reneme rjgdp gdp_perunrecognized command: reneme 表示这个命令在Sta
28、ta中不存在。 再如命令中的一些表达式写错了,比如 scatter rjgdp rjcap if year=2006 命令中year后面误写为一 个等号(应为两个),则出现错误信息: . scatter rjgdp rjcap if year=2006 invalid syntax 当遇到错误提示信息时,可在网上进行搜索,找到对该信 息的详细解释,能够知道错误信息的含义,这样有助于以 后熟练使用Stata。,三、Stata 描述性统计分析,经济学的经验分析(Empirical Analysis,实证分析) 方法通常分为描述性统计分析和回归分析。描述性 统计分析常用的方式是考察变量的分布特征,计
29、算 集中趋势(如平均值、中位数)和离散趋势(如方 差、变异系数等)。 描述性统计分析有两个作用:一个是在统计推断 或因果分析之前,发现、界定或详细讨论要研究的 问题;另一个是在一定程度上验证假说。 这里只介绍对单一定量变量的描述性统计分析。,在进行更深入的研究之前,往往首先要对各个变量的 分布特征有一个大概的了解。这就是描述性统计分析主 要完成的事情。 进行描述性统计分析的Stata基本命令: 平均值与分位数衡量变量的集中趋势 summarize (su);centile 方差与标准差衡量变量的离散趋势 summarize (su) 不平等指标衡量变量的离散趋势(常用的有: 分组比 例、变异系数、基尼系数、广义熵指数和泰尔系数) inequal7,End,