Stata教学讲解课件_第1页
Stata教学讲解课件_第2页
Stata教学讲解课件_第3页
Stata教学讲解课件_第4页
Stata教学讲解课件_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Stata简介1主要参考书:《社会统计分析与数据处理技术--STATA软件的应用》,杨菊华著,中国人民大学出版社,2008年3月。《应用STATA做统计分析》第5版,汉密尔顿著,郭志刚等译,重庆大学出版社,2008年第一版。21、界面Stata有4个窗口:1.StataCommand(右下)用于向Stata输入命令;2.StataResults(右上)用于显示运行结果;3.Review(左上)记录使用过的命令;4.Variables(左下)显示当前memory中的所有变量。342、文件和数据Stata相关的文件有三类:数据文件,do-file文件,log文件。1.数据文件数据文件以后缀“.dta”表示。数据文件是Stata处理和分析的对象。数据文件具有如下的逻辑结构:5Variable1Variable2……Variablen12……n6其中每一行表示一个观测,每一列表示一个变量。每个观测都有一个编号(表1左起第1列),是系统自动加上去的。Stata对数据类型的区分不是很细致,分为数据型和字符型。缺失数据用“.”表示。其中每一行表示一个观测,每一列表示一个变量。每个观测都有一个编号(表1左起第1列),是系统自动加上去的。Stata对数据类型的区分不是很细致,分为数据型和字符型。缺失数据用“.”表示。数据文件可以在DataEditor中生成,如图2所示。在方格中输入相应的变量名和数据后,点击Save按钮即可。72.do-file文件do-file文件以后缀“.do”表示。在command窗口输入命令很不方便,而且也不利于保存对数据文件处理和分析的过程。替代的做法是使用工具栏中“NewDo-fileEditor”在Do-file中编写命令。8在do-file文件中,用*表示注释内容,Stata在运行do-file文件时会跳过这些注释语句。加入注释语句能增强do-file文件的可读性。最好为每一个do-file文件写详细的注释内容。比如文件名称,计量分析的目的,时间和结果存放位置。如果过程中生成并保存了数据文件,应写出相应数据文件的名称等。如果中途对do-file文件进行过修改,最好将修改过文件保存为另一个文件,以便于将来对比分析原文件和修改后的文件。93.log文件log文件以后缀“.log”表示,用于记录Stata的运行结果。在开始运行Stata时,创建一个log文件,并指定其路径和文件名,在结束运行时,再将其关掉,则可记录此间Stata的运行结果。10例::(开始运行)logusingD:\Econometrics\logfiles\20091012.log….(Stata命令)…..logclose(结束运行)从而20091012.log就记录了从“logusing”命令到“logclose”命令之间Stata运行的所有结果。113、语法和命令Stata的语法十分地简单和灵活。一个命令便构成了一条可执行的语句,在StataCommand中输入后,敲回车键就可以运行了。当然也可以将一组语句编成do-file文件。12Stata命令可以大体上分成4类:help命令;针对memory的命令;处理和分析数据的命令;数学命令。现分述如下。help命令十分地简单。比如想了解“regress”的用法,可在StataCommand中输入如下语句后回车:helpregressStata会提供关于“regress”用法的详细说明,并配以例子。13针对memory的命令有清空命令clear和设置memory大小的setmemory命令。memory有一个默认的大小,但如果数据文件太大,必须重设memory的大小,例如:setmemory20m该命令将memory大小设为20兆。14处理和分析数据的命令构成Stata命令的主体。它们可实现各种各样的功能,但大体具有如下的格式:[byvarlist1:]command[varlist2][ifexp][inrange][,options]其中[byvarlist1:]表示按一组变量(由varlist1指定)分组;command[varlist2]表示命令是针对由varlist2指定的变量;[ifexp]表示命令只针对满足exp(一般是一个逻辑表达式)的观测;15[inrange]表示命令只针对处在range指定的范围内的观测,如in5指执行的范围是第5个观测,in-5指执行的范围是倒数第5个观测,in5/12指执行的范围是从第5到第12个观测;[,options]是命令特有的一些选项,根据情况和需要而定,Stata的强大功能主要就体现在这些选项上,选项的使用非常精细和讲究,使用时既要依据个人的经验,也要参看Stata的帮助系统或工具手册。16[ifexp]极大地体现了Stata的灵活性。逻辑表达式exp一般由以下成分构成:变量名数字,字符,表示缺失值的“.”

