收藏 分享(赏)

Stata教学.ppt

上传人:saw518 文档编号:5569039 上传时间:2019-03-08 格式:PPT 页数:74 大小:1.52MB
下载 相关 举报
Stata教学.ppt_第1页
第1页 / 共74页
Stata教学.ppt_第2页
第2页 / 共74页
Stata教学.ppt_第3页
第3页 / 共74页
Stata教学.ppt_第4页
第4页 / 共74页
Stata教学.ppt_第5页
第5页 / 共74页
点击查看更多>>
资源描述

1、Stata简介,1,主要参考书: 社会统计分析与数据处理技术-STATA软件的应用,杨菊华著,中国人民大学出版社,2008年3月。,应用STATA做统计分析第5版,汉密尔顿著,郭志刚等译,重庆大学出版社,2008年第一版。,2,1、界面,Stata有4个窗口: 1 Stata Command(右下)用于向Stata输入命令; 2 Stata Results(右上)用于显示运行结果; 3 Review(左上)记录使用过的命令; 4 Variables(左下)显示当前memory中的所有变量。,3,4,2、文件和数据,Stata相关的文件有三类:数据文件,do-file文件,log文件。 1数据文

2、件 数据文件以后缀“.dta”表示。数据文件是Stata处理和分析的对象。数据文件具有如下的逻辑结构:,5,6,其中每一行表示一个观测,每一列表示一个变量。每个观测都有一个编号(表1左起第1列),是系统自动加上去的。Stata对数据类型的区分不是很细致,分为数据型和字符型。缺失数据用“.”表示。,其中每一行表示一个观测,每一列表示一个变量。每个观测都有一个编号(表1左起第1列),是系统自动加上去的。Stata对数据类型的区分不是很细致,分为数据型和字符型。缺失数据用“.”表示。 数据文件可以在Data Editor中生成,如图2所示。在方格中输入相应的变量名和数据后,点击Save按钮即可。,7

3、,2do-file文件 do-file文件以后缀“.do”表示。 在command窗口输入命令很不方便,而且也不利于保存对数据文件处理和分析的过程。替代的做法是使用工具栏中“New Do-file Editor”在Do-file中编写命令。,8,在do-file文件中,用*表示注释内容,Stata在运行do-file文件时会跳过这些注释语句。加入注释语句能增强do-file文件的可读性。最好为每一个do-file文件写详细的注释内容。比如文件名称,计量分析的目的,时间和结果存放位置。如果过程中生成并保存了数据文件,应写出相应数据文件的名称等。如果中途对do-file文件进行过修改,最好将修改过

4、文件保存为另一个文件,以便于将来对比分析原文件和修改后的文件。,9,3log文件 log文件以后缀“.log”表示,用于记录Stata的运行结果。 在开始运行Stata时,创建一个log文件,并指定其路径和文件名,在结束运行时,再将其关掉,则可记录此间Stata的运行结果。,10,例: (开始运行) log using D:Econometricslogfiles20091012.log . (Stata命令) log close (结束运行) 从而20091012.log就记录了从“log using”命令 到“log close”命令之间Stata运行的所有结果。,11,3、语法和命令,S

5、tata的语法十分地简单和灵活。一个命令便构成了一条可执行的语句,在Stata Command中输入后,敲回车键就可以运行了。当然也可以将一组语句编成do-file文件。,12,Stata命令可以大体上分成4类:help命令;针对memory的命令;处理和分析数据的命令;数学命令。现分述如下。 help命令十分地简单。比如想了解“regress”的用法,可在Stata Command中输入如下语句后回车: help regress Stata会提供关于“regress”用法的详细说明,并配以例子。,13,针对memory的命令有清空命令clear和设置memory大小的set memory命令

6、。memory有一个默认的大小,但如果数据文件太大,必须重设memory的大小,例如: set memory 20m 该命令将memory大小设为20兆。,14,处理和分析数据的命令构成Stata命令的主体。它们可实现各种各样的功能,但大体具有如下的格式: by varlist1: command varlist2 if exp in range ,options 其中by varlist1:表示按一组变量(由varlist1指定)分组; command varlist2表示命令是针对由varlist2指定的变量; if exp表示命令只针对满足exp(一般是一个逻辑表达式)的观测;,15,i

