Stata教程Word下载.docx
《Stata教程Word下载.docx》由会员分享,可在线阅读,更多相关《Stata教程Word下载.docx(60页珍藏版)》请在冰豆网上搜索。
![Stata教程Word下载.docx](https://file1.bdocx.com/fileroot1/2022-12/6/ea9e60ac-2b74-4575-bfc6-60aa74e5bb6e/ea9e60ac-2b74-4575-bfc6-60aa74e5bb6e1.gif)
这些图形的巧妙应用,可以满足绝大多数用户的统计作图要求。
在有些非绘图命令中,也提供了专门绘制某种图形的功能,如在生存分析中,提供了绘制生存曲线图,回归分析中提供了残差图等。
详见第五章。
四、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<
n循环,j表示产生的第j个Poisson分布随机数
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<
lamda0
localn0=`i’-1
/*n0=i-1
locali=-1
/*i=-1
}
locali=`i’+1
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,
二、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
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
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.dtaalreadyexists,告诉用户在该目标盘及子目录中已有相同的文件名存在。
如欲覆盖已有文件,则加选择项replace。
命令及结果如下:
\mydata\ex1,replace
\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”命令打印:
\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:
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
[路径]文件名[,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
135
128
治疗后
140
138
100
110
120
130
123
147
114
在下列STATA操作中用变量x1和x2分别代表治疗前和治疗后。
STATA
数据输入操作命令:
1.
键盘直接输入
x1x2
113
140
150
138
135
135
128
100
120
110
147
120
114
130
123
2.
调用外部文本数据文件
如果数据已经用其它软件(如:
Foxbase)输入,并已以文本格式生成一个文本数据文件,并且满足上述每个记录一行和两个变量之间用空格分割的格式。
则用STATA命令:
infile
变量1变量2…
变量m
using[路径]文本数据文件名
如:
上例数据已以文本方式存在C:
\user子目录中的文件ex1.txt,并满足每个记录一行和两个变量之间用空格分割的格式,则:
STATA命令:
x1x2usingc:
\user\ex1.txt
以
STATA格式存盘
ex1
以ex1.dta为文件名在当前目录中存盘。
(因为STATA格式的数据文件的缺省