关系运算符:==(等于),!=,~=(不等于),>(大于),<(小于),>=(大于或等于),<=(小于或等于)逻辑运算符:&(与),|(或),~(非)174、数据管理4.1改变变量名renameold_varnamenew_varnameold_varname是原变量名,new_varname是新变量名。184.2生成新变量generatenewvar=exp[ifexp][inrange]newvar是生成的新变量,exp是由现有变量生成新变量的算术或逻辑表达式,[ifexp]和[inrange]指定对哪些观测计算新变量值。比如,generateage2=age*age(新变量age2等于age的平方),generatebiginc=income>100000&income~=.(若income大于100000且不缺失,则新变量biginc为1,否则为0)。194.3对现有变量重新赋值replaceoldvar=exp[ifexp][inrange]oldvar为现有的变量。对满足[ifexp]和[inrange]的样本,oldvar将根据表达式exp重新赋值。比如,replaceincome=.ifincome<=0(若income非正,令其取缺失值),replaceage=25in1007(令第1007个观测中age为25)。204.4删除变量或观测dropvarlist(去掉varlist指定的变量)drop_all(去掉全部变量)dropifexp(去掉符合表达式exp的观测)dropinrange(去掉处在range指定范围内的观测)214.5保留变量或观测keepvarlist(保留varlist指定的变量,其余变量去掉)keepifexp(保留符合表达式exp的观测,其余观测去掉)keepinrange(保留处在range指定范围内的观测)224.6观测重排sortvarlist将全部观测按varlist指定的变量按升序排列。varlist中可以有不止一个变量,此时排序与字典顺序相当。234.7数据文件的合并数据文件的合并涉及两个数据文件:在memory中的和不在memory中的。称前者为原数据文件(themasterdata),后者为新数据文件(theusingdata)。数据文件的合并有两种情形。若新数据文件与原数据文件的变量完全一样,此时新数据文件相当于新的观测,使用append命令:appendusingfilename其中filename是新数据文件的文件名。24若新数据文件对应着同样的观测,但变量不全一样,则使用merge命令:merge[varlist]usingfilename其中filename是新数据文件的文件名,varlist是合并的依据,varlist(可以不止一个变量)取值一样的观测视为同一个观测。在合并之前,原数据文件和新数据文件都要先按照varlist排序。如果除了varlist外,原数据文件和新数据文件还有一部分变量是相同的。对这部分变量,merge命令有两个常用的选项。25merge[varlist]usingfilename,update将原数据文件中的缺失值替换成新数据文件中的相应值(前提是后者不缺失)。merge[varlist]usingfilename,updatereplace将原数据文件中的变量值替换成新数据文件中的相应值(前提是两者不一样)。在这两种情形下,merge自动生成一个指示变量_merge。该变量的不同取值,代表了合并的不同情形。但一般会连续进行几次merge操作,所以在完成一次merge后应马上使用drop_merge指令将其去掉。26

4.7.1数据拆分与连接/合并需要掌握的命令为了折分或合并数据文件,要掌握下面的命令:命令命令解释用法示例drop删除变量或观察值dropmathkeep保留变量或观察值keepmathappend将两个数据集拼接(观察值拼接)appendusingmathmerge将两个数据集合并(变量合并)mergeidusingmathreshape将数据重整reshapelonginc,i(id)j(yr)stack将多列数据转换成一列数据stackabcd,into(ef)xpose数据转置xpose,clear数据Aappendmerge数据连接与拆分(drop/keep)数据B数据A数据B数据A数据B4.7.2横向拆分数据将mydata数据分成三个数据文件,分别为学生基本信息文件student.dta,经济学成绩文件economy.dta和数学成绩文件math.dta。idnamegenderminorityeconomymath1John1140682Chris1280523Jack0290764Huang0243905Tom0370966Han1153857Phillip0285368Jin129565将要新生成的三个数据文件如下:student.dta