7、n range表示命令只针对处在range指定的范围内的观测,如in 5指执行的范围是第5个观测,in -5指执行的范围是倒数第5个观测,in 5/12指执行的范围是从第5到第12个观测; ,options是命令特有的一些选项,根据情况和需要而定,Stata的强大功能主要就体现在这些选项上,选项的使用非常精细和讲究,使用时既要依据个人的经验,也要参看Stata的帮助系统或工具手册。,16,if exp极大地体现了Stata的灵活性。逻辑表达式exp一般由以下成分构成:变量名数字,字符,表示缺失值的“.”关系运算符:=(等于),!=,(不等于),(大于),=(大于或等于),=(小于或等于)逻辑运

8、算符:&(与),|(或),(非),17,4、数据管理,4.1 改变变量名 rename old_varname new_varname old_varname是原变量名,new_varname是新变量名。,18,4.2生成新变量 generate newvar = exp if exp in range newvar是生成的新变量,exp是由现有变量生成新变量的算术或逻辑表达式,if exp 和 in range指定对哪些观测计算新变量值。 比如,generate age2 = age*age (新变量age2等于age的平方), generate biginc = income100000

9、& income=. (若income大于100000且不缺失,则新变量biginc为1,否则为0)。,19,4.3对现有变量重新赋值 replace oldvar = exp if exp in range oldvar为现有的变量。对满足if exp和in range的样本,oldvar将根据表达式exp重新赋值。 比如,replace income=. if income=0 (若income非正,令其取缺失值), replace age = 25 in 1007 (令第1007个观测中age为25)。,20,4.4删除变量或观测 drop varlist (去掉varlist指定的变量

10、) drop _all (去掉全部变量) drop if exp (去掉符合表达式exp的观测) drop in range (去掉处在range指定范围内的观测),21,4.5 保留变量或观测 keep varlist (保留varlist指定的变量,其余变量去掉) keep if exp (保留符合表达式exp的观测,其余观测去掉) keep in range (保留处在range指定范围内的观测),22,4.6观测重排 sort varlist 将全部观测按varlist指定的变量按升序排列。varlist中可以有不止一个变量,此时排序与字典顺序相当。,23,4.7数据文件的合并 数据文

11、件的合并涉及两个数据文件:在memory中的和不在memory中的。称前者为原数据文件(the master data),后者为新数据文件(the using data)。数据文件的合并有两种情形。 若新数据文件与原数据文件的变量完全一样,此时新数据文件相当于新的观测,使用append命令: append using filename 其中filename是新数据文件的文件名。,24,若新数据文件对应着同样的观测,但变量不全一样,则使用merge命令: merge varlist using filename 其中filename是新数据文件的文件名,varlist是合并的依据,varlist

12、(可以不止一个变量)取值一样的观测视为同一个观测。在合并之前,原数据文件和新数据文件都要先按照varlist排序。如果除了varlist外,原数据文件和新数据文件还有一部分变量是相同的。对这部分变量,merge命令有两个常用的选项。,25,merge varlist using filename, update 将原数据文件中的缺失值替换成新数据文件中的相应值(前提是后者不缺失)。 merge varlist using filename, update replace将原数据文件中的变量值替换成新数据文件中的相应值(前提是两者不一样)。 在这两种情形下,merge自动生成一个指示变量_mer

13、ge。该变量的不同取值,代表了合并的不同情形。但一般会连续进行几次merge操作,所以在完成一次merge后应马上使用 drop _merge 指令将其去掉。,26,4.7.1 数据拆分与连接/合并需要掌握的命令,为了折分或合并数据文件,要掌握下面的命令:,4.7.2 横向拆分数据,将mydata数据分成三个数据文件,分别为学生基本信息文件student.dta, 经济学成绩文件economy.dta和数学成绩文件math.dta。,将要新生成的三个数据文件如下:,student.dta economy.dta math.dta,*-将mydata拆分成学生基本信息数据文件student- .

14、 cd d:/mydata/ . use mydata.dta, clear . drop economy math . save student, replace,*-将mydata拆分成经济学成绩数据文件economy- . use mydata, clear . keep id economy . save economy, replace,*-将mydata拆分成数学成绩数据文件math- . use mydata, clear . keep id math . save math,replace,4.7.3 纵向拆分数据,将mydata数据分成二个数据文件,分别为女生数据集femal

