当前位置:文档之家› (完整word版)stata命令语句.docx

(完整word版)stata命令语句.docx

(完整word版)stata命令语句.docx
(完整word版)stata命令语句.docx

stata学习心得(网络版存盘)

2009-03-25 18:06

调整变量格式:

format x1 %10.3f——将 x1的列宽固定为10,小数点后取三位

format x1 %10.3g——将x1的列宽固定为10,有效数字取三位

format x1 %10.3e——将x1的列宽固定为10,采用科学计数法

format x1 %10.3fc——将x1的列宽固定为10,小数点后取三位,加入千分位分隔符

format x1 %10.3gc——将x1的列宽固定为10,有效数字取三位,加入千分位分隔符

format x1 %-10.3gc——将x1的列宽固定为10,有效数字取三位,加入千分位分隔符,加入“- ”表示左对齐

合并数据:

桌面 \2006.dta", clear

桌面 \1999.dta"

——将 1999 和 2006 的数据按照样本(observation)排列的自然顺序合并起来

桌面 \2006.dta", clear

桌面 \1999.dta" ,unique sort

——将 1999 和 2006 的数据按照唯一的(unique )变量 id 来合并,在合并时对id 进行排序( sort )

建议采用第一种方法。

对样本进行随机筛选:

sample 50

在观测案例中随机选取50%的样本,其余删除

在观测案例中随机选取50 个样本,其余删除

查看与编辑数据:

browse x1 x2 if x3>3(按所列变量与条件打开数据查看器)

edit x1 x2 if x3>3(按所列变量与条件打开数据编辑器)

数据合并( merge)与扩展( append)

merge 表示样本量不变,但增加了一些新变量;append 表示样本总量增加了,但变量数目不变。one-to-one merge:

数据源自stata tutorial中的exampw1和exampw2

第一步:将exampw1按 v001 ~ v003 这三个编码排序,并建立临时数据库tempw1

clear

use "t:\statatut\exampw1.dta"

su—— summarize 的简写sort v001 v002 v003

save tempw1

第二步:对exampw2做同样的处理

clear

use "t:\statatut\exampw2.dta"

su

sort v001 v002 v003

save tempw2

第三步:使用tempw1 数据库,将其与tempw2 合并:

clear

merge v001 v002 v003 using tempw2

第四步:查看合并后的数据状况:

ta _merge——tabulate _merge的简写

su

第五步:清理临时数据库,并删除_merge,以免日后合并新变量时出错

erase tempw1.dta

erase tempw2.dta

drop _merge

数据扩展append:

数据源自stata tutorial中的fac19和newfac

clear

use "t:\statatut\fac19.dta"

ta region

append using "t:\statatut\newfac"

ta region

合并后样本量增加,但变量数不变

茎叶图:

stem x1,line(2)(做x1的茎叶图,每一个十分位的树茎都被拆分成两段来显示,前半段为0~ 4,后半段为5~ 9)

