stata使用手册.docx
《stata使用手册.docx》由会员分享,可在线阅读,更多相关《stata使用手册.docx(14页珍藏版)》请在冰豆网上搜索。
stata使用手册
STATA 基本入门
前言
STATA 是一个十分好用而且简单的统计软件包,透过轻松的数据输入方
式,而且简单的指令,即可执行一般在计量经济学上常用的计量模型。
除了计
量模型外,STATA 的软件包中也可执行统计学中的估计和检定,甚至是多变量
分析中的各项分析工具。
因此,STATA 可以说是一个相当强而有力的统计软件。
一、安装
STATA 所须的内存容量不大,只有 4.03MB。
此外,安装也相当简单,只
要在〝SETUP〞上点两下,安装完成后再分别输入”Sn”、”Code”和”Key”即可
开始使用。
但是安装过程中有一点必须注意的是,如下图所示,有”
Intercooled”和”Small”两个选项。
一般而言,为了方便日后要设定较大的内存容
量来处理大笔的资料,通常选择以”Intercooled”进行安装。
以此項進行安裝
二、窗口介绍
1
安装完成后,点选桌面上 STATA 的图标,窗口画面如下图所示。
为了使
画
面美观,我们可以将画面拉到自己喜欢的地方,如下图所示。
为了保存这个窗
口画面,我们必须点选工具列上的”Prefs”下的”Save Windowing Preferences”。
如此一来,以后开启 STATA 时都会以此窗口画面呈现。
2
執行過的
指令都會
保留於此
指令的執
行結果看
這裡
資料中
的變數
在這裡
在此輸
入指令
接下来,我们依序介绍四个窗口的功用:
左上─Review:
此一窗口用于记录在开启 STATA 后所执行过的所有指令。
因
此,若欲使用重复的指令时,只要在该指令上点选两下即可执
行相同的指令;若欲使用类似的指令时,在该指令上点一下,
该指令即会出现在窗口”Stata Command”上,再进行修改即可。
此外,STATA 还可以将执行过的指令储存下来,存在一个
do-file 内,下次即可再执行相同的指令。
左下─Variables:
此一窗口用于呈现某笔数据中的所有变量。
换言之,当数据
中的变量都有其名称时,变量名称将会出现在此一窗口中。
只要数据有读进 STATA 中,变量名称就会出现。
它的优点
是
(1)确认数据输入无误;
(2)只要在某变量上点选两下,该
变量即会出现在窗口”Stata Command”上。
右上─Stata Results:
此一窗口用于呈现并记录指令执行后的结果。
右下─Stata Command:
此一窗口用于输入所欲执行的指令。
Note:
以上四个窗口都可以从”Fonts”去更改字体大小。
三、输入数据(Entering data)
3
在本小节中,我们将介绍如何把数据读进 STATA。
但是在正式介绍之前,
我们必须先对几个一般性的指令(general command)有所了解,说明如下:
cd:
即 change directory,简言之,告知 STATA 数据储存的地方。
例如当
数据储存在 e 槽的 sample 数据夹时,则必须先输入 cd e:
\sample。
dir/ls:
用来显示目录的内容。
set memory #m:
设定内存的容量。
例如:
当有一笔庞大的数据要处理时,
则可设定 100mb 的容量,此时可输入 setmemory
100m。
(输入指令 memory 可以知道内存容量的大小
以及使用情况。
)
set matsize #:
设定所需的变量个数。
一般而言,不须对此部分进行设定,
除非所欲处理的资料庞大或是当执行后出现 matsizetoo
small 的讯息时再进行修改即可。
内建为 40。
set more off/on:
若欲执行结果以分页的型式呈现时,则输入 set more
on;若欲执行结果同时呈现时,则输入 set more off。
help:
求助键。
后面必须接的是指令。
说明如何使用该指令,例如:
help
regress。
search:
求助键。
后面可接任何文字。
说明在何处可以找到该文字。
例如:
search normal distribution。
clear:
清除键。
用来删除所有数据。
接下来,根据数据类型或指令的不同,数据输入的方法可分成以下四种:
1、输入 EXCEL 数据
将 EXCEL 的数据输入 STATA 的方式还可细分成以下两种:
①将 EXCEL 的数据输入 STATA 之前,必须先将数据存成 csv 文件,再利用
指令 insheet 来读数据。
Example:
❶当 csv 档的第一列有变量名称时:
cd e:
\sample
dir
memory
set memory 10m
insheet using sample1-1.csv
4
variable name
Column number
id
1-2
eng
3-4
math
5-6
sex
7
micro
8-9
macro
10-11
❷当 csv 档的第一列没有变量名称时:
insheet gender id race ses schtyp prgtype read write math
science socst using sample1-2.csv
②直接复制 EXCEL 上的数据,再到 STATA 选取”Window”下的”Data Editor”,
点选后会出现”Stata Editor”工作表,再到”Edit”下选取”Paste”即可贴上数据。
2、输入 ASCII 的数据型态
依 ASCII的数据型态区分,将 ASCII的数据输入 STATA 的方式也有以
下两种:
①数据型态一:
见 sample1-3.txt
infile gender id race ses schtyp str10 prgtype read write math
science socst using sample1-3.txt
Note:
记住文字的设定方式(str# variable name)。
②数据型态二:
见 sample1-4.txt
第二种的数据型态通常须要 codebook。
如下表所示。
infix id 1-2 eng 3-4 math 5-6 gender 7 micro 8-9 macro 10-11 using
sample1-4.txt
3、利用 Do-file editor 输入数据
5
insheet
read ASCII (text) data created by a spreadsheet
infile
read unformatted ASCII (text) data
infix
read ASCII (text) data in fixed format
input
enter data from keyboard
use
load a Stata-format dataset
将数据或是指令写入 Do-file editor,再执行即可。
例如:
将下面数
据复制并贴在 Do-file editor(选取”Window”下的”Do-file editor”)上,再
选择”do currnet file”执行即可。
cd e:
\sample
input id female race ses str3 schtype prog read write math science
socst
147 1 1 3 pub 1 47 62 53 53 61
108 0 1 2 pub 2 34 33 41 36 36
18 0 3 2 pub 3 50 33 49 44 36
153 0 1 2 pub 3 39 31 40 39 51
50 0 2 2 pub 2 50 59 42 53 61
51 1 2 1 pub 2 42 36 42 31 39
102 0 1 1 pub 1 52 41 51 53 56
57 1 1 2 pub 1 71 65 72 66 56
160 1 1 2 pub 1 55 65 55 50 61
136 0 1 2 pub 1 65 59 70 63 51
end
4、利用 STATA 的数据型态输入
除了以上三种方法之外,还可以开启之前以 STATA 储存的资料。
use sample1-6.dta
Note:
此一指令亦可用在读取网络上的数据(use 网址)。
最后,将数据输入的相关指令整理成下表。
四、探索资料(Exploring data)
为了更详细地呈现出在数据探索时所需使用的相关指令,我们利用
sample4-1 来说明指令的用法。
首先,利用前节所提及的数据输入方法将
sample4-1 读进 STATA。
6
在正式分析数据之前,我们可以利用一个 log 档来储存之后所要执行的指
令以及所得到的结果。
指令的表示方法如下:
log using result4-1, text(log 檔的名稱為 result4-1)
接下来,我们可以先利用下面的指令来检视 sample4-1 的数据:
count:
可得样本数。
describe:
描述数据来源以及数据大小。
list:
依序列出观察值的各个变量值。
codebook:
描述资料的详细内容。
此外,我们就可以利用 summarize、tabulate 和 tabstat 等指令得到数据
的叙述统计与基本特性。
表示如下:
summarize:
列出资料的叙述统计。
Example:
summarize write, detail
sum write if read>=60(sum 是 summarize 的简写)
sum write if prgtype=="academic"(接在 if 之后的句子中
的”=”要放两个)
sum write in 1/40(只列出第 1 笔到第 40 笔资料)
tabulate:
列出变数的次数表。
Example:
tabulate prgtype
tabulate prgtype race
tabulate prgtype, summarize(read)
tabulate prgtype race, summarize(write)
tabstat:
列出变量的叙述统计。
Example:
tabstat read write math, by(prgtype) stat(n mean sd)
tabstat write, stat(n mean sd p25 p50 p75) by(prgtype)
接下来,我们介绍一些用来划图的指令:
茎叶图:
stem write
stem write, lines
(2)
直方图:
graph write, bin(10)
graph write, hist normal bin(10)
7
count
Show the number of observations
describe
Describe contents of data in memory or on disk
list
List values of variables
codebook
Detailed contents of a dataset
log
Create a log file
summarize
Descriptive statistics
tabulate
One- & two-way frequency tables
tabstat
Table of descriptive statistics
stem
Stem-and-leaf plot
graph
High resolution graphs
sort
Sort observations in a dataset
hist
Histogram of a categorical variable
correlate
Correlations
箱形图:
graph write, box
sort prgtype(要先有这个指令才能执行下一个指令)
graph write, box by(prgtype)
此外,利用 correlate 或是 pwcorr 可以得到相关矩阵;亦可利用 graph
划出散布图。
correlate write read science
pwcorr write read science, obs
graph write read, twoway
graph write read, two jitter
(2)(two 是 twoway 的簡稱,jitter 是用來區分
重疊的觀察點)
graph write read, two jitter
(2) box
graph read science write, matrix half
现在我们可以将 log 文件结束了,指令输入如下:
log close
若欲检视 log 档中的结果,可以输入指令:
type result4-1.log
或是到所储存的目录下点选。
最后,将数据探索的相关指令整理成下表。
8
pwcorr
Pairwise correlations
type
Display an ASCII file
五、修饰资料(Modifying data)
在本小节中,我们亦利用 sample4-1 的数据进行说明。
首先,读进数据。
读完数据后,可以为此数据取个名称,指令如下:
label data "High School and Beyond, 200 cases"
现在我们可以将变量的顺序作一排列。
例如:
原先的变量顺序为
gender、id 和 race…,但是我们想把顺序改成 id、gender 和 race…,则可以
下面的指令来执行:
order id gender
在执行 codebook 时,我们会发现有些变量尚未加上卷标(label),为了
更清楚地表达变量所代表的意义,我们可以执行以下的指令:
label variable schtyp "The type of school the student attended."
现在,我们想要产生一个新变量 total,此变量代表 read、write 和 math
的总和。
指令如下:
generate total = read + write + math
此外,若是我们想加总的分数是 read、write 和 socst,而非
read、write 和 math,此时的指令输入如下:
replace total = read + write + socst
另一方面,我们还可以将变量 total 表示成以等级(A、B、C、D and F)
的形式。
指令如下:
generate grade = total
recode grade 0/80=0 80/110=1 110/140=2 140/170=3 170/300=4
label define abcdf 0 "F" 1 "D" 2 "C" 3 "B" 4 "A"
label values grade abcdf
9
label data
Apply a label to a data set
order
Order the variables in a data set
label variable
Apply a label to a variable
generate
Creates a new variable
replace
Replaces one value with another value
recode
Recode the values of a variable
Label values
Apply value labels to a variable
label define
Define a set of a labels for the levels of a categorical variable
notes
Apply notes to the data file
egen
Extended generate - has special functions that can be used
when creating a new variable
save
Store the dataset currently in memory on disk in Stata data
format
为了记忆变量的意义为何,我们还可以利用 note 的方式来记录变量。
指令如
下:
notes race:
values of race coded as 5 were recoded to be
missing
notes(叫出 note 的指令)
另外,介绍一些利用公式来产生变量的指令。
egen zread = std(read)
summarize zread
list read zread in 1/10
egen rmean = mean(read), by(ses)
list read ses rmean in 1/10
egen mread = median(read), by(prog)
list read prog mread in 1/10
最后,我们可以将以上的执行结果储存下来。
指令如下:
save sample5-1(存成另一個檔)
save sample4-1(取代原來的 sample4-1)
现在亦将数据修饰的相关指令整理成下表。
六、管理数据(Managing data)
10
在本节中,我们将进一步介绍如何将数据作一些特殊的处理,例如:
保留
所欲分析的数据、删除多余的数据或是将两份数据结合等等。
假设我们只想针对部分的数据进行处理,而又想保留原始资料时,则有以
下两种方法可进行:
1、另存新檔:
亦即将所欲分析的部分数据储存在另一个档案中。
例如:
我们只
针对 read 成绩大于或是等于 60 分的学生进行分析,则可利用
下面的指令来筛选。
keep if read >= 60
summarize
save sample6-1
Note:
当只要保留某些变量时,则利用指令 keep。
例如:
keep read write。
2、直接处理:
亦即在原始数据上进行分析。
承上例,指令输入如下:
preserve
drop if read < 60
summarize
restore
Note:
若要删除某些变量时,则利用指令 drop。
例如:
drop read write。
接下来,我们介绍如何将两笔数据结合在一起。
数据的结合主要可以分为
两种,水平合并和垂直合并。
前者是指变量的增加;后者则是指样本数的增加。
说明如下:
1、水平合并
use sampleh1
append using sampleh2
2、垂直合并:
use samplev1
sort id
save samplev1, replace
use samplev2, clear
sort id
save , replace
use samplev1
merge id using samplev2
11
keep if
Keep observations if condition is met
drop if
Drop observations if condition is met
keep
Keep variables (dropping others)
drop
Drop variables (keeping others)
append using
Append a data file to current file
sort
Sort observations
merge
Merge a data file with current file
Note:
在垂直合并前要记得先 sort。
最后,我们将数据修饰的相关指令整理成下表。
七、资料分析
透过前面几节的介绍,应该对于 STATA 的指令和使用方法有了基本的认
识。
现在,我们开始说明如何利用 STATA 来处现统计上的问题以及计量方面
的模型。
1、检定:
我们利用下面的例子来示范如何进行统计上的检定工作。
sample4-1:
ttest write =60
ttest write, by (gender)
ttest write, by (gender) unequal
sample7-1:
ttest before= after
2、回归
在执行回归分析时所使用的指令为 regress。
cd e:
\sample
use sample7-2
regress growth lnrlp84 lnemp oclnemp cr4 lnrd oc
另外,当存在 heterogeneityofvariance 的问题时,可在后面加上
robust;另外,若是不想放入截距项时,可在后面加上 noconstant。
若欲得
到残差值,可输入以下指令:
predict e , residual
12
3、二元选择模型
在执行二元选择模型时所使用的程序写法与执行回归分析时相同,只是所
使用的指令不同。
在 logit 模型时为 logit;在 progit 模型时为 progit。
clear
use sample7-3
logit oc rlp emptot rlp2 emptot2 rlpemp lnrd
lstat
logit oc rlp emptot rlp2 emptot2 rlpemp lnrd,or
probit oc rlp emptot rlp2 emptot2 rlpemp lnrd
lstat
dprobit oc rlp emptot rlp2 emptot2 rlpemp lnrd
4、Treatment effect model
原则上,STATA 在处理计量模型时,格式上大都一致,亦即〝指令 被解
释变量 解释变量〞的输入型式。
我们再举一个计量模型来说明,例如:
在有关
自我选择的问题时,为了考虑内生性的情形,计量学家提出了一个 Treatment
effect model,其指令的撰写如下:
clear
use sample7-2
treatreg growth lnrlp84 lnemp oclnemp lnrd cr4,treat(oc= rlp84
emptotrlp842 emptot2 rlpemp cr4 lnrd)
treatreg growth lnrlp84 lnemp oclnemp lnrd cr4,treat(oc= rlp84
emptotrlp842 emptot2 rlpemp cr4 lnrd)two
由上述可知,STATA 在使用上真的相当方便、容易,尤其对于初学者而
言,更是一个相当值得推荐的软件包。
最后,整理一些 STATA 的相关网站以
供参考:
http:
//www.ats.ucla.edu/stat/stata/default.htm