15、e.dta和男生数据集 male.dta。 原始数据同上。该任务完成后将要形成的数据如下:female.dta male.dta,*-将mydata拆分成女生数据集female- . use mydata, clear . keep if gender=0 . save female, replace*-将mydata拆分成男生数据集male- . use mydata, clear . drop if gender=0 . save male, replace,4.7.4 纵向合并数据,将女生数据集female.dta和男生数据集 male.dta合并为新的数据集mydata1 原始数据同上

16、。 参考操作 *=begin=/* *-将女生数据集female和男生数据集male合并为新数据mydata1- . use male, clear . append using female . save mydata1, replace *=end=/*,4.7.5 横向合并数据,将学生基本信息数据集student.dta和数学成绩math.dta,经济学成绩economy.dta合并为新的数据集mydata2. 原始数据同上。 参考操作 */=begin=* *将学生基本信息和学习成绩合并成新数据mydata2 . use student, clear . sort id . use e

17、conomy, clear . sort id . merge id using student . drop _merge . save mydata2, replace,. use math, clear . sort id . merge id using math . drop _merge . save mydata2, replace,4.8下标引用 下标引用使Stata能很有效地处理时间序列数据和面板数据。对每个数据文件,_N表示观测的总数,_n为观测的序号(_n=1为第一个观测,_n=2为第二个观测,_n=_N是最后一个观测)。 下标引用可以很方便地生成滞后变量和做差分: ge

18、nerate lagprice = price _n-1 (生成滞后变量) generate difprice = price price_n-1 (做差分)。 时间序列数据可以直接由 L. 命令生成滞后变量。,39,4.9生成虚拟变量 在很多场合,需要对分别变量(categorical variables)生成虚拟变量。Stata提供的xi命令能很方便地实现这一点。这是Stata最引人入胜的功能之一。本文仅介绍xi命令最基本的用法: xi , prefix(string) i.varname varname是某一分类变量,设其共有m个可能的取值;string是prefix()指定的前缀。上述

19、指令生成了K-1个虚拟变量:stringvarname_2, stringvarname_3, , stringvarname_K。其中stringvarname表示字符串string和varname的联合。如果不使用, prefix(string)选项,则默认的前缀是_I。,40,例:数据集中year的取值范围是2001,2002,2003,2004,2005,则指令 xi i.year生成4个虚拟变量 _Iyear_2,_Iyear_3,_Iyear_4,_Iyear_5,分别对应year取值为2002,2003,2004,2005的情形。,41,4.10 保存对数据文件的改变 对数据文件

20、做了如上处理后,有两种保存方法。其一是生成新的数据文件(设其文件名为newfilename),原数据文件不变(设其文件名为filename),可使用如下指令 save newfilename 其二是处理的结果写入原数据文件中,原数据文件发生改变,可使用如下指令 save filename, replace,42,5、描述统计,describe命令可以描述数据文件的整体,包括观测总数,变量总数,生成日期,每个变量的存储类型(storage type),标签(label)等。 如果数据文件不是很大,可以直接在Stata Results中显示数据,使用如下指令: list varlist if ex

21、p in range 其中varlist指定了要显示的变量,if exp和in range确定哪些观测将被显示。,43,5.1 summarize 命令 summarize varlist weight if exp in range ,detail summarize可以提供varlist指定变量(可以不止一个)的如下统计量:Percentiles(分位数),四大最大的数和四个最小的数,Variance(方差),Std. Dev.(标准差),Skewness(偏度),Kurtosis(斜度),44,5.2 tabstat命令 tabstat varlist weight if exp in

22、range , 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(interquantile range = p75 p25)。 比如,想知道变量pop在整个样本

23、的均值和方差,可以使用如下命令: tabstat pop, stats(mean var),45,5.3正态性检验 对单个变量进行正态性检验可以使用如下命令: sktest varname swilk varname 其中sktest基于变量的偏度和斜度(正态分布的偏度为0,斜度为3),swilk基于Shapiro-Wilk检验。这两个检验的零假设为变量服从正态分布。它们都给出p值,p值越小,越倾向于否定零假设,也就是变量越有可能不服从正态分布。,46,5.4 tabulate命令 tabulate主要用于处理与分类变量相关的问题。设varname1, varname2都为分类变量,则指令:

24、tabulate varname1 tabulate varname1 varname2 对varname1和varname2可能的取值做频数统计。 现在设varname1表示性别,有1和0 两种取值,分别表示男性和女性,另有varname3表示收入。我们想研究男性和女性在平均收入上的差别,可以使用如下指令 tabulate varname1, summ(varname2) tabulate 的用法很多,可以使用help tabulate命令来查询。与tabulate类似的命令有table。,47,5.5 anova命令 anova y x1 x2 anova 做方差分析(analysis o

25、f variance),研究y的平均值在分类变量x1和x2不同取值之间的差异。,48,5.6 signrank命令 signrank y1=y2 signrank做Wilcoxon秩检验。,49,5.7 signtest命令 signtest y1=y2 秩检验,检验变量y1和y2的中值是否相等。检验y1的中值是否为5可用如下命令 signtest y1=5,50,5.8 ttest命令 ttest y1=y2 检验变量y1和y2的平均值是否相等。检验y1的平均值是否为5可用如下命令 ttest y1=5,51,5.9 correlate命令 correlate varlist weight

26、if exp in range correlate计算varlist中变量(两两)之间的相关系数。,52,6、画图,Stata提供了非常强大的画图功能。在很多场合,画图与描述统计一样,都是要揭示单个变量的分布或多个变量之间的关系,只是以图形的形式更为直观。在具体画图时,可以参看Stata的Graphics Reference Manual或使用help graph指令。,53,对单个变量,Stata能画如下图案:直方图 histogram y (y是变量名,下同)box plot graph box ypie charts graph pie y核估计方法得到的概率密度函数 kdensity

27、yQQ图 qnorm y,54,对多个变量,Stata能画如下图案:两个变量的散点图 graph twoway scatter y x (y对x的散点图) graph twoway line y x (以x为横座标,y为纵座标的点连成的折线) graph twoway connected y x (以x为横座标,y为纵座标的点连成折线,但转角处特别标出) graph twoway lfit y x (y对x回归的回归直线),55,一个变量的总体统计量对另一个变量(一般为分类变量)的bar charts graph bar (mean) y, over (x) (y的平均值与x的关系) grap

28、h bar (media) y, over (x) (y的中位数与x的关系) 多个变量的散点图 graph matrix x1 x2 x3 x4 y (x1,x2,x3,x4,y两两之间的散点图),56,有一些通用的选项可以给图形“润色”:标题 title(“string”) (string可为任意的字符串,下同)脚注 note(“string”)横座标标题 xtitle(“string”)纵座标标题 ytitle(“sting”) 横座标范围 xaxis(a,b) (ab为两个数字,下同)纵座标范围 yaxis(a,b)插入文字 text (该命令既要指定插入文字的内容,也要指定插入的位置)

29、插入图例 legend (该命令既要指定图例的内容,也要指定其位置),57,7、回归和分析,回归是Stata最主要的功能之一。本部分主要介绍如何用Stata做线性回归,以及回归分析,并简单介绍用Stata做Logistic回归的方法。回归命令的选项也非常丰富,可以使用help regress / logit / probit / tobit 来了解。,58,线性回归的命令有:regress y x1 x2 x3 (以y为被解释变量,x1,x2,x3为解释变量做回归;regress后第一个变量为被解释变量)regress y x1 x2 x3, robust (regression with r

30、obust standard errors)regress y x1 x2 x3 aweight=w (WLS,以变量w为权重),59,xi: regress y x1 x2 i.catvar*x2 (被解释变量为y,解释变量为x1,x2,分类变量catvar生成的虚拟变量与x2的乘积。xi可以实现很复杂的带虚拟变量的回归。可使用help xi 命令来了解。)regress y x1 x2 (x z) (工具变量回归,工具变量是x和z)regress y x1 x2 if expin range (使用满足if exp和in range的观测做回归),60,线性回归的典型输出:Stata会报告

