stata使用手册Word下载.doc
《stata使用手册Word下载.doc》由会员分享,可在线阅读,更多相关《stata使用手册Word下载.doc(13页珍藏版)》请在冰点文库上搜索。
三、输入数据(Enteringdata)
在本小节中,我们将介绍如何把数据读进STATA。
但是在正式介绍之前,我们必须先对几个一般性的指令(generalcommand)有所了解,说明如下:
cd:
即changedirectory,简言之,告知STATA数据储存的地方。
例如当数据储存在e槽的sample数据夹时,则必须先输入cde:
\sample。
dir/ls:
用来显示目录的内容。
setmemory#m:
设定内存的容量。
例如:
当有一笔庞大的数据要处理时,则可设定100mb的容量,此时可输入setmemory100m。
(输入指令memory可以知道内存容量的大小以及使用情况。
)
setmatsize#:
设定所需的变量个数。
一般而言,不须对此部分进行设定,除非所欲处理的资料庞大或是当执行后出现matsizetoosmall的讯息时再进行修改即可。
内建为40。
setmoreoff/on:
若欲执行结果以分页的型式呈现时,则输入setmoreon;
若欲执行结果同时呈现时,则输入setmoreoff。
help:
求助键。
后面必须接的是指令。
说明如何使用该指令,例如:
helpregress。
search:
后面可接任何文字。
说明在何处可以找到该文字。
searchnormaldistribution。
clear:
清除键。
用来删除所有数据。
接下来,根据数据类型或指令的不同,数据输入的方法可分成以下四种:
1、输入EXCEL数据
将EXCEL的数据输入STATA的方式还可细分成以下两种:
将EXCEL的数据输入STATA之前,必须先将数据存成csv文件,再利用指令insheet来读数据。
Example:
当csv档的第一列有变量名称时:
cde:
\sample
dir
memory
setmemory10m
insheetusingsample1-1.csv
当csv档的第一列没有变量名称时:
insheetgenderidracesesschtypprgtypereadwritemathsciencesocstusingsample1-2.csv
直接复制EXCEL上的数据,再到STATA选取”Window”下的”DataEditor”,点选后会出现”StataEditor”工作表,再到”Edit”下选取”Paste”即可贴上数据。
2、输入ASCII的数据型态
依ASCII的数据型态区分,将ASCII的数据输入STATA的方式也有以下两种:
数据型态一:
见sample1-3.txt
infilegenderidracesesschtypstr10prgtypereadwritemathsciencesocstusingsample1-3.txt
记住文字的设定方式(str#variablename)。
数据型态二:
见sample1-4.txt
第二种的数据型态通常须要codebook。
如下表所示。
variablename
Columnnumber
id
1-2
eng
3-4
math
5-6
sex
7
micro
8-9
macro
10-11
infixid1-2eng3-4math5-6gender7micro8-9macro10-11usingsample1-4.txt
3、利用Do-fileeditor输入数据
将数据或是指令写入Do-fileeditor,再执行即可。
将下面数据复制并贴在Do-fileeditor(选取”Window”下的”Do-fileeditor”)上,再选择”docurrnetfile”执行即可。
inputidfemaleracesesstr3schtypeprogreadwritemathsciencesocst
147113pub14762535361
108012pub23433413636
18032pub35033494436
153012pub33931403951
50022pub25059425361
51121pub24236423139
102011pub15241515356
57112pub17165726656
160112pub15565555061
136012pub16559706351
end
4、利用STATA的数据型态输入
除了以上三种方法之外,还可以开启之前以STATA储存的资料。
usesample1-6.dta
此一指令亦可用在读取网络上的数据(use网址)。
最后,将数据输入的相关指令整理成下表。
insheet
readASCII(text)datacreatedbyaspreadsheet
infile
readunformattedASCII(text)data
infix
readASCII(text)datainfixedformat
input
enterdatafromkeyboard
use
loadaStata-formatdataset
四、探索资料(Exploringdata)
为了更详细地呈现出在数据探索时所需使用的相关指令,我们利用sample4-1来说明指令的用法。
首先,利用前节所提及的数据输入方法将sample4-1读进STATA。
在正式分析数据之前,我们可以利用一个log档来储存之后所要执行的指令以及所得到的结果。
指令的表示方法如下:
logusingresult4-1,text(log檔的名稱為result4-1)
接下来,我们可以先利用下面的指令来检视sample4-1的数据:
count:
可得样本数。
describe:
描述数据来源以及数据大小。
list:
依序列出观察值的各个变量值。
codebook:
描述资料的详细内容。
此外,我们就可以利用summarize、tabulate和tabstat等指令得到数据的叙述统计与基本特性。
表示如下:
summarize:
列出资料的叙述统计。
summarizewrite,detail
sumwriteifread>
=60(sum是summarize的简写)
sumwriteifprgtype=="
academic"
(接在if之后的句子中的”=”要放两个)
sumwritein1/40(只列出第1笔到第40笔资料)
tabulate:
列出变数的次数表。
tabulateprgtype
tabulateprgtyperace
tabulateprgtype,summarize(read)
tabulateprgtyperace,summarize(write)
tabstat:
列出变量的叙述统计。
tabstatreadwritemath,by(prgtype)stat(nmeansd)
tabstatwrite,stat(nmeansdp25p50p75)by(prgtype)
接下来,我们介绍一些用来划图的指令:
茎叶图:
stemwrite
stemwrite,lines
(2)
直方图:
graphwrite,bin(10)
graphwrite,histnormalbin(10)
箱形图:
graphwrite,box
sortprgtype(要先有这个指令才能执行下一个指令)
graphwrite,boxby(prgtype)
此外,利用correlate或是pwcorr可以得到相关矩阵;
亦可利用graph划出散布图。
correlatewritereadscience
pwcorrwritereadscience,obs
graphwriteread,twoway
graphwriteread,twojitter
(2)(two是twoway的簡稱,jitter是用來區分重疊的觀察點)
graphwriteread,twojitter
(2)box
graphreadsciencewrite,matrixhalf
现在我们可以将log文件结束了,指令输入如下:
logclose
若欲检视log档中的结果,可以输入指令:
typeresult4-1.log
或是到所储存的目录下点选。
最后,将数据探索的相关指令整理成下表。
count
Showthenumberofobservations
describe
Describecontentsofdatainmemoryorondisk
list
Listvaluesofvariables
codebook
Detailedcontentsofadataset
log
Createalogfile
summarize
Descriptivestatistics
tabulate
One-&
two-wayfrequencytables
tabstat
Tableofdescriptivestatistics
stem
Stem-and-leafplot
graph
Highresolutiongraphs
sort
Sortobservationsinadataset
hist
Histogramofacategoricalvariable
correlate
Correlations
pwcorr
Pairwisecorrelations
type
DisplayanASCIIfile
五、修饰资料(Modifyingdata)
在本小节中,我们亦利用sample4-1的数据进行说明。
首先,读进数据。
读完数据后,可以为此数据取个名称,指令如下:
labeldata"
HighSchoolandBeyond,200cases"
现在我们可以将变量的顺序作一排列。
原先的变量顺序为gender、id和race…,但是我们想把顺序改成id、gender和race…,则可以下面的指令来执行:
orderidgender
在执行codebook时,我们会发现有些变量尚未加上卷标(label),为了更清楚地表达变量所代表的意义,我们可以执行以下的指令:
labelvariableschtyp"
Thetypeofschoolthestudentattended."
现在,我们想要产生一个新变量total,此变量代表read、write和math的总和。
指令如下:
generatetotal=read+write+math
此外,若是我们想加总的分数是read、write和socst,而非read、write和math,此时的指令输入如下:
replacetotal=read+write+socst
另一方面,我们还可以将变量total表示成以等级(A、B、C、DandF)的形式。
generategrade=total
recodegrade0/80=080/110=1110/140=2140/170=3170/300=4
labeldefineabcdf0"
F"
1"
D"
2"
C"
3"
B"
4"
A"
labelvaluesgradeabcdf
为了记忆变量的意义为何,我们还可以利用note的方式来记录变量。
notesrace:
valuesofracecodedas5wererecodedtobemissing
notes(叫出note的指令)
另外,介绍一些利用公式来产生变量的指令。
egenzread=std(read)
summarizezread
listreadzreadin1/10
egenrmean=mean(read),by(ses)
listreadsesrmeanin1/10
egenmread=median(read),by(prog)
listreadprogmreadin1/10
最后,我们可以将以上的执行结果储存下来。
savesample5-1(存成另一個檔)
savesample4-1(取代原來的sample4-1)
现在亦将数据修饰的相关指令整理成下表。
labeldata
Applyalabeltoadataset
order
Orderthevariablesinadataset
labelvariable
Applyalabeltoavariable
generate
Createsanewvariable
replace
Replacesonevaluewithanothervalue
recode
Recodethevaluesofavariable
Labelvalues
Applyvaluelabelstoavariable
labeldefine
Defineasetofalabelsforthelevelsofacategoricalvariable
notes
Applynotestothedatafile
egen
Extendedgenerate-hasspecialfunctionsthatcanbeusedwhencreatinganewvariable
save
StorethedatasetcurrentlyinmemoryondiskinStatadataformat
六、管理数据(Managingdata)
在本节中,我们将进一步介绍如何将数据作一些特殊的处理,例如:
保留所欲分析的数据、删除多余的数据或是将两份数据结合等等。
假设我们只想针对部分的数据进行处理,而又想保留原始资料时,则有以下两种方法可进行:
1、另存新檔:
亦即将所欲分析的部分数据储存在另一个档案中。
我们只针对read成绩大于或是等于60分的学生进行分析,则可利用下面的指令来筛选。
keepifread>
=60
summarize
savesample6-1
当只要保留某些变量时,则利用指令keep。
keepreadwrite。
2、直接处理:
亦即在原始数据上进行分析。
承上例,指令输入如下:
preserve
dropifread<
60
restore
若要删除某些变量时,则利用指令drop。
dropreadwrite。
接下来,我们介绍如何将两笔数据结合在一起。
数据的结合主要可以分为两种,水平合并和垂直合并。
前者是指变量的增加;
后者则是指样本数的增加。
说明如下:
1、水平合并
usesampleh1
appendusingsampleh2
2、垂直合并:
usesamplev1
sortid
savesamplev1,replace
usesamplev2,clear
save,replace
mergeidusingsamplev2
在垂直合并前要记得先sort。
最后,我们将数据修饰的相关指令整理成下表。
keepif
Keepobservationsifconditionismet
dropif
Dropobservationsifconditionismet
keep
Keepvariables(droppingothers)
drop
Dropvariables(keepingothers)
appendusing
Appendadatafiletocurrentfile
Sortobservations
merge
Mergeadatafilewithcurrentfile
七、资料分析
透过前面几节的介绍,应该对于STATA的指令和使用方法有了基本的认识。
现在,我们开始说明如何利用STATA来处现统计上的问题以及计量方面的模型。
1、检定:
我们利用下面的例子来示范如何进行统计上的检定工作。
sample4-1:
ttestwrite=60
ttestwrite,by(gender)
ttestwrite,by(gender)unequal
sample7-1:
ttestbefore=after
2、回归
在执行回归分析时所使用的指令为regress。
usesample7-2
regressgrowthlnrlp84lnempoclnempcr4lnrdoc
另外,当存在heterogeneityofvariance的问题时,可在后面加上robust;
另外,若是不想放入截距项时,可在后面加上noconstant。
若欲得到残差值,可输入以下指令:
predicte,residual
3、二元选择模型
在执行二元选择模型时所使用的程序写法与执行回归分析时相同,只是所使用的指令不同。
在logit模型时为logit;
在progit模型时为progit。
clear
usesample7-3
logitocrlpemptotrlp2emptot2rlpemplnrd
lstat
logitocrlpemptotrlp2emptot2rlpemplnrd,or
probitocrlpemptotrlp2emptot2rlpemplnrd
dprobitocrlpemptotrlp2emptot2rlpemplnrd
4、Treatmenteffectmodel
原则上,STATA在处理计量模型时,格式上大都一致,亦即〝指令被解释变量解释变量〞的输入型式。
我们再举一个计量模型来说明,例如:
在有关自我选择的问题时,为了考虑内生性的情形,计量学家提出了一个Treatmenteffectmodel,其指令的撰写如下:
treatreggrowthlnrlp84lnempoclnemplnrdcr4,treat(oc=rlp84emptotrlp842emptot2rlpempcr4lnrd)
treatreggrowthlnrlp84lnempoclnemplnrdcr4,treat(oc=rlp84emptotrlp842emptot2rlpempcr4lnrd)two
由上述可知,STATA在使用上真的相当方便、容易,尤其对于初学者而言,更是一个相当值得推荐的软件包。
最后,整理一些STATA的相关网站以供参考:
http:
//www.ats.ucla.edu/stat/stata/default.htm
//www.princeton.edu/~erp/stata/main.html
13