economy.dta

math.dtaidnamegenderminority1John112Chris123Jack024Huang025Tom036Han117Phillip028Jin12ideconomy140280390443570653785895idmath168252376490596685736865*-------将mydata拆分成学生基本信息数据文件student--------.cdd:/mydata/.usemydata.dta,clear.dropeconomymath.savestudent,replace*----------------将mydata拆分成经济学成绩数据文件economy---------.usemydata,clear.keepideconomy.saveeconomy,replace*----------------将mydata拆分成数学成绩数据文件math--------.usemydata,clear.keepidmath.savemath,replace4.7.3纵向拆分数据将mydata数据分成二个数据文件,分别为女生数据集female.dta和男生数据集male.dta。原始数据同上。该任务完成后将要形成的数据如下:

female.dta

male.dtaidnamegenderminorityeconomymath3Jack0290764Huang0243907Phillip0285365Tom0370961John114068idnamegenderminorityeconomymath1John1140686Han1153858Jin1295652Chris128052*----------------将mydata拆分成女生数据集female--------------.usemydata,clear.keepifgender==0.savefemale,replace*----------------将mydata拆分成男生数据集male----------------.usemydata,clear.dropifgender==0.savemale,replace4.7.4纵向合并数据将女生数据集female.dta和男生数据集male.dta合并为新的数据集mydata1原始数据同上。参考操作*========begin=========/**---------将女生数据集female和男生数据集male合并为新数据mydata1--------.usemale,clear.appendusingfemale.savemydata1,replace*===========end==========/*4.7.5横向合并数据将学生基本信息数据集student.dta和数学成绩math.dta,经济学成绩economy.dta合并为新的数据集mydata2.原始数据同上。参考操作*/========begin===========**将学生基本信息和学习成绩合并成新数据mydata2.usestudent,

clear.sortid.useeconomy,

clear.sortid.mergeidusingstudent.drop_merge.savemydata2,

replace.usemath,clear.sortid.mergeidusingmath.drop_merge.savemydata2,replace4.8下标引用下标引用使Stata能很有效地处理时间序列数据和面板数据。对每个数据文件,_N表示观测的总数,_n为观测的序号(_n=1为第一个观测,_n=2为第二个观测,…,_n=_N是最后一个观测)。下标引用可以很方便地生成滞后变量和做差分:generatelagprice=price[_n-1](生成滞后变量)generatedifprice=price–price[_n-1](做差分)。时间序列数据可以直接由L.命令生成滞后变量。394.9生成虚拟变量在很多场合,需要对分别变量(categoricalvariables)生成虚拟变量。Stata提供的xi命令能很方便地实现这一点。这是Stata最引人入胜的功能之一。本文仅介绍xi命令最基本的用法:xi[,prefix(string)]i.varnamevarname是某一分类变量,设其共有m个可能的取值;string是prefix()指定的前缀。上述指令生成了K-1个虚拟变量:stringvarname_2,stringvarname_3,…,stringvarname_K。其中stringvarname表示字符串string和varname的联合。如果不使用[,prefix(string)]选项,则默认的前缀是_I。40例:数据集中year的取值范围是2001,2002,2003,2004,2005,则指令xii.year生成4个虚拟变量_Iyear_2,_Iyear_3,_Iyear_4,_Iyear_5,分别对应year取值为2002,2003,2004,2005的情形。414.10保存对数据文件的改变对数据文件做了如上处理后,有两种保存方法。其一是生成新的数据文件(设其文件名为newfilename),原数据文件不变(设其文件名为filename),可使用如下指令savenewfilename其二是处理的结果写入原数据文件中,原数据文件发生改变,可使用如下指令savefilename,replace425、描述统计describe命令可以描述数据文件的整体,包括观测总数,变量总数,生成日期,每个变量的存储类型(storagetype),标签(label)等。如果数据文件不是很大,可以直接在StataResults中显示数据,使用如下指令:list[varlist][ifexp][inrange]其中varlist指定了要显示的变量,[ifexp]和[inrange]确定哪些观测将被显示。435.1