31、如下结果:方差分解,整体显著性检验的F统计量及相应的p值,R平方,调整后的R平方,MSE的平方根(亦即对的估计),系数估计,系数估计的标准差,t值,显著性检验的p值,置信区间。,61,回归后可以对系数做假设检验:对单个参数的检验 test amount (检验amount的系数是否显著) test amount = 1 (检验amount的系数是否为1)对多个参数的检验 test amount ratio (零假设为amount和ratio的系数都不显著) test amount=ratio (检验amount和ratio的系数是否相等) test amount + ratio=1 (检验am

32、ount和ratio的系数之和是否为1),62,回归后一般要做回归分析,检验是否存在异常的观测,以及是否有异方差,自相关,共线性。回归分析一般依据回归残差进行。此时最重要的命令是predict,可以使用help predict指令来了解它。 predict命令主要的功能如下:拟合值相关 predict yhat (yhat是任意指定的变量名,以下皆如此) predict new, stdp (standard errors of predicted mean y),63,回归残差相关 predict e, resid (e是任意指定的变量名) predict e, rstandard (标准化

33、的残差,e是任意指定的变量名) predict e, rstudent (学生化的残差,e是任意指定的变量名) predict new, stdr (回归残差的标准差, new是任意指定的变量名),64,观测相关 predict new, cooksd (Cooks D influence measures) predict new, dfits (DFITS influence measures) predict new, welsch (welschs distance influence measures) 这几个指令都给出每个观测对回归的影响程度。影响程度越大的观测,越有可能是异常的。

34、在回归时,一般要去掉异常观测。,65,在得到残差后,可以画残差关于某一解释变量,拟合值,时间的图象,以判断有没有异方差或自相关的存在。此时可以使用前一部分介绍的画图命令,但也有专门的命令可用。如果是画残差关于拟合值的图象,可以使用rvfplot命令。如果要画残差关于某一解释变量(设为x1)的图象,可以使用如下指令: rvfplot x1,66,更精细的回归分析需要做假设检验:异方差检验 hettest (Cook and Weisbergs test for heteroskedasticity) hettest x1 (同上,但此时我们有理由怀疑异方差可写成变量x1的函数)自相关检验 dws

35、tat (Durbin-Watson自相关检验) durbina (Durbin-Watson h统计量) bgodfrey (Breusch-Godfrey LM 统计量),67,共线性检验 vif (variance inflation factors或方差膨胀因子。对每一个解释变量,都可以计算其方差膨胀因子。该因子越大,相应的变量越有可能是其它变量的线性组合。) Logistic回归命令的形式与线性回归十分相识:logit回归 logit y x1 x2 x3 (y取0或1,是被解释变量,x1-x3是被解释变量)probit回归 probit y x1 x2 x3 (y取0或1,是被解释

36、变量,x1-x3是被解释变量)tobit回归 tobit y x1 x2 x3 (y取值在0和1之间,是被解释变量,x1-x3是被解释变量),68,8、常用命令,8.1 文件和系统管理 insheet (导入外部数据) use (使用已有的数据文件) save (保存数据文件) log using / log close (log文件操作) cd (改变默认路径) set memory (设置memory 大小) clear (清空memory) help / search (查询帮助文档),69,8.2 数据管理 list (展示数据) describe (数据文件的整体描述) rename

37、(改变变量名) generate(生成新变量) replace(对现有变量重新赋值) drop(删除变量或观测) keep(保留变量或观测) sort(观测重排) merge / append(数据文件的合并) xi(生成虚拟变量),70,8.3 描述统计 summarize tabstat sktest /swilk /ladder /gladder /qladder (正态性检验) tabulate anova(方差分析) signrank(Wilcoxon秩检验) signtest(检验两变量的中值是否相等) ttest(检验两变量的均值是否相等) correlate(计算多个变量两两之

38、间的相关系数),71,8.4 画图 histogram(直方图) graph box(box plot) graph pie(pie charts) kdensity(kernal density function) qnorm(QQ图) graph twoway scatter/line/connected(两个变量的散点图) graph matrix(多个变量的散点图),72,8.5 回归和回归分析 regress(线性回归) xi: regress(带虚拟变量的线性回归) test(假设检验) predict rvfplot(与残差相关的图象) hettest(异方差检验) dwstat

39、 /durbina /bgodfrey(自相关检验) vif(共线性检验) logit(logit回归) probit(probit回归) tobit(tobit回归),73,在写命令时,有一些经验写法,遵循这些写法将会提高工作效率。,. clear /相当于让STATA处于初始状态,清除所有使用过的痕迹 . version9 /由于不同版本命令等略有不同,因此最好事先指明版本号 . cd d:/stata9 /设定路径,将数据、程序和输出结果文件均存入该文件夹 . capture log close /*如某结果输出文件已被打开,则关闭之,若没有,则忽略该命令*/ . log using myfile.log, replace /将运行结果存到一个输出文件myfile中 . set more off /在程序执行过程中,不要因为结果窗口屏幕已满而停下来 . log close /关闭结果记录功能,以下的执行和结果均不记录,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 教学研究

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报