Stata教程.docx
- 文档编号:4558907
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:60
- 大小:290.57KB
Stata教程.docx
《Stata教程.docx》由会员分享,可在线阅读,更多相关《Stata教程.docx(60页珍藏版)》请在冰豆网上搜索。
Stata教程
第一章Stata概貌
§1.1Stata的功能、特点和背景
Stata是一个用于分析和管理数据的功能强大又小巧玲珑的实用统计分析软件,由美国计算机资源中心(ComputerResourceCenter)研制。
从1985至1998的十四年时间里,已连续推出1.1,1.2,1.3,1.4,1.5,……及2.0,2.1,3.0,3.1,4.0,5.0,6.0等多个版本,通过不断更新和扩充,内容日趋完善。
它同时具有数据管理软件、统计分析软件、绘图软件、矩阵计算软件和程序语言的特点,又在许多方面别具一格。
Stata融汇了上述程序的优点,克服了各自的缺点,使其功能更加强大,操作更加灵活、简单,易学易用,越来越受到人们的重视和欢迎。
Stata的突出特点是只占用很少的磁盘空间,输出结果简洁,所选方法先进,内容较齐全,制作的图形十分精美,可直接被图形处理软件或字处理软件如WORD等直接调用。
一、Stata的数据管理能力
1.Stata的数据管理空间受计算机的操作系统和计算机扩展内存的影响。
对640k内存的微机,3.1版本的Stata可以管理2400个记录×99个变量,并随计算机扩展内存的增加而增加;对4.0的WINDOWS版本,Stata可以管理4800个记录×99个变量;对WINDOWS95下的5.0版本,可根据计算机的配置情况设置变量数和记录数,如32M扩展内存的计算机,可处理2千万个数据。
变量数和记录数可以互相交易(trade),即减少记录数可以增加变量数,减少变量数可以增加记录数。
2.可以将分组变量转换成指示变量(哑变量),将字符串变量映射成数字代码。
3.可以对数据文件进行横向和纵向链接,可以将行数据转为列数据,或反之。
4.可以恢复、修改执行过的命令。
5.可以利用数值函数或字符串函数产生新变量。
6.可以从键盘或磁盘读入数据。
二、Stata的统计功能
Stata的统计功能很强,除了传统的统计分析方法外,还收集了近20年发展起来的新方法,如Cox比例风险回归,指数与Weibull回归,多类结果与有序结果的logistic回归,Poisson回归、负二项回归及广义负二项回归,随机效应模型等。
具体说,Stata具有如下统计分析能力:
1.数值变量资料的一般分析:
参数估计,t检验,单因素和多因素的方差分析,协方差分析,交互效应模型,平衡和非平衡设计,嵌套设计,随机效应,多个均数的两两比较,缺项数据的处理,方差齐性检验,正态性检验,变量变换等。
2.分类资料的一般分析:
参数估计,列联表分析(2检验,列联系数,确切概率),流行病学表格分析等。
3.等级资料的一般分析:
秩变换,秩和检验,秩相关等。
4.相关与回归分析:
简单相关,偏相关,典型相关,以及多达数十种的回归分析方法,如多元线性回归,逐步回归,加权回归,稳键回归,二阶段回归,百分位数(中位数)回归,残差分析、强影响点分析,曲线拟合,随机效应的线性回归模型,等。
5.危险度分析:
条件和非条件的logistic回归,多类结果与有序结果的logistic回归,Probit回归,及其他广义线性模型,随机效应的logistic回归,随机效应的Poisson回归,等。
6.生存分析:
基线生存曲线的估计、相对危险度的估计,Kaplan-Meier生存曲线、寿命表分析,对数秩检验,Mantel-Haenszel检验,Wilcoxon-Gehan检验,Cox比例风险模型,正态截尾及Tobit回归,指数回归和Weibull回归,等。
7.其它方法:
质量控制,整群抽样的设计效率,诊断试验评价,kappa,等。
三、Stata的作图功能
Stata的作图模块,主要提供如下八种基本图形的制作:
直方图(histogram),条形图(bar),百分条图(oneway),百分圆图(pie),散点图(twoway),散点图矩阵(matrix),星形图(star),分位数图。
这些图形的巧妙应用,可以满足绝大多数用户的统计作图要求。
在有些非绘图命令中,也提供了专门绘制某种图形的功能,如在生存分析中,提供了绘制生存曲线图,回归分析中提供了残差图等。
详见第五章。
四、Stata的矩阵运算功能
矩阵代数是多元统计分析的重要工具,Stata提供了多元统计分析中所需的矩阵基本运算,如矩阵的加、积、逆、Cholesky分解、Kronecker内积等;还提供了一些高级运算,如特征根、特征向量、奇异值分解等;在执行完某些统计分析命令后,还提供了一些系统矩阵,如估计系数向量、估计系数的协方差矩阵等。
尽管Stata的容量最大只容许400400的矩阵(默认为4040),用它来完成日常工作中的统计分析显然不现实,但用它来做一些练习,提高多元统计分析的教学效率,无疑是很有帮助。
详见第十八章。
五、Stata的程序设计功能
Stata是一个统计分析软件,但它也具有很强的程序语言功能,这给用户提供了一个广阔的开发应用的天地,用户可以充分发挥自己的聪明才智,熟练应用各种技巧,真正做到随心所欲。
事实上,Stata的ado文件(高级统计部分)都是用Stata自己的语言编写的。
下面这段程序是笔者自行编写的,用于产生n个参数为的Poisson分布的随机数。
progdefinerp
/*定义程序名
setobs`2’
/*定义数据库的最大记录数
setseed`3’
/*设置随机数种子,
genrp=.
/*定义变量rp,用于存放Poisson分布随机数
locallamda0=exp(`1’)
/*计算lamda0=exp()
localj=1
/*j=1
while`j’<`2’+1{
/*对j locali=1 /*i=1 localr0=1 /*r0=1 while`i’>0{ /*i循环 localr1=uniform() /*r1=均匀分布的随机数 localr0=`r1’*`r0’ /*r0=r1*t0 if`r0’<`lamda0’{ /*如果r0 localn0=`i’-1 /*n0=i-1 locali=-1 /*i=-1 } locali=`i’+1 /*i循环 } quietreplacerp=`n0’if_n==`j’ /*第j个rp=n0 localj=`j’+1 /*j循环 } end §1.2Stata的界面 Windows版本的Stata的界面上有一级菜单行,二级菜单窗口,命令窗口,结果窗口,图形窗口,变量名窗口,已执行过的命令窗口,帮助窗口等。 窗口的大小、位置可根据用户需要进行调整。 §1.3进入和退出Stata 一、DOS版本的Stata的进入和退出 前已述及,要将Stata程序所在的路径放入autoexec.bat中,我们可在DOS下任何目录位置进入Stata,但我们假定d: \盘上进行。 D: \>Stata 进入Stata后,屏幕显示Stata的版本号,公司所在地等信息,Dos版本下的Stata即出现圆点提示符。 这时即可键入Stata的各种命令。 若已在Stata状态读入了数据,并且已将数据按Stata指令存盘,或读入的数据虽经分析,但对数据及数据结构等未作任何修改,则只须键入: .exit 即可退出Stata。 如未将数据按Stata指令存盘,或读入的数据或数据结构已被修改(Stata的有些命令会自动修改数据结构,如按某变量排序等),这时,Stata将拒绝退出Stata状态。 若确实不需要存盘而退出Stata,可键入: .e,clear (e为exit的简写)即可强行退出Stata。 或分两步,即先放弃所有数据, .drop_all 再退出Stata, .exit 二、WINDOWS版本的Stata的进入和退出 在桌面上双击Wstata的图标: 即可进入Stata,并出现命令窗口。 在Stata的菜单中选File,再选exit,如数据已经存盘,则可退出Stata。 如数据未存盘,则Stata给出如下提示: “Datahaschangedwithoutbeingsaved.Doyoureallywanttoexit? ”(数据已改变,但未存盘,是否真的要退出? )如要退出,则按确定,否则按取消。 将数据存盘后再退出。 在WINDOWS下,亦可用DOS的命令退出Stata。 §1.4Stata的数据输入与储存 Stata可以从键盘输入数据,也可以从文件读入数据。 WINDOWS下的Stata还可以用Stata的数据编辑器输入、修改和管理数据。 这里简单介绍如何从键盘输入数据,有关更详细的数据读入方式将在第三章中讲述。 一、从键盘输入数据 例1.1某实验得到如下数据 x 1 2 3 4 5 y 4 5.5 6.2 7.7 8.5 进入Stata后,操作过程如下,其中划线部分为操作者输入部分。 .inputxy x y 1.14 2.25.5 3.36.2 4.47.7 5.58.5 6.end 用list命令可以看到输入的数据。 .list x y 1. 1 4 2. 2 5.5 3. 3 6.2 4. 4 7.7 5. 5 8.5 二、保存数据 为了方便以后应用,输入Stata的数据应存盘。 如欲将上述数据存入d: \mydata\子目录中,文件名为ex1.dta,命令为: .saved: \mydata\ex1 filed: \temp\ex1replace.dtasaved 该指令在d: 盘的mydata子目录中建立了一个名为“ex1.dta”的Stata格式的数据文件。 后缀dta是Stata内定的数据格式文件。 该格式文件只能在Stata中用use命令打开: .used: \mydata\ex1 如目标盘及子目录中已有相同文件名的文件存在,则该命令将给出如下信息: filed: \mydata\ex1.dtaalreadyexists,告诉用户在该目标盘及子目录中已有相同的文件名存在。 如欲覆盖已有文件,则加选择项replace。 命令及结果如下: .saved: \mydata\ex1,replace filed: \temp\ex1.dtasaved 这样,Stata在d: 盘的mydata子目录中建立了一个名为“ex1.dta”的Stata格式数据文件,并替换了原有文件。 §1.5Stata的结果文件 Stata在屏幕上显示的运行结果有两种,一种是纯字符型的(如方差分析结果,回归分析结果等),一种是图形。 若要将操作过程和纯字符型结果记录下来,需事先打开一个log文件: .logusing文件名 设结果文件名为result1,则Stata自动加上后缀“.log”,亦可由用户自己加上其他后缀。 执行该指令后的所有操作指令和文字结果(除help下显示的结果)将记录在结果文件“result1.log”中。 若执行某一指令后的结果没有必要记录下来,则可事先用指令“logoff”暂停记录,需要记录时再用“logon”继续记录,最后用“logclose”关闭文件。 如果结果文件“result1.log”已经存在,用“logusingresult1”不能打开已有文件result1.log。 如要覆盖文件result1.log,则加选择项replace。 即键入: .logusingresult1,replace 如要在其后进行添加,则键入: .logusingresult1,append 文件“result1.log”可在EDIT、PE2、WPS或WORD等字处理软件下编辑、打印,也可在DOS下用type或print命令通过显示器浏览或打印机输出硬拷贝。 若要将图形结果打印下来,需要在绘图指令中加上“saving”选择项。 例如,画例1.1中x与y的散点图并存入文件“ex1.gph”,可用下述指令: .graphyx,c(l)saving(d: \mydata\ex1) 这时屏幕上显示y与x的散点图,并将被存入d: \mydata\子目录中,文件名为“ex1.gph”(gph是Stata内定的图形文件后缀,用户亦可自己定义后缀名)。 该图形可在Stata状态用“graphusingd: \mydata\ex1”重新显示在屏幕上,可在File的PrintGraph打印,也可用打印命令“gphdot”打印。 DOS版本的Stata可在DOS提示符下用“gphdot”命令打印: D: \MYDATA>gphdotex1.gph 更详细的内容见第五章。 §1.6 Stata的操作方式 Stata的操作有交互式操作和非交互式操作两种形式。 一、交互式操作 在Stata状态直接键入指令,每输入一个指令,Stata执行一个,这种方式称为交互式操作。 例1.2 用例1.1数据建立回归方程。 .useex1 .regyx 二、非交互式操作 若分析内容很多,有时甚至涉及到多个数据库,有几十个甚至成百个分析内容,若仍采取交互式操作,不仅要将许多时间花在等待运算结果上,而且容易漏掉一些主要的分析内容或做一些无益的重复劳动。 这时最好在EDIT,PE2,WORD等文字处理下将这些指令写入一个以“do”为扩展名的命令文件(文本格式,即ASCII码),并仔细核对分析内容、命令格式,直至组织数据文件的合理性等,修改好后再在Stata状态执行该命令文件。 例1.3 用非交互式操作对例1.1数据进行相关和回归分析。 第一步,在字处理软件下写入如下指令,并以文件名“ex1.do”存入磁盘d: \mydata\子目录中。 setmore1 /*指定结果窗口中,当输出结果满一屏后,不再显示--more--,直接显示下一屏 logusingd: \mydata\ex1.log /*打开结果文件ex1.log used: \mydata\ex1.dta /*调用数据文件d: \mydata\ex1.dta grayx,saving(d: \mydtata\ex1) /*作y与x的散点图,并存入d: \mydtata\ex1.gph coryx /*作y与x的相关 regyx /*作y与x的回归 logclose /*关闭结果文件ex1.log setmore0 /*指定结果窗口中,当输出结果满一屏后,显示--more--,直到按任意键后,再显示下一屏 第二步,在Stata状态键入: .dod: \mydtata\ex1.do Stata将首先打开一个名为“ex1.log”的结果文件,然后打开数据文件“ex1.dta”,画散点图并将图形存入文件“ex1.gph”,进行相关分析、回归分析,最后关闭结果文件。 此时,Stata执行这些命令是自动的,不间断的。 §1.7 Stata的帮助功能 Stata具有很强的帮助功能。 帮助功能的使用有两种方式。 一是在Stata状态,需要了解某个指令的格式和功能,这时只需键入help(或按功能键F1),然后空一格键入该指令即可。 例如,若需了解回归分析的指令格式,则: . helpregress 则可得到帮助。 二是利用菜单,在Stata的菜单上按Help,出现帮助窗口。 此时输入需要帮助的命令关键词,如regress,按OK即可得到帮助。 如需了解Stata的全部命令,可键入helpcontents,可得到Stata的全部命令及其简单解释;或在帮助窗口按Contents,则出现如下的帮助内容窗口。 在知道所要帮助的命令时,在命令窗口键入help加命令,即可获得帮助;在不知道所要帮助的命令时,用菜单操作更好。 Stata的常用命令见附录。 下面以多元线性回归命令为例,介绍Stata的命令的格式。 多元线性回归命令为regress,欲得到命令格式,键入helpregress即可得到: [byvarlist: ]regress[depvar[varlist1[(varlist2)]]] [weight][ifexp][inrange][,level(#) betahasconsnoconstantnoheadereform(string) depname(varname)mse1] 命令中,[]内为选择项,括号外为必选项。 这里介绍命令的公共选择部分,该命令的专用选择项将在相应章节作介绍。 1.byvarlist,是指定按变量varlist的取值逐一作多元线性回归。 如变量名为group,且取值为1,2,3,4,则“bygroup: ”是指定Stata分别按group=1,group=2,group=3和group=4的观察值分别作4个回归方程。 在选用该选择项前,要对变量排序,即先执行sort,如: .sortgroup 2.weight,是指本命令允许使用加权或频数,有[fw=频数变量]和[aw=加权变量]两种形式。 3.ifexp,用条件语句指定条件。 如,下列条件是合法的: ifgroup==1 /*对满足group=1条件的观察值进行分析 ifgroup>2 /*对满足group>2条件的观察值进行分析 ifgroup==1|group==2 /*对满足group=1或group=2条件的观察值进行分析 ifgroup~=3 /*对满足group不等于3条件的观察值进行分析 ifgroup==1&sex==0 /*对满足group=1,同时sex=0条件的观察值进行分析 4.inrange,指定观察值的范围,对在范围内的观察值作分析。 下列语句是合法的: in1/25 /*对观察值范围为1~25号的观察值作分析 in26/44 /*对观察值范围为26~44号的观察值作分析 in26/l /*对观察值范围为26~最后(last)的观察值作分析 in5/l /*对最后5个观察值进行分析 这些公共选择项在很多命令中都可选用,本书在介绍各命令时将省去这些公共选择项。 另外一个选择项,也可用于很多命令,它就是for。 例如,在作回归分析时,自变量为x1,x2,…,x22共22变量,而因变量有y1,y2,…,y10,z1,…,z5共15个变量。 欲分别建立每个因变量yi和zi与x1,x2,…,x22的回归,则需要写15个命令。 而用for选择项只需一个命令即可: fory1-y10z1-z5: regress@x1-x22 命令中,for后面的变量是选定的,regress是作回归分析,@是替换符,Stata自动用for语句指定的变量逐一替换作为因变量,而自变量为x1-x22。 又如, fory*: summ@,detail 表示,对以y字母开始的变量作详细的统计描述。 第一章数据输入,存盘和调用文件命令以及数据管理命令 本节 STATA命令摘要[[1]] 输入数据命令: 1)input 变量名1变量名2…变量名m (各变量数据之间用空格隔开,每行一个记录,最后以 end 表示结束) 2)infile 变量名1 变量名2 … 变量名m using 文件名 (该文件为文本文件,各变量数据之间用空格隔开,每行一个记录) 存盘命令: save [路径]文件名[,replace] (以STATA格式存盘,缺省扩展名为dta,replace表示覆盖同名同路径的文件;也可以在菜单File中选SAVEas或SAVE进行操作) outfile using [路径]文件名[,replace] (以文本格式存盘,缺省扩展名为raw,replace表示覆盖同名同路径的文件) 调用已存的STATA格式文件 use [路径]文件名[,clear] (也可以在菜单File中选open进行操作) 产生新变量 gen 新变量名=表达式 修改变量 值 replace 变量名=表达式 [in 范围][if 逻辑表达式] (变量的缺省值(miningdata)表达式为 . ) 在STATA软件中数据输入通常有三种方式: 键盘直接输入,从外部的文本文件(ASC码文件) 读入数据和在DOS环境下应用Transfer软件直接把Fox或其他格式存盘的文件转换成Stata软件格式的文件。 1、键盘输入方式: 命令格式: input 变量1 变量2 … 变量m 输入数据, 变量之间用空格,每个记录一行 当数据输完后,输入end 例: 应用克矽平治疗矽肺患者10名,治疗前后血红蛋白的含量如下(数据摘自金丕焕主编<医用统计方法>,pp37): 血红蛋白含量 治疗前 113 150 150 135 128 治疗后 140 138 140 135 135 治疗前 100 110 120 130 123 治疗后 120 147 114 138 120 在下列STATA操作中用变量x1和x2分别代表治疗前和治疗后。 STATA 数据输入操作命令: 1. 键盘直接输入 input x1x2 113 140 150 138 150 140 135 135 128 135 100 120 110 147 120 114 130 138 123 120 end 2. 调用外部文本数据文件 如果数据已经用其它软件(如: Foxbase)输入,并已以文本格式生成一个文本数据文件,并且满足上述每个记录一行和两个变量之间用空格分割的格式。 则用STATA命令: infile 变量1变量2… 变量m using[路径]文本数据文件名 如: 上例数据已以文本方式存在C: \user子目录中的文件ex1.txt,并满足每个记录一行和两个变量之间用空格分割的格式,则: STATA命令: infile x1x2usingc: \user\ex1.txt 以 STATA格式存盘 save ex1 以ex1.dta为文件名在当前目录中存盘。 (因为STATA格式的数据文件的缺省
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Stata 教程