stem x1,width(2)(做x1的茎叶图,每一个十分位的树茎都被拆分成五段来显示,每个小树茎的组

stem x1,round(100)(将x1除以100后再做x1的茎叶图)

直方图

采用 auto 数据库

histogram mpg, discrete frequency normal xlabel(1(1)5)

(discrete表示变量不连续,frequency表示显示频数,normal加入正太分布曲线,xlabel设定x轴,1和5为极端值, (1) 为单位)

histogram price, fraction norm

(fraction表示y轴显示小数,除了frequency和fraction这两个选择之外,该命令可替换为“ percent”百分比,和“ density ”密度;未加上discrete就表示将price当作连续变量来绘图)

histogram price, percent by(foreign)

(按照变量“ foreign ”的分类,将不同类样本的“price ”绘制出来,两个图分左右排布)

histogram mpg, discrete by(foreign, col(1))

(按照变量“ foreign ”的分类,将不同类样本的“mpg”绘制出来,两个图分上下排布)

histogram mpg, discrete percent by(foreign, total) norm

(按照变量“ foreign ”的分类,将不同类样本的“mpg”绘制出来,同时绘出样本整体的“总”直方图)

二变量图:

graph twoway lfit price weight || scatter price weight

(作出 price和weight的回归线图——“ lfit”,然后与price和weight的散点图相叠加)

twoway scatter price weight,mlabel(make)

(做 price和weight的散点图,并在每个点上标注“make”,即厂商的取值)

twoway scatter price weight || lfit price weight,by(foreign)

(按照变量foreign的分类,分别对不同类样本的price和weight做散点图和回归线图的叠加,两图呈左右分

布)

twoway scatter price weight || lfit price weight,by(foreign,col(1))

(按照变量foreign的分类,分别对不同类样本的price和weight做散点图和回归线图的叠加,两图呈上下分

布)

twoway scatter price weight [fweight= displacement],msymbol(oh)

(画出 price和weight的散点图,“ msybol(oh)”表示每个点均为中空的圆圈,[fweight=displacement]表示每个点的大小与displacement的取值大小成比例)

twoway connected y1 time,yaxis(1) || y2 time,yaxis(2)

(画出 y1 和 y2 这两个变量的时间点线图,并将它们叠加在一个图中,左边“yaxis(1) ”为y1 的度量,右边“yaxis(2) ”为y2 的)

twoway line y1 time,yaxis(1) || y2 time,yaxis(2)

(与上图基本相同,就是没有点,只显示曲线)

graph twoway scatter var1 var4 || scatter var2 var4 || scatter var3 var4

(做三个点图的叠加)

graph twoway line var1 var4 || line var2 var4 || line var3 var4

(做三个线图的叠加)

graph twoway connected var1 var4 || connected var2 var4 || connected var3 var4

(叠加三个点线相连图)

更多变量:

graph matrix a b c y

(画出一个散点图矩阵,显示各变量之间所有可能的两两相互散点图)

graph matrix a b c d,half

(生成散点图矩阵,只显示下半部分的三角形区域)

用 auto 数据集:

graph matrix price mpg weight length,half by(foreign,total col(1) )

(根据 foreign变量的不同类型绘制price等四个变量的散点图矩阵,要求绘出总图,并上下排列】=具)

其他图形:

graph box y,over(x) yline(.22)

(对应 x 的每一个取值构建y 的箱型图,并在y 轴的 0.22 处划一条水平线)

graph bar (mean) y,over(x)

对应 x 的每一个取值,显示y 的平均数的条形图。括号中的“mean”也可换成median 、 sum、sd 、 p25、 p75 等graph bar a1 a2,over(b) stack

(对应在 b 的每一个取值,显示a1 和 a2 的条形图, a1 和 a2 是叠放成一根条形柱。若不写入“stack ”,则a1和 a2 显示为两个并排的条形柱)

graph dot (median)y,over(x)

(画点图,沿着水平刻度,在x 的每一个取值水平所对应的y 的中位数上打点)

qnorm x

(画出一幅分位- 正态标绘图)

rchart a1 a2 a2

(画出质量控制R 图,显示a1 到 a3 的取值范围)

简单统计量的计算:

ameans x

(计算变量x 的算术平均值、几何平均值和简单调和平均值,均显示样本量和置信区间)

mean var1 [pweight = var2]

(求取分组数据的平均值和标准误,var1 为各组的赋值,var2 为每组的频数)

summarize y x1 x2,detail

(可以获得各个变量的百分比数、最大最小值、样本量、平均数、标准差、方差、峰度、偏度)

*** 注意 ***

stata中summarize所计算出来的峰度skewness 和偏度 kurtosis有问题,与ECELL和SPSS有较大差异,建议不采用 stata的结果。

summarize var1 [aweight = var2], detail

(求取分组数据的统计量,var1 为各组的赋值,var2 为每组的频数)

tabstat X1,stats(mean n q max min sd var cv)

(计算变量X1 的算术平均值、样本量、四分位线、最大最小值、标准差、方差和变异系数)

概率分布的计算:

(1 )贝努利概率分布测试:

webuse quick

bitest quick==0.3,detail

(假设每次得到成功案例‘1’的概率等于0.3 ,计算在变量quick 所显示的二项分布情况下,各种累计概率和单个概率是多少)

bitesti 10,3,0.5,detail

(计算当每次成功的概率为0.5 时,十次抽样中抽到三次成功案例的概率:低于或高于三次成功的累计概率和恰

好三次成功概率)

(2 )泊松分布概率:

display poisson(7,6)

.44971106

(计算均值为7 ,成功案例小于等于 6 个的泊松概率)

display poissonp(7,6)

.14900278

(计算均值为7 ,成功案例恰好等于 6 个的泊松概率)

display poissontail(7,6)

.69929172

(计算均值为7 ,成功案例大于等于 6 个的泊松概率)

(3 )超几何分布概率:

display hypergeometricp(10,3,4,2)

.3

(计算在样本总量为10,成功案例为 3 的样本总体中,不重置地抽取 4 个样本,其中恰好有 2 个为成功案例的概率)

display hypergeometric(10,3,4,2)

.96666667

(计算在样本总量为10,成功案例为 3 的样本总体中,不重置地抽取 4 个样本,其中有小于或等于 2 个为成功案例的概率)

检验极端值的步骤:

常见命令: tabulate、stem、codebook、summarize、list、histogram、graph box、gragh matrix

step1. 用 codebook 、 summarize 、 histogram 、 graph boxs、graph matrix、stem看检验数据的总体情况:codebook y x1 x2

summarize y x1 x2,detail

histogram x1,norm(正态直方图)

graph box x1(箱图)

graph matrix y x1 x2,half(画出各个变量的两两x-y 图)

stem x1 (做 x1 的茎叶图)

可以看出数据分布状况,尤其是最大、最小值

step2. 用 tabulate、list细致寻找极端值

tabulate code if x1==极端值(作出x1 等于极端值时code 的频数分布表,code 表示地区、年份等序列变量,这样便可找出那些地区的数值出现了错误)

list code if x1==极端值(直接列出x1 等于极端值时code 的值,当x1 的错误过多时,不建议使用该命令)

list in -20/l(l表示last one,-20表示倒数第20 个样本,该命令列出了从倒数第20 个到倒数第一个样本的各变量值)

step3. 用 replace命令替换极端值

replace x1=? if x1==极端值

去除极端值:

keep if y<1000

drop if y>1000

对数据排序:

sort x

gsort +x

(对数据按x 进行升序排列)

gsort -x

(对数据按x 进行降序排列)

gsort -x, generate(id) mfirst

(对数据按x 进行降序排列,缺失值排最前,生成反映位次的变量id )

对变量进行排序:

order y x3 x1 x2

(将变量按照y 、x3 、 x1 、 x2 的顺序排列)

生成新变量:

gen logx1=log(x1)(得出x1的对数)

gen x1`=exp(logx1)(将logx1反对数化)

gen r61_100=1 if rank>=61&rank<=100 (若 rank 在 61 与 100 之间,则新变量r61_100 的取值为1,其他为缺失值)

replace r61_100 if r61_100!=1(“!=”表示不等于,若r61_100 取值不为 1,则将 r61_100 替换为 0 ,就是将上式中的缺失值替换为0)

gen abs(x)(取x的绝对值)

gen ceil(x)(取大于或等于x 的最小整数)

gen trunc(x)(取x的整数部分)

gen round(x)(对x进行四舍五入)

gen round(x,y)(以y为单位,对x 进行四舍五入)

gen sqrt(x)(取x的平方根)

gen mod(x,y)(取x/y的余数)

gen reldif(x,y)(取x与y的相对差异,即|x-y|/(|y|+1))

gen logit(x)(取ln[x/(1-x)])

gen x=autocode(x,n,xmin,xmax)(将x的值域,即xmax-xmin ,分为等距的n 份)

gen x=cond(x1>x2,x1,x2)(若x1>x2成立,则取x1 ,若 x1>x2 不成立,则取x2 )

sort x

gen gx=group(n)(将经过排序的变量x 分为尽量等规模的n 个组)

egen zx1=std(x1) (得出 x1的标准值,就是用 (x1-avgx1)/sdx1 )

egen zx1=std(x1),m(0) s(1)(得出 x1 的标准分,标准分的平均值为0,标准差为 1 )

egen sdx1=sd(x1)(得出x1的标准差)

egen meanx1=mean(x1) (得出 x1 的平均值)

egen maxx1=max(x1) (最大值)

egen minx1=min(x1)(最小值)

egen medx1=med(x1) (中数)

egen modex1=mode(x1) (众数)

egen totalx1=total(x1)(得出x1的总数)

egen rowsd=sd(x1 x2 x3)(得出 x1、 x2和 x3 联合的标准差)

egen rowmean=mean(x1 x2 x3) (得出 x1、 x2 和 x3 联合的平均值)

egen rowmax=max(x1 x2 x3)(联合最大值)

egen rowmin=min(x1 x2 x3)(联合最小值)

egen rowmed=med(x1 x2 x3)(联合中数)

egen rowmode=mode(x1 x2 x3)(联合众数)

egen rowtotal=total(x1 x2 x3)(联合总数)

egen xrank=rank(x)(在不改变变量x 各个值排序的情况下,获得反映x 值大小排序的xrank )数据计算器 display命令:

display x[12](显示 x 的第十二个观察值)

display chi2(n,x)(自由度为 n 的累计卡方分布)

display chi2tail(n,x)(自由度为 n 的反向累计卡方分布,chi2tail(n,x)=1-chi2(n,x))display invchi2(n,p)(卡方分布的逆运算,若chi2(n,x)=p,那么 invchi2(n,p)=x)

display invchi2tail(n,p)(chi2tail的逆运算)

display F(n1,n2,f)(分子、分母自由度分别为n1 和 n2 的累计 F 分布)

display Ftail(n1,n2,f)(分子、分母自由度分别为n1 和 n2 的反向累计 F 分布)

display invF(n1,n2,P)(F 分布的逆运算,若F(n1,n2,f)=p,那么 invF(n1,n2,p)=f)display invFtail(n1,n2,p)(Ftail的逆运算)

display tden(n,t)(自由度为n 的 t 分布)

display ttail(n,t)(自由度为n 的反向累计t 分布)

display invttail(n,p)(ttail的逆运算)

给数据库和变量做标记:

label data "~~~"(对现用的数据库做标记,"~~~" 就是标记,可自行填写)

label variable x "~~~"(对变量 x 做标记)

label values x label1(赋予变量 x 一组标签 :label1 )

label define label1 1 "a1" 2 "a2"(定义标签的具体内容:当x=1 时,标记为a1,当 x=2 时,标记为a2)频数表:

tabulate x1,sort

tab1 x1-x7,sort(做x1到x7的频数表,并按照频数以降序显示行)

table c1,c(n x1 mean x1 sd x1)(在分类变量c1 的不同水平上列出x1 的样本量和平均值)

二维交互表:

auto 数据库:

table rep78 foreign, c(n mpg mean mpg sd mpg median mpg) center row col

(rep78 ,foreign均为分类变量,rep78 为行变量, foreign为列变量,center表示结果显示在单元格中间,row 表示计算行变量整体的统计量,col表示计算列变量整体的统计量)

tabulate x1 x2,all

(做 x1 和 x2 的二维交互表,要求显示独立性检验chi2 、似然比卡方独立性检验lrchi2、对定序变量适用的等

级相关系数gamma和 taub 、以及对名义变量适用的V)

tabulate x1 x2,column chi2 (做 x1 和 x2 的二维交互表,要求显示列百分比和行变量和列变量的独立性检验——

零假设为变量之间独立无统计关系)

tab2 x1-x7,all nofreq(对x1到x7这七个变量两两地做二维交互表,不显示频数:nofreq )

三维交互表:

by x3,sort:tabulate x1 x2,nofreq col chi2(同时进行x3 的每一个取值内的x1 和 x2 的二维交互表,不显示

频数、显示列百分比和独立性检验)

四维交互表:

table x1 x2 x3,c(ferq mean x1 mean x2 mean x3) by(x4)

tabstat X1 X2,by(X3) stats(mean n q max min sd var cv) col(stats)

tabstat X1 X2,by(X3) stats(mean range q sd var cv p5 p95 median),[aw=X4](以X4为权重求X1、X2 的均值,标准差、方差等)

ttest X1=1

count if X1==0

count if X1>=0

gen X2=1 if X1>=0

corr x1 x2 x3(做x1、x2、x3的相关系数表)

swilk x1 x2 x3(用Shapiro-Wilk W test对x1、x2、x3进行正太性分析)

sktest x1 x2 x3(对x1、x2、x3进行正太性分析,可以求出峰度和偏度)

ttest x1=x2(对x1、x2的均值是否相等进行T 检验)

ttest x1,by(x2) unequal(按x2的分组方式对x1 进行 T 检验,假设方差不齐性)

sdtest x1=x2(方差齐性检验)

sdtest x1,by(x2)(按x2的分组方式对x1 进行方差齐性检验)

聚分析:

cluster kmeans y x1 x2 x3, k(3)

——依据y、 x1 、x2 、 x3 ,将本分n ,聚的核随机取

cluster kmeans y x1 x2 x3, k(3) measure(L1) start(everykth)

—— "start"用于确定聚的核,"everykth"表示将通构造三本得聚核:构造方法将本id 1 、1+3、1+3×2、1+3×3??分一、将本id2、2+3、2+3×2、2+3×3??分第二,以此推,将三

的均作聚的核;"measure" 用于算相似性和相异性的方法,"L1" 表示采用欧式距离的,也直接

可采用欧式距离(L2)和欧式距离的平方(L2squared )。 PS:个方法所得的果与SPSS所得果相同。

sort c1 c2(c1和c2两个分量排序)

by c1 c2:reg y x1 x2 x3(在c1、c2的各个水平上分行回)

bysort c1 c2:reg y x1 x2 x3 if c3=1(逗号前面相当于将上面两步合一,既排序又回,逗号后面的“if

c3=1”表示只有在c3=1 的情况下才行回)

stepwise, pr(.2): reg y x1 x2 x3(使用 Backward selection,去除 P 大于 0.2量 )

stepwise, pe(.2): reg y x1 x2 x3(使用 forward selection,去除 P小于 0.2量 )

stepwise, pr(.2) pe(.01):reg y x1 x2 x3(使用 backward-stepwise selection,取 P 在 0.01 和 0.2之的量)

stepwise, pe(.2) forward: reg y x1 x2 x3(使用 forward-stepwise selection)

reg y x1 x2 x3

predict Yhat,xb

predict u,resid

predict ustd,stdr(得残差的准)

predict std,stdp(得y估的准)

predict stdf,stdf(得y的准)

predict e,e(1,12)(得y在1到12之的估)

predict p,pr(1,12)(得y在1到12之的概率)

predict rstu,rstudent(得student的t)

predict lerg,leverage(得杠杆)

predict ckd,cooksd(得cooksd)

reg y x1 x2 x3 c1 c2

adjust x1 x2 x3,se(使得量x1、 x2 和 x3 等于其均,求y 的和准)

adjust x1 x2 x3,stdf ci(使得量x1、 x2 和 x3 等于其均,求y 的,准和置信区)

adjust x1 x2,by(c1) se ci(控制量x1 、x2 ,亦即取它的均,在分量c1 的不同水平上求y ,

准和置信区)

adjust x1 x2 x3,by(c1) stdf ci(控制量x1 、x2 、 x3 ,亦即取它的均,在分量c1 的不同水平上求y,准和置信区)

adjust x1 x2,by(c1 c2) se ci(控制量x1 、 x2,在分量c1 、 c2 的不同水平上求y 的,准和

置信区)

adjust x1 x2 x3,by(c1 c2) stdf ci(控制量x1 、 x2、 x3 ,在分量c1 、 c2 的不同水平上求y 的,

准和置信区)

adjust x1=a x2=b x3=c,se ci (当 x1=a、 x2=b 、x3=c ,求 y 的、准和置信区)

adjust x1=a x2=b x3=c,by(c1) se ci(当 x1=a、 x2=b、 x3=c ,在分量c1 的不同水平上,求y 的

、准和置信区)

adjust x1=a x2=b c1=1,by(c1) se ci(当 x1=a、 x2=b,并假所有的本均c1=1,求在分量c1 的不同水平上,因量x3 的均不同,而致的y 的不同的??)

mvreg Y1 Y2 ??: X1 X2 X3 ??(多元回)

mvreg y1 y2 y3: x1 x3 x3(多元回分析,y1 y2 y3因量,x1 x3 x3自量)

以下命令只有在行了mvreg 之后才能行

test [y1] (y1 的回系数合0)

test [y1]: x1 x2( y1 的回中x1、x2 的系数0)

test x1 x2 x3(在所有的回中,x1 、x2 、 x3 的系数均0)

test [y1=y2](y1的回和y2 的回系数相等)

test [y1=y2]: x1 x2 x3, mtest(y1和y2的回中,分x1 、x2 、 x3 的系数是否相等,若没有mtest 个命令,他的和)

test [y1=y2=y3](三个回的系数是否相等,可加mtest 以分)

test [y1=y2=y3]: x1 x2(三个回中的x1、 x2 是否相等,可加mtest )

est 命令的用法:

(1 )存回果:

reg y x1 x2 x3(不限于reg ,也可存ivreg 、 mvreg 、reg3 )

est store A

(2 )重回果:

est replay A

(3 )回果行一步分析

est for A:sum(A回果中的各个量运行sum 命令)

异方差:

得健性准

reg y x1 x2 x3 if c1==1(当分量c1=1 ,行y 和 x 的回)

reg y x1 x2 x3,robust(回后示各个自量的异方差- 健性准)estat vif(回之后得VIF )

estat hettest,mtest(异方差)

异方差的套路:

( 1 ) Breusch-pagan 法:

reg y x1 x2 x3

predict u,resid

gen usq=u^2

reg usq x1 x2 x3

求 F

display R/(1-R)*n2/n1(n1表示分子除数,n2 表示分母除数)display Ftail(??)

求 LM

display R*n(n表示本量)

display chi2tail(??)

( 2 ) white 法:

reg y x1 x2 x3

predict u,resid

gen usq=u^2

predict y

gen ysq=y^2

reg usq y ysq

求 F

display R/(1-R)*n2/n1(n1表示分子除数,n2 表示分母除数)

display Ftail(??)

求 LM

display R*n(n表示本量)

display chi2tail(??)

(3 )必要充

F 和 LM P 的命令:

display Ftail(n1,n2,a)(利用 F 求p , n1 表示分子除数,n2 表示分母除数,a F )display chi2tail(n3,b)(利用LM求p , n3 表示自由度的失量,一般等于n1, b LM)异方差的正——WLS(weighted least square estimator)

(1 )基本思路:

reg y x1 x2 x3 [aw=x1](将x1作异方差的来源,方程行修正)

上式相当于:

reg y/(x1^0.5) 1/(x1^0.5) x1/(x1^0.5) x2/(x1^0.5) x3/(x1^0.5),noconstant

(2 )正异方差的常用套路(构造h )

reg y x1 x2 x3

predict u,resid

gen usq=u^2

gen logusq=log(usq)

reg logusq x1 x2 x3

predict g

gen h=exp(g)

reg y x1 x2 x3 [aw=1/h]

异方差 hausman 检验:

reg y x1 x2 x3

est store A(将上述回归结果储存到 A 中)

reg y x1 x2 x3 [aw=1/h]

est store B

hausman A B

当因变量为对数形式时(log(y))如何预测y

reg logy x1 x2 x3

predict k

gen m=exp(k)

reg y m,noconstant

m的系数为i

y 的预测值 =i ×exp(k)

方差分析:

一元方差分析

anova y g1 / g1|g2 /(g*表示不同分类变量,计算g1 和交互项 / g1|g2 /这两种分类的y 值是否存在组内差异)anova y d1 d2 d1*d2(d*表示虚拟变量,计算d1、 d2 和 d1*d2 的这三种分类的y 值是否有组内差异)

anova y d1 d2 x1 d2*x1, continuous(x1)(x*表示连续的控制变量)

多元方差分析

webuse jaw

manova y1 y2 y3 = gender fracture gender*fracture(按性别、是否骨折及二者的交互项对y1 、y2 和 y3 进行方差分析)

相关主题
文本预览
相关文档 最新文档