? 对变量和观测值的操作
sort gsort order aorder move generate replace egen drop keep _n _N scalar scalar list scalar drop display
按一个或多个变量的数据由小到大排序
按一个或多个变量的数据由大到小或由小到大排序 移动一个或多个变量的位置
移动一个或多个变量的位置并按它们的名称排序 移动一个变量的位置 生成新变量 取代旧变量 用某些函数生成变量 删除变量或者观察值 保留变量或观察值 样本序号变量 样本容量 生成新标量
显示当前存储的所有标量的内容 删除当前存储的标量 显示标量内容
bysort varlist1 [(varlist2)] [, rc0] : stata_cmd
将样本按照类别变量由小到大排序,根据该类别变量将样本分组,再执行stata指令。 by varlist1 [(varlist2)] [, sort rc0]: stata_cmd
样本以按照类别变量由小到大排序,现根据该类别变量将样本分组,再执行stata指令。 例子:
use Canada, clear generate gap=flife-mlife
label variable gap “female-male gap life expectancy” list place flife mlife gap format gap %4.1f list
replace pop=pop*1000 generate type=1
replace type=2 if place==”Yukon”|place==”Northwest Territories” replace type=3 if place==”Canada” list
label variable type ”Province, territory or nation” label values type typelbl
label define typelbl 1 ”Province” 2 ”Territory” 3 ”Nation” list
egen mgap=mean(gap)
11
egen rmgap=rmean(gap) list mgap rmgap drop mgap rmgap
generate gpop=(pop-pop[_n-1])/pop[_n-1] list gpop
generate lpop=(pop[_n]-pop[_N])/pop[_N] list lpop
? 设定数据的子集
command in range 例子:
list in 10 (any command may be substituted for list) list in 1/20 list in 20/l
(lowercase el at end of range)
list in f/10 (f means the same as 1) list in -4/l (lowercase el at end of range) command if exp Comparison operators
> >= == < <= != Logical operators
& (且) ! (否) | (或) ~ (否) 例子:
list if unemp>15 drop in 6 drop in 10/12
drop if place==”canada”|pop<100 keep place pop unemp save canada0
(等于) (不等于)
逻辑运算符 比较运算符
5. 统计描述、制图与输出结果
? 描述统计
? describe:描述数据文件的基本结构。 ? list:列出每个观察值
12
? summarize:概括了观测值个数、平均值、标准差、最大值和最小值五个指标。如
果设定detail选项,则还给出方差、偏度、峰度和各个分位数等指标。
use canada,clear list describe summarize format pop %6.2f sum pop, format sum pop unemp, detail
? codebook:计算变量的基本统计量。当一个变量中的非重复值小于9个时,Stata
便会视此变量为类别变量,并列表统计。
sysuse auto, clear codebook price weight codebook rep78
? inspec:计算变量的基本统计量。进一步绘制出直方图,以便对样本的分布有更直
观的了解。
inspect price weight length
? tabstat:表格形式的统计描述,其选项包括:
by(varname):对变量varname的所有类别分别进行描述统计;
statistics(statname):设定需要的统计量,statname包括mean、median、count(观测值个数)、sum、max、min等;
columns(variables|statistics):variables表示列按变量排序,statistics表示列按统计量排序;
casewise:表示根据共同的样本区间计算统计指标。
例1:利用世界各国2004年的GDP、教育等数据,计算各国及低、中、高收入国家的GDP和教育的均值、中位数、标准差、偏度和峰度。
use hdi, clear
tabstat Educ GDP, statistics(mean median sd skewness kurtosis) ///
by(LMH_income) format(.2f)
tabstat Educ GDP, statistics(mean median sd skewness kurtosis) ///
by(LMH_income) format(.2f) col(s)
例2:根据某工厂前3个月5次采购原材料的数量和单价,计算其平均价格。 use wmean, clear
tabstat price [fweight=quant], stats(mean)
? tabulate:分类变量的统计描述。分类变量只代表观测值所属的类别,不代表其他
含义。因此,对分类变量的描述统计是观察其不同类别的频数或百分数。
13
? 单个分类变量的汇总:
use hdi, clear
tabulate LMH_income, plot
? 两个分类变量的列联表:列联表是考察两个分类变量相关关系的方法,给
出了从属于两个分类变量不同类别的观测值频数以及相关测度指标。设两个分类变量分别有r、c个类别,则列联表共有r×c个单元格。 tabulate LMH_income LMH_hdi
tabulate LMH_income LMH_hdi, summarize(GDP) means
table LMH_income LMH_hdi, contents(mean GDP) // 自行查阅table
? cumul:经验分布函数是对变量累积分布函数的估计。
cumul GDP, generate(cdf_gdp) scatter cdf_gdp GDP
? 制图
在Stata中,用户几乎可以任意控制图形的形式、大小、颜色等各个方面,绘制的图形可以非常精细。与此同时,用户需要设定非常多的选项,因此会感觉有些烦琐。为此,我们此处介绍画图的一些基本指令,同时可以在简单生成的图形上进行修改和调整以达到更好的效果。大家应该在应用中摸索总结更精美的制图方案。
? 基本结构
[gragh] [twoway] plot [if] [in] [, twoway_options]
其中,plot可以有以下形式
(plottype1 varlist1 spec1 [, option1]) (plottype2 varlist2 spec2 [, option2]) …
或者
plottype1 varlist1 spec1 [, option1] || plottype2 varlist2 spec2 [, option2] || …
可见,一个总图中可以包含多个单元图,总图具有自己的选项,适用于所有单元图;各个单元图也有自己的选项,适用于该单元图。
例子:
use frontier, clear gen lny=ln(valueadd)
twoway (scatter lny lnk) (lfit lny lnk), /// title(\图1:产出与资本关系图\ /// xtitle(\资本\ /// ytitle(\产出\ /// ylabel(3 (3) 9) ymtick(##5) /// legend(label(1 \散点\拟合值\ /// note(\资料来源:Greene教材,frontier.dta\ ///
14
caption(\说明:讲义例子\ ///
saving(mypig.gph, replace)
生成图形之后,从File下拉菜单中选择Start Gragh Editior或者直接点击图形编辑器的图标
,图形便呈现如下的可编辑状态。用户可以通过所提示的有关图形大小、图例、
标题、文字等进行调整。
? 基本图形
? 散点图
twoway scatter varlist [if] [in] [weight] [, options]
varlist的形式是:y1 [y2 …] x,表示横轴为x变量,而纵轴为y1、y2… ? 连线图
twoway line varlist [if] [in] [weight] [, options] twoway connect varlist [if] [in] [weight] [, options] ? 阴影图
twoway area yvar xvart [if] [in] [weight] [, options]
? 柱状、钉状、针状、点状只需将上述area分别改为bar、spike、dropline、
dot。 ? 直方图
histogram varname [if] [in] [weight] [, [continuous_opts | discrete_opts]
15