summarize命令summarize[varlist][weight][ifexp][inrange][,detail]summarize可以提供varlist指定变量(可以不止一个)的如下统计量:Percentiles(分位数),四大最大的数和四个最小的数,Variance(方差),Std.Dev.(标准差),Skewness(偏度),Kurtosis(斜度)445.2

tabstat命令tabstatvarlist[weight][ifexp][inrange][,stats(statname[...])]tabstat提供[,stats(statname[...])]指定的统计量,可供选择的有mean(均值),count(非缺失观测值个数),sum(总和),max(最大值),min(最小值),range(最大值-最小值),sd(标准差),var(方差),cv(变易系数=标准差/均值),skewness(偏度),kurtosis(斜度),median(中位数),p1(1%分位数,类似地有p5,p10,p25,p50,p75,p95,p99),iqr(interquantilerange=p75–p25)。比如,想知道变量pop在整个样本的均值和方差,可以使用如下命令:tabstatpop,stats(meanvar)455.3正态性检验对单个变量进行正态性检验可以使用如下命令:sktestvarnameswilkvarname其中sktest基于变量的偏度和斜度(正态分布的偏度为0,斜度为3),swilk基于Shapiro-Wilk检验。这两个检验的零假设为变量服从正态分布。它们都给出p值,p值越小,越倾向于否定零假设,也就是变量越有可能不服从正态分布。465.4

tabulate命令tabulate主要用于处理与分类变量相关的问题。设varname1,varname2都为分类变量,则指令:tabulatevarname1tabulatevarname1varname2对varname1和varname2可能的取值做频数统计。现在设varname1表示性别,有1和0两种取值,分别表示男性和女性,另有varname3表示收入。我们想研究男性和女性在平均收入上的差别,可以使用如下指令tabulatevarname1,summ(varname2)tabulate的用法很多,可以使用helptabulate命令来查询。与tabulate类似的命令有table。475.5

anova命令anovayx1x2anova做方差分析(analysisofvariance),研究y的平均值在分类变量x1和x2不同取值之间的差异。485.6signrank命令signranky1=y2signrank做Wilcoxon秩检验。495.7signtest命令signtesty1=y2秩检验,检验变量y1和y2的中值是否相等。检验y1的中值是否为5可用如下命令signtesty1=5505.8ttest命令ttesty1=y2检验变量y1和y2的平均值是否相等。检验y1的平均值是否为5可用如下命令ttesty1=5515.9correlate命令correlate[varlist][weight][ifexp][inrange]correlate计算varlist中变量(两两)之间的相关系数。526、画图Stata提供了非常强大的画图功能。在很多场合,画图与描述统计一样,都是要揭示单个变量的分布或多个变量之间的关系,只是以图形的形式更为直观。在具体画图时,可以参看Stata的GraphicsReferenceManual或使用helpgraph指令。53对单个变量,Stata能画如下图案:直方图histogramy(y是变量名,下同)

boxplotgraphboxypiechartsgraphpiey

核估计方法得到的概率密度函数kdensityyQQ图qnormy54对多个变量,Stata能画如下图案:两个变量的散点图graphtwowayscatteryx(y对x的散点图)graphtwowaylineyx(以x为横座标,y为纵座标的点连成的折线)graphtwowayconnectedyx(以x为横座标,y为纵座标的点连成折线,但转角处特别标出)graphtwowaylfityx(y对x回归的回归直线)55一个变量的总体统计量对另一个变量(一般为分类变量)的barchartsgraphbar(mean)y,over(x)(y的平均值与x的关系)graphbar(media)y,over(x)(y的中位数与x的关系)多个变量的散点图graphmatrixx1x2x3x4y(x1,x2,x3,x4,y两两之间的散点图)56有一些通用的选项可以给图形“润色”:标题title(“string”)(string可为任意的字符串,下同)脚注note(“string”)

横座标标题xtitle(“string”)

