您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > stata-中文教程
CCER04硕邹传伟2006年1月Stata介绍作为流行的计量经济学软件,Stata的功能十分地全面和强大。可以毫不夸张地说,凡是成熟的计量经济学方法,在Stata中都可以找到相应的命令,而这些命令都有许多选项以适应不同的环境或满足不同的需要。即使是昀详细的Stata手册,也难免有遗珠之憾,更何况本文仅是一个粗浅的介绍。掌握Stata昀好的办法是在实践中学习:Stata本身提供了非常强大的帮助系统,并且关于Stata的书籍和网络资源都不少。本文拟根据如下顺序介绍Stata:1.界面;2.文件和数据;3.语法和命令;4.数据管理;5.描述统计;6.画图;7.回归和回归分析;8.常用命令。第3和第4部分是昀体现Stata灵活性的地方,也是应用Stata的基础。第5和第6部分介绍如何用Stata完成基本的统计功能。Stata的功能很多,比如回归,曲线拟合,生存分析,主成分分析,因子分析,聚类分析,时间序列分析等等。但回归无疑是其中昀重要的功能。第7部分介绍如何用Stata作线性回归和Logistic回归。本文第2和第3部分包含了作者的观点,难免有偏颇之处。其余部分主要来自文献的归纳和总结。限于水平有限,错误在所难免,敬请原谅。1CCER04硕邹传伟2006年1月1.界面图1Stata界面Stata有4个窗口:1.StataCommand(右下)用于向Stata输入命令;2.StataResults(右上)用于显示运行结果;3.Review(左上)记录使用过的命令;4.Variables(左下)显示当前memory中的所有变量。窗口上方是工具栏,其上的按钮依次为(从左到右)Open,Save,PrintGraph/PrintLog,LogStart/Stop/Suspend,BringLogtoFront,BringGraphtoFront,Do-fileEditor,DataEditor,DataBrowser,Clear–more-condition,Break。其中常用的有Open,Save,Do-fileEditor,DataEditor和DataBrowser(图1中已用圆圈标出)。它们的使用办法将在下文介绍。工具栏上方是菜单栏。其中昀常用的是Help菜单。界面左下角显示了Stata的默认路径。Stata使用的数据文件一般存放在该路径下。2CCER04硕邹传伟2006年1月2.文件和数据Stata相关的文件有三类:数据文件,do-file文件,log文件。1.数据文件数据文件以后缀“.dta”表示。数据文件是Stata处理和分析的对象。数据文件具有如下的逻辑结构:variable1variable2……variableK1.2.……N.表1其中每一行表示一个观测,每一列表示一个变量。每个观测都有一个编号(表1左起第1列),是系统自动加上去的。Stata对数据类型的区分不是很细致,分为数据型和字符型。缺失数据用“.”表示。数据文件可以在DataEditor中生成,如图2所示。在方格中输入相应的变量名和数据后,点击Save按钮即可。图2也可以将文本文档(.txt)和Excel表格(.xls)中的数据读入,并存为数据文件。比如,假设D盘根目录下有一个txt文件data0.txt,现在要将其读入,并存为data1.dta。可以使用3CCER04硕邹传伟2006年1月如下指令:insheetusingd:\data0.txtsavedata1.dta在读入数据后,StataCommand会显示读入了多少个观测,多少个变量,Variables会显示变量名列表。数据文件data1.dta存放在Stata默认路径中。而如果data0.txt本身就在Stata的默认路径中,则第1条指令可以简化为:insheetusingdata0.txt要打开已经存在的数据文件,可以使用Open按钮,或使用use命令。假设Stata的默认路径中有数据文件data2.dta,则可使用如下指令:usedata2.dta(至此不难看出,在Stata中,同一个功能,既可以用命令实现,也可以用工具栏和菜单栏实现。)有必要介绍Stata中一个重要的概念:memory。memory可以视为Stata的工作环境。数据文件只有在被读入memory后才能被处理。在一个时点上,memory中昀多只能有一个数据文件。如果在一个数据文件处理途中想处理另一个数据文件,必须先用clear命令清空memory后(此时Variables会显示没有变量)再打开后一数据文件。对已在memory中的数据文件,可以用DataBrowser按钮查看,但不能修改。如果想做修改,可以用DataEditor按钮,注意修改后用Save按钮保存即可。也有命令来查看和修改在memory中的数据文件。见本文的第4部分。值得注意的是,在memory中,数据文件是以变量为单位存在的。具体而言,处理和分析数据只能在变量层面进行。Stata的语法和命令都是针对变量的。2.do-file文件do-file文件以后缀“.do”表示。在command窗口输入命令很不方便,而且也不利于保存对数据文件处理和分析的过程。替代的做法是使用工具栏中“Do-file-editor”(左起第8个)在Do-file中编程。在do-file文件中,用*表示注释内容,Stata在运行do-file文件时会跳过这些注释语句。加入注释语句能增强do-file文件的可读性。昀好为每一个do-file文件写详细的注释内容。比如文件名称,计量分析的目的,时间和结果存放位置。如果过程中生成并保存了数据文件,应写出相应数据文件的名称等。如果中途对do-file文件进行过修改,昀好将修改过文件保存为另一个文件,以便于将来对比分析原文件和修改后的文件。4CCER04硕邹传伟2006年1月以下是一个do-file文件的格式:*Wage_analysis.do*Theprogramiswrittenfortheanalysisofwagedetermination.*Datamanagement:reshapethedatatopanel.*Thisresultwillbesavedinthedatafile:wage1.dta*written:10/21/05图3是一个do-file的例子。图3工具栏昀右边的两个按钮分别是Docurrentfile和Runcurrentfile。点击后便可运行do-file文件。也可以选择部分命令让Stata只运行选中部分。可以保存当前使用的do-file文件。Review窗口中的命令也可以保存为do-file。方法是点击Review窗口左上角,选择SaveReviewContents。5CCER04硕邹传伟2006年1月3.log文件log文件以后缀“.log”表示,用于记录Stata的运行结果。在开始运行Stata时,创建一个log文件,并指定其路径和文件名,在结束运行时,再将其关掉,则可记录此间Stata的运行结果。以下是使用的方法:(开始运行)logusingc:\stata8\logfiles\10.21.5_30.log………………….(Stata命令)…………………..logclose(结束运行)从而10.21.5_30.log就记录了从“logusing”命令到“logclose”命令之间Stata运行的所有结果。3.语法和命令Stata的语法十分地简单和灵活。一个命令便构成了一条可执行的语句,在StataCommand中输入后,敲回车键就可以运行了。当然也可以将一组语句编成do-file文件,按前边介绍的方法运行就可以了。每个命令都有调用的格式,只要符合Stata规定的格式,语法上就是无误的。至于具体的格式,使用时查一下Stata的帮助系统或工具手册就可以了。本文也不会详细介绍命令调用的格式。Stata命令可以大体上分成4类:help命令;针对memory的命令;处理和分析数据的命令;数学命令。现分述如下。help命令十分地简单。比如想了解“regress”的用法,可在StataCommand中输入如下语句后回车:helpregressStata会提供关于“regress”用法的详细说明,并配以例子。针对memory的命令有清空命令clear和设置memory大小的setmemory命令。memory有一个默认的大小,但如果数据文件太大,必须重设memory的大小,如下所示:6CCER04硕邹传伟2006年1月setmemory2m该指令将memory大小设为2兆。处理和分析数据的命令构成Stata命令的主体。它们可实现各种各样的功能,但大体具有如下的格式:[byvarlist1:]command[varlist2][ifexp][inrange][,options]其中[byvarlist1:]表示按一组变量(由varlist1指定)分组;command[varlist2]表示命令是针对由varlist2指定的变量;[ifexp]表示命令只针对满足exp(一般是一个逻辑表达式)的观测;[inrange]表示命令只针对处在range指定的范围内的观测,如in5指执行的范围是第5个观测,in-5指执行的范围是倒数第5个观测,in5/12指执行的范围是从第5到第12个观测;[,options]是命令特有的一些选项,根据情况和需要而定,Stata的强大功能主要就体现在这些选项上,选项的使用非常精细和讲究,使用时既要依据个人的经验,也要参看Stata的帮助系统或工具手册。[ifexp]极大地体现了Stata的灵活性。逻辑表达式exp一般由以下成分构成:■变量名■数字,字符,表示缺失值的“.”■关系运算符:==(等于),!=,~=(不等于),(大于),(小于),=(大于或等于),=(小于或等于)■逻辑运算符:&(与),|(或),~(非)以下是一些应用的例子:ifage65&age85(age大于65,小于85的观测)ifplace==“Canada”&pop~=.(place为“Canada”并且pop不缺失的观测)ifyear==1994|year==1997(year为1994或1997的观测)if~(pop==.&year==.)(排除pop和year都缺失的观测)根据需要,逻辑表达式可以有非常复杂的形式。[inrange]和[ifexp]相当于从一个大样本中挑出符合条件的小样本,其用处体现在两个方面。首先是数据清理阶段,找出那些有明显的错误或有缺失的观测。其次是在数据处理和分析阶段,找出有特别兴趣或意义的观测。Stata的数学命令比较简单,没有很复杂的用法。具体使用时查一下工具手册就可以。7CCER04硕邹传伟2006年1月4.数据管理前边介绍了生成数据文件,读入其它格式的数据,以及修改数据文件的一些方法。这一部分继续介绍数据管理的其它方法。4.1改变变量名renameold_varnamenew_varnameold_varname是原变量名,new_varname是新变量名。4.2生成新变量generatenewvar=exp[ifexp][inrange]newvar是生成的新变量,exp是由现有变量生成新变量的算术或逻辑表达式,[ifexp]和[inrange]指定对哪些观测计算新变量值。比如,generateage2=age*age(新变量age2等于age的平方),generatebiginc=income100000&income~=.(若income大于100000且不缺失,则新变量biginc为1,否则为0)。4.3对现有变量重新赋值replaceoldvar=exp[ifexp][inrange]oldvar为现有的变量。对满足[ifexp]和[inrange]的样本,oldvar将根据表达式exp重新赋值。比如,replaceincome=.ifincome=0(若income非正,令其取缺失值),replaceage=25in1007(令第1007个观测中age
本文标题:stata-中文教程
链接地址:https://www.777doc.com/doc-4683121 .html