纵座标标题ytitle(“sting”)横座标范围xaxis(a,b)(a<b为两个数字,下同)纵座标范围yaxis(a,b)

插入文字text(该命令既要指定插入文字的内容,也要指定插入的位置)插入图例legend(该命令既要指定图例的内容,也要指定其位置)577、回归和分析回归是Stata最主要的功能之一。本部分主要介绍如何用Stata做线性回归,以及回归分析,并简单介绍用Stata做Logistic回归的方法。回归命令的选项也非常丰富,可以使用helpregress/logit/probit/tobit来了解。58线性回归的命令有:

regressyx1x2x3(以y为被解释变量,x1,x2,x3为解释变量做回归;regress后第一个变量为被解释变量)

regressyx1x2x3,robust(regressionwithrobuststandarderrors)

regressyx1x2x3[aweight=w](WLS,以变量w为权重)59xi:regressyx1x2i.catvar*x2(被解释变量为y,解释变量为x1,x2,分类变量catvar生成的虚拟变量与x2的乘积。xi可以实现很复杂的带虚拟变量的回归。可使用helpxi命令来了解。)regressyx1x2(xz)(工具变量回归,工具变量是x和z)

regressyx1x2[ifexp][inrange](使用满足[ifexp]和[inrange]的观测做回归)60线性回归的典型输出:Stata会报告如下结果:方差分解,整体显著性检验的F统计量及相应的p值,R平方,调整后的R平方,MSE的平方根(亦即对σ的估计),系数估计,系数估计的标准差,t值,显著性检验的p值,置信区间。61回归后可以对系数做假设检验:对单个参数的检验testamount(检验amount的系数是否显著)testamount=1(检验amount的系数是否为1)对多个参数的检验testamountratio(零假设为amount和ratio的系数都不显著)testamount=ratio(检验amount和ratio的系数是否相等)testamount+ratio=1(检验amount和ratio的系数之和是否为1)62回归后一般要做回归分析,检验是否存在异常的观测,以及是否有异方差,自相关,共线性。回归分析一般依据回归残差进行。此时最重要的命令是predict,可以使用helppredict指令来了解它。predict命令主要的功能如下:拟合值相关predictyhat(yhat是任意指定的变量名,以下皆如此)predictnew,stdp(standarderrorsofpredictedmeany)63回归残差相关predicte,resid(e是任意指定的变量名)predicte,rstandard(标准化的残差,e是任意指定的变量名)predicte,rstudent(学生化的残差,e是任意指定的变量名)predictnew,stdr(回归残差的标准差,new是任意指定的变量名)64观测相关predictnew,cooksd(Cook’sDinfluencemeasures)predictnew,dfits(DFITSinfluencemeasures)predictnew,welsch(welsch’sdistanceinfluencemeasures)这几个指令都给出每个观测对回归的影响程度。影响程度越大的观测,越有可能是异常的。在回归时,一般要去掉异常观测。65在得到残差后,可以画残差关于某一解释变量,拟合值,时间的图象,以判断有没有异方差或自相关的存在。此时可以使用前一部分介绍的画图命令,但也有专门的命令可用。如果是画残差关于拟合值的图象,可以使用rvfplot命令。如果要画残差关于某一解释变量(设为x1)的图象,可以使用如下指令:rvfplotx166更精细的回归分析需要做假设检验:异方差检验hettest(CookandWeisberg’stestforheteroskedasticity)hettestx1(同上,但此时我们有理由怀疑异方差可写成变量x1的函数)自相关检验dwstat(Durbin-Watson自相关检验)durbina(Durbin-Watsonh统计量)bgodfrey(Breusch-GodfreyLM统计量)67共线性检验vif(varianceinflationfactors或方差膨胀因子。对每一个解释变量,都可以计算其方差膨胀因子。该因子越大,相应的变量越有可能是其它变量的线性组合。)Logistic回归命令的形式与线性回归十分相识:

logit回归logityx1x2x3(y取0或1,是被解释变量,x1-x3是被解释变量)

probit回归probityx1x2x3(y取0或1,是被解释变量,x1-x3是被解释

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论