搜档网
当前位置:搜档网 › stata高统命令笔记

stata高统命令笔记

stata高统命令笔记
stata高统命令笔记

调整变量格式:

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,有效数字取三位,加入千分位分隔符,加入“-”表示左对齐

合并数据:

use "C:\Documents and Settings\xks\桌面\2006.dta", clear

merge using "C:\Documents and Settings\xks\桌面\1999.dta"

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

use "C:\Documents and Settings\xks\桌面\2006.dta", clear

merge id using "C:\Documents and Settings\xks\桌面\1999.dta" ,unique sort

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

建议采用第一种方法。

对样本进行随机筛选:

sample 50

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

sample 50,count

在观测案例中随机选取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

use tempw1

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的茎叶图,每一个十分位的树茎都被拆分成五段来显示,每个小树茎的组距为2)

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……分为一组、将样本id为2、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进行方差分析)

manova y1 = gender fracture gender*fracture(相当于一元方差分析,以y1为因变量)

————————————

webuse nobetween

gen mycons = 1

manova test1 test2 test3 = mycons, noconstant

mat c = (1,0,-1 \ 0,1,-1)

manovatest mycons, ytransform(c)

进行多元回归的方法:

多元回归分析:(与mvreg相同)

foreach vname in y1 y2 y3 { (确定y变量组vname)

reg `vname' x1 x2 x3 (将y变量组中的各个变量与诸x变量进行回归分析,注意vname 的标点符号)

}

上式等价于:

mvreg y1 y2 y3 = x1 x2 x3

reg3命令:

(1)简单用法:

reg3 (y1 = x1 x2 x3) (y2 = x1 x3 x4) (y3 = x1 x2 x5)

测试y1 coefs = 0

test [y1]

测试不同回归中相同变量的系数:

test [y1=y2=y3], common

test ([y1=y2]) ([y1=y3]), common constant(constant表示包含截距项)

(2)用reg3进行2SLS

reg3 (y1 = y2 x1 x2) (y2 = y1 x4),2sls

(2)用reg3进行OLS

reg3 (y1 = y2 x1 x2) (y2 = y1 x4),ols

对两个回归结果进行hausman检验:

reg3 (y1=x1 x2 x3)(y2=y1 x4),2sls

est store twosls

reg3 (y1=x1 x2 x3)(y2=y1 x4),ols

est store ols

hausman twosls ols,equations(1:1)(对两次回归中的方程1,即“y1=x1 x2 x3”进行hausman 检验)

hausman twosls ols,equations(2:2)(对两次回归中的方程2,即“y2=y1 x4”进行hausman 检验)

hausman twosls ols,alleqs(对所有方程一起进行检验)

检验忽略变量(模型的RESET):

reg y x1 x2 x3

estat ovtest

滞后变量的制取

对变量y滞后一期:

gen y_l1=y[_n-1]

滞后两期:

gen y_l2=y[_n-2]

以此类推。

制取样本序号:

gen id=_n

获得样本总量:

gen id=_N

时间序列回归:

回归元严格外生时AR(1)序列相关的检验

reg y x1 x2

predict u,resid

gen u_1=u[_n-1]

reg u u_1,noconstant

回归之后,u_1的序数如果不异于零,则该序列不相关

用Durbin-Watson Statistics检验序列相关:

tsset year @(对时间序列回归中代表时间的变量进行定义)@

reg y x1 x2

dwstat @(求出时间序列回归的DW值)@

durbina @(对该回归是否具有序列相关进行检验,H0为无序列相关,可根据chi2值求出P值)@

durbina,small @(small可以根据F值求出P值,以代替chi2值)@

durbina,force @(让检验能在robust、neway之后进行)@

durbina,small lag(1/10) @(lag可以求出更高阶滞后的序列相关,如本例中可求出1到10阶的序列相关)@

durbina,robust lag(1/10) @(robust可进行异方差—稳健性回归,避免未知形式的异方差)@

bgodfrey @(利用Breusch-Godfrey test求出高阶序列相关)@

bgodfrey,small lag(1/10)

数据调查:survey data

源数据:dataset文件夹中的svydata

步骤:

1、定义survey data

svyset psuid [pweight=finalwgt], strata(stratid)

——定义primary sampling unit为psuid。可能是测试的编号,1or2

——定义pweight为finalwgt

——定义stratum identifer为stratid。可能是测试中被试的编号,1to31

2、生成male

STATA最常用命令大全

stata save命令 FileSave As 例1. 表1.为某一降压药临床试验数据,试从键盘输入Stata,并保存为Stata格式文件。 STATA数据库的维护 排序 SORT 变量名1 变量名2 …… 变量更名 rename 原变量名新变量名 STATA数据库的维护 删除变量或记录 drop x1 x2 /* 删除变量x1和x2 drop x1-x5 /* 删除数据库中介于x1和x5间的所有变量(包括x1和x5) drop if x<0 /* 删去x1<0的所有记录 drop in 10/12 /* 删去第10~12个记录 drop if x==. /* 删去x为缺失值的所有记录 drop if x==.|y==. /* 删去x或y之一为缺失值的所有记录 drop if x==.&y==. /* 删去x和y同时为缺失值的所有记录 drop _all /* 删掉数据库中所有变量和数据 STATA的变量赋值 用generate产生新变量 generate 新变量=表达式 generate bh=_n /* 将数据库的内部编号赋给变量bh。 generate group=int((_n-1)/5)+1 /* 按当前数据库的顺序,依次产生5个1,5个2,5个3……。直到数据库结束。 generate block=mod(_n,6) /* 按当前数据库的顺序,依次产生1,2,3,4,5,0。generate y=log(x) if x>0 /* 产生新变量y,其值为所有x>0的对数值log(x),当x<=0时,用缺失值代替。 egen产生新变量 set obs 12 egen a=seq() /*产生1到N的自然数 egen b=seq(),b(3) /*产生一个序列,每个元素重复#次 egen c=seq(),to(4) /*产生多个序列,每个序列从1到# egen d=seq(),f(4)t(6) /*产生多个序列,每个序列从#1到#2 encode 字符变量名,gen(新数值变量名) 作用:将字符型变量转化为数值变量。 STATA数据库的维护 保留变量或记录 keep in 10/20 /* 保留第10~20个记录,其余记录删除 keep x1-x5 /* 保留数据库中介于x1和x5间的所有变量(包括x1和x5),其余变量删除keep if x>0 /* 保留x>0的所有记录,其余记录删除

stata命令总结

stata11常用命令 注:JB统计量对应的p大于0.05,则表明非正态,这点跟sktest和swilk 检验刚好相反; dta为数据文件; gph为图文件; do为程序文件; 注意stata要区别大小写; 不得用作用户变量名: _all _n _N _skip _b _coef _cons _pi _pred _rc _weight double float long int in if using with 命令: 读入数据一种方式 input x y 1 4 2 5.5 3 6.2 4 7.7 5 8.5 end su/summarise/sum x 或 su/summarise/sum x,d 对分组的描述: sort group by group:su x %%%%% tabstat economy,stats(max) %返回变量economy的最大值 %%stats括号里可以是:mean,count(非缺失观测值个数),sum(总和),max,min,range, %% sd,var,cv(变易系数=标准差/均值),skewness,kurtosis,median,p1(1%分位 %% 数,类似地有p10, p25, p50, p75, p95, p99),iqr(interquantile range = p75 – p25) _all %描述全部 _N 数据库中观察值的总个数。 _n 当前观察值的位置。 _pi 圆周率π的数值。 list gen/generate %产生数列 egen wagemax=max(wage) clear use by(分组变量)

stata常见问题及解决办法个人总结笔记

1. 如何输出STATA的图,和保存? 先输入数据 (1)Twoway connected 变量1 变量2 //划出折线图 (2)twoway scatter 变量1 变量2 //划出散点图 2. 怎样在stata8中做HAUSMAN检验? 四步曲,重点在于解释结果 (1)xtreg y x , fe (2)est store fe (3)xtreg y x, re (4)hausman fe 如果拒绝,说明corr(x,ui)=0的假设是有问题的,需要重新设定RE model 后再进行检验,如果模型的设定没有问题,但检验还是拒绝原假设(p值接近0),那么就只能采用FE model 了,因为此时的RE 估计量是有偏的。 (definitely right. 当你使用stata的时候,最重要的命令不是这些是help and find it然后就能找到你的答案了) hausman检验是用来检验用fe还是re的,其原假设是re优于fe,从你的结果来看(Prob>chi2 =0.0000),应该拒绝原假设,所以应该用fe 3.stata里平方的命令怎么写? gen age=age^2 4. stata里边怎么取对数啊? gen lnx=log(x) 5.如何用STATA求自然对数?如说:ln(X^2)=-4.8536,如何求X啊? . dis sqrt(exp(-4.8536))或者dis exp(-4.8536/2) 6.关于hausman检验,结果是CHI2(2)=2355.81,prob>chi2=0.000,可以使用随机效应模型嘛? prob>chi2=0.000,is like p-value. we should reject the null, so fixed effect is preferred.Randome effect is not suggested. CHI2(2)=2355.81,就意味着拒绝原假设,从而选取固定效应模型。 7.我在做gdp一阶差分单位根检验的时候,输入的命令是ipshin dgdp,lags(1)得

Stata命令整理教学内容

Stata 命令语句格式: [by varlist:] command [varlist] [=exp] [if exp] [in range] [weight] [, options] 1、[by varlist:] *如果需要分别知道国产车和进口车的价格和重量,可以采用分类操作来求得, sort foreign //按国产车和进口车排序 . by foreign: sum price weight *更简略的方式是把两个命令用一个组合命令来写。 . by foreign, sort: sum price weight 如果不想从小到大排序,而是从大到小排序,其命令为gsort。 . sort - price //按价格从高到低排序 . sort foreign -price /*先把国产车都排在前,进口车排在后面,然后在国产车内再按价格从大小到排序,在进口车内部,也按从大到小排序*/ 2、[=exp]赋值运算 . gen nprice=price+10 //生成新变量nprice,其值为price+10 /*上面的命令generate(略写为gen) 生成一个新的变量,新变量的变量名为 nprice,新的价格在原价格的基础上均增加了10 元。 . replace nprice=nprice-10 /*命令replace 则直接改变原变量的赋值,nprice 调减后与price 变量取值相等*/ 3、[if exp]条件表达式 . list make price if foreign==0 *只查看价格超过1 万元的进口车(同时满足两个条件),则 . list make price if foreign==1 & price>10000 *查看价格超过1 万元或者进口车(两个条件任满足一个) . list make price if foreign==1 | price>10000 4、[in range]范围筛选 sum price in 1/5 注意“1/5”中,斜杠不是除号,而是从1 到 5 的意思,即1,2,3,4,5。 如果要计算前10 台车中的国产车的平均价格,则可将范围和条件筛选联合使用。 . sum price in 1/10 if foreign==0 5、[weight] 加权 sum score [weight=num] 其中,num为每个成绩所对应的人数 6、[, options]其他可选项 例如,我们不仅要计算平均成绩,还想知道成绩的中值,方差,偏度和峰度等*/ . sum score, detail . sum score, d //d 为detail 的略写,两个命令完全等价 . list price, nohead //不要表头 Stata 数据类型转换 1、字符型转化成数值型 destring, replace //全部转换为数值型,replace 表示将原来的变量(值)更新 destring date, replace ignore(“ ”) 将字符型数据转换为数值型数据:去掉字符间的空格destring price percent, gen(price2 percent2) ignore(“$ ,%”) 与date 变量类似,变量price 前面有美元符号,变量percent 后有百分号,换为数值型时需要忽略这些非数值型字符 2、数值型转化为字符型

(完整)stata命令总结,推荐文档

stata11 常用命令 注:JB统计量对应的p大于0.05 ,则表明非正态,这点跟sktest 和 swilk 检验刚好相反;dta 为数据文件;gph 为图文件;do 为程序文件;注 意stata 要区别大小写;不得用作用户变量名: _all _n _N _skip _b _coef _cons _pi _pred _rc _weight double float long int in if using with 命令:读入数据一种方式 input x y 14 2 5.5 3 6.2 47.7 58.5 end su/summarise/sum x 或su/summarise/sum x,d 对分组的描述: sort group by group:su x %%%%% tabstat economy,stats(max)%返回变量economy的最大值 %%stats括号里可以是:mean,count(非缺失观测值个数),sum(总 和),max,min,range , %% sd ,var ,cv(变易系数=标准差/ 均值),skewness,kurtosis , median,p1(1 %分位 %% 数,类似地有p10, p25, p50, p75, p95, p99),iqr(interquantile range = p75 –p25) _all %描述全部 _N 数据库中观察值的总个数。 _n 当前观察值的位置。 _pi 圆周率π 的数值。 list gen/generate % 产生数列egen wagemax=max(wage) clear use by(分组变量)

[推荐] stata基本操作汇总常用命令

[推荐] Stata基本操作汇总——常用命令 help和search都是查找帮助文件的命令,它们之间的 区别在于help用于查找精确的命令名,而search是模糊查找。 如果你知道某个命令的名字,并且想知道它的具体使用方法,只须在stata的命令行窗口中输入help空格加上这个名字。回车后结果屏幕上就会显示出这个命令的帮助文件的全部 内容。如果你想知道在stata下做某个估计或某种计算,而 不知道具体该如何实现,就需要用search命令了。使用的 方法和help类似,只须把准确的命令名改成某个关键词。回车后结果窗口会给出所有和这个关键词相关的帮助文件名 和链接列表。在列表中寻找最相关的内容,点击后在弹出的查看窗口中会给出相关的帮助文件。耐心寻找,反复实验,通常可以较快地找到你需要的内容.下面该正式处理数据了。我的处理数据经验是最好能用stata的do文件编辑器记下你做过的工作。因为很少有一项实证研究能够一次完成,所以,当你下次继续工作时。能够重复前面的工作是非常重要的。有时因为一些细小的不同,你会发现无法复制原先的结果了。这时如果有记录下以往工作的do文件将把你从地狱带到天堂。因为你不必一遍又一遍地试图重现做过的工作。在stata 窗口上部的工具栏中有个孤立的小按钮,把鼠标放上去会出

现“bring do-file editor to front”,点击它就会出现do文件编 辑器。 为了使do文件能够顺利工作,一般需要编辑do文件的“头”和“尾”。这里给出我使用的“头”和“尾”。capture clear (清空内存中的数据)capture log close (关闭所有 打开的日志文件)set more off (关闭more选项。如果打开该选项,那么结果分屏输出,即一次只输出一屏结果。你按空格键后再输出下一屏,直到全部输完。如果关闭则中间不停,一次全部输出。)set matsize 4000 (设置矩阵的最大阶数。我用的是不是太大了?)cd D: (进入数据所在的盘符和文件夹。和dos的命令行很相似。)log using (文件名).log,replace (打开日志文件,并更新。日志文件将记录下所有文件运行后给出的结果,如果你修改了文件内容,replace选项可以将其更新为最近运行的结果。)use (文件名),clear (打开数据文件。)(文件内容)log close (关闭日志文件。)exit,clear (退出并清空内存中的数据。) 实证工作中往往接触的是原始数据。这些数据没有经过整理,有一些错漏和不统一的地方。比如,对某个变量的缺失观察值,有时会用点,有时会用-9,-99等来表示。回归时如果 使用这些观察,往往得出非常错误的结果。还有,在不同的数据文件中,相同变量有时使用的变量名不同,会给合并数

stata常用命令

用help命令熟悉以下命令的功能: cd:(Change directory)改变stata的工作路径 用法:(cd changes the current working directory to the specified drive and directory.) ●指定全路径:cd e:\ ●指定相对路径(如果当前路径已经指向e:\那么下面命令将达到和上面全路 径命令同样效果): ●cd .. 返回上一级目录 dir:(Display filenames)显示当前目录下的文件信息 用法:(list the names of files in the specified,the names of the commands come from names popular on Unix and Windows,filespec may be any valid Mac, Unix, or Windows file path or file)工作列表文件中指定的名称目录,命令的名称来自名字流行的Unix和Windows文件规范可以是任何有效的Mac,Unix或Windows文件路径或文件。 . dir, w . dir *.dta . dir \mydata\*.dta List:(List values of variables)列出指定变量的取值 用法:(st displays the values of variables. If no varlist is specified, the values of all the variables are displayed)列表显示变量的值。如果没有指定varlist,所有的值显示的变量。list [varlist] [if] [in] [, options] . list in 1/10 . list mpg weight . list mpg weight in 1/20 . list if mpg>20 . list mpg weight if mpg>20 . list mpg weight if mpg>20 in 1/10 Describe:(Describe data in memory or in file)描述内存或者文件中的数 据(样本数、变量类型等信息) 用法:(describe produces a summary of the dataset in memory or of the data stored in a Stata-format dataset. For a compact listing of variable names, use describe, simple.) ●描述内存数据: ●描述文件数据:describe [varlist] using filename [, file_options] Use:(Load Stata dataset)调用数据,打开数据文件(以dta结尾)文 件名+.dta 数据读入stata 用法:(use loads into memory a Stata-format dataset previously saved by save. If filename is specified without an extension, .dta is assumed. If your

Stata软件基本操作和大数据分析报告入门

Stata软件基本操作和数据分析入门 第一讲 Stata操作入门 张文彤赵耐青 第一节概况 Stata最初由美国计算机资源中心(Computer Resource Center)研制,现在为Stata公司的产品,其最新版本为7.0版。它操作灵活、简单、易学易用,是一个非常有特色的统计分析软件,现在已越来越受到人们的重视和欢迎,并且和SAS、SPSS一起,被称为新的三大权威统计软件。 Stata最为突出的特点是短小精悍、功能强大,其最新的7.0版整个系统只有10M左右,但已经包含了全部的统计分析、数据管理和绘图等功能,尤其是他的统计分析功能极为全面,比起1G以上大小的SAS系统也毫不逊色。另外,由于Stata在分析时是将数据全部读入内存,在计算全部完成后才和磁盘交换数据,因此运算速度极快。 由于Stata的用户群始终定位于专业统计分析人员,因此他的操作方式也别具一格,在Windows席卷天下的时代,他一直坚持使用命令行/程序操作方式,拒不推出菜单操作系统。但是,Stata的命令语句极为简洁明快,而且在统计分析命令的设置上又非常有条理,它将相同类型的统计模型均归在同一个命令族下,而不同命令族又可以使用相同功能的选项,这使得用户学习时极易上手。更为令人叹服的是,Stata语句在简洁的同时又拥有着极高的灵活性,用户可以充分发挥自己的聪明才智,熟练应用各种技巧,真正做到随心所欲。

除了操作方式简洁外,Stata的用户接口在其他方面也做得非常简洁,数据格式简单,分析结果输出简洁明快,易于阅读,这一切都使得Stata成为非常适合于进行统计教学的统计软件。 Stata的另一个特点是他的许多高级统计模块均是编程人员用其宏语言写成的程序文件(ADO文件),这些文件可以自行修改、添加和下载。用户可随时到Stata网站寻找并下载最新的升级文件。事实上,Stata的这一特点使得他始终处于统计分析方法发展的最前沿,用户几乎总是能很快找到最新统计算法的Stata程序版本,而这也使得Stata自身成了几大统计软件中升级最多、最频繁的一个。 由于以上特点,Stata已经在科研、教育领域得到了广泛应用,WHO的研究人员现在也把Stata作为主要的统计分析工作软件。 第二节 Stata操作入门 一、Stata的界面 图1即为Stata 7.0启动后的界面,除了Windows版本的软件都有的菜单栏、工具栏,状态栏等外,Stata的界面主要是由四个窗口构成,分述如下: 1.结果窗口:位于界面右上部,软件运行中的所有信息,如所执行的命令、执行结果和出错信息等均在这里列出。窗口中会使用不同的颜色区分不同的文本,如白色表示命令,红色表示错误信息。 2.命令窗口:位于结果窗口下方,相当于DOS软件中的命令行,此处用于键入需要执行的命令,回车后即开始执行,相应的结果则会在结果窗口中显示出来。

第六章 stata语言中的常用函数

第六章stata语言中的常用函数 本章重点: Stata系统是一个统计分析系统,stata语言是实现stata系统功能的基础,因此它其中包括了各种各样的函数。在stata系统中,函数的自变量可以是一个常数,可以是一个变量,或者是一连串的变量。在调用这些函数的时候,只要将函数中定义中的这些变量替换为相应值即可。这一章,介绍一下这些函数的定义以及使用方法。 6.1函数概览 函数只不过是一些编号的小程序,它会按一定的规则进行处理,之后报告结果。实际上,谁也记不住这么多函数,因此,首先要学会查找函数的帮助,当记不住的时候,随时去查寻帮助。记住下面的命令才是最关键的。 . help function 弹出来的对话框告诉我们,STATA包括八类函数,分别是数学函数,分布函数,随机数函数,字符函数,程序函数,日期函数,时间序列函数和矩阵函数。本章主要介绍数学函数和字符函数,日期函数,随机函数等常用函数,其他函数可以参考stata 帮助功能。 6.2数学函数 Abs(x) x的绝对值

●Acos(x)反余弦函数 例如:arcos (0.5)=1.57 arcos(1)=0 ●Asin(x) 反正弦函数 ●Atan(x) 反正切函数 ●atanh(x) 反双曲正切函数 ●ceil(x) 返回大于或等于自变量的最小的整数。 例如:ceil(0.7)=1 ceil(3)=3 ceil(-0.7)=0 ●Floor(x) 返回小于或等于自变量的最大的整数 例如:floor(0.7)=0 floor(3)=3 floor(-0.7)=-1 ●Int(x) 返回自变量的整数部分 例如:int(0.7)=0 int(2.9)=2 int(-2.55)=-2 ●Round(x,y) 返回与y的单位最接近的数x,x为真数,y为近似单 位 例如:round(5.2,1)= round(4.8,1)=5 round(2.234,0.1)=2.2 round(2.234,0.01)=2.23 round(2.234,0.001)=2.234 round(28,5)=30 ●cloglog(x) 返回ln{-ln(1-x)}的值 ●comb(n,k) 从n中取k个的组合,即comb(n,k)=n!/{k!(n - k)!} 例如:comb(10,5)=252 comb(6,2)=15 ●cos(x) 余弦函数 ●digamma(x) 返回digamma函数值,这是lngamma(x)的一阶导数●exp(x) 指数函数

stata命令大全(全)

*********面板数据计量分析与软件实现********* 说明:以下do文件相当一部分内容来自于中山大学连玉君STATA教程,感谢他的贡献。本人做了一定的修改与筛选。 *----------面板数据模型 * 1.静态面板模型:FE 和RE * 2.模型选择:FE vs POLS, RE vs POLS, FE vs RE (pols混合最小二乘估计) * 3.异方差、序列相关和截面相关检验 * 4.动态面板模型(DID-GMM,SYS-GMM) * 5.面板随机前沿模型 * 6.面板协整分析(FMOLS,DOLS) *** 说明:1-5均用STATA软件实现, 6用GAUSS软件实现。 * 生产效率分析(尤其指TFP):数据包络分析(DEA)与随机前沿分析(SFA) *** 说明:DEA由DEAP2.1软件实现,SFA由Frontier4.1实现,尤其后者,侧重于比较C-D与Translog生产函数,一步法与两步法的区别。常应用于地区经济差异、FDI溢出效应(Spillovers Effect)、工业行业效率状况等。 * 空间计量分析:SLM模型与SEM模型 *说明:STATA与Matlab结合使用。常应用于空间溢出效应(R&D)、财政分权、地方政府公共行为等。 * --------------------------------- * --------一、常用的数据处理与作图----------- * --------------------------------- * 指定面板格式 xtset id year (id为截面名称,year为时间名称) xtdes /*数据特征*/ xtsum logy h /*数据统计特征*/ sum logy h /*数据统计特征*/ *添加标签或更改变量名 label var h "人力资本" rename h hum *排序 sort id year /*是以STATA面板数据格式出现*/ sort year id /*是以DEA格式出现*/ *删除个别年份或省份 drop if year<1992 drop if id==2 /*注意用==*/ *如何得到连续year或id编号(当完成上述操作时,year或id就不连续,为形成panel格式,需要用egen命令) egen year_new=group(year) xtset id year_new **保留变量或保留观测值 keep inv /*删除变量*/ **或 keep if year==2000 **排序 sort id year /*是以STATA面板数据格式出现 sort year id /*是以DEA格式出现 **长数据和宽数据的转换 *长>>>宽数据 reshape wide logy,i(id) j(year)

常用到的stata命令

常用到的sta命令 闲话不说了。help和search都是查找帮助文件的命令,它们之间的区别在于help用于查找精确的命令名,而search是模糊查找。如果你知道某个命令的名字,并且想知道它的具体使用方法,只须在sta的命令行窗口中输入help空格加上这个名字。回车后结果屏幕上就会显示出这个命令的帮助文件的全部内容。如果你想知道在sta下做某个估计或某种计算,而不知道具体该如何实现,就需要用search命令了。使用的方法和help类似,只须把准确的命令名改成某个关键词。回车后结果窗口会给出所有和这个关键词相关的帮助文件名和链接列表。在列表中寻找最相关的内容,点击后在弹出的查看窗口中会给出相关的帮助文件。耐心寻找,反复实验,通常可以较快地找到你需要的内容。 下面该正式处理数据了。我的处理数据经验是最好能用sta的do文件编辑器记下你做过的工作。因为很少有一项实证研究能够一次完成,所以,当你下次继续工作时。能够重复前面的工作是非常重要的。有时因为一些细小的不同,你会发现无法复制原先的结果了。这时如果有记录下以往工作的do文件将把你从地狱带到天堂。因为你不必一遍又一遍地试图重现做过的工作。在sta窗口上部的工具栏中有个孤立的小按钮,把鼠标放上去会出现“bring do-file editor to front”,点击它就会出现do文件编辑器。 为了使do文件能够顺利工作,一般需要编辑do文件的“头”和“尾”。这里给出我使用的“头”和“尾”。 /*(标签。简单记下文件的使命。)*/ capture clear(清空内存中的数据) capture log close(关闭所有打开的日志文件) set mem 128m(设置用于sta使用的内存容量) set more off(关闭more选项。如果打开该选项,那么结果分屏输出,即一次只输出一屏结果。你按空格键后再输出下一屏,直到全部输完。如果关闭则中间不停,一次全部输出。) set matsize4000(设置矩阵的最大阶数。我用的是不是太大了?)

stata常用命令模板

stata 常用命令 (2012-07-29 17:22:25) 转载▼ 分类:stata 标签: 杂谈 save命令 FileSave As 例1. 表1.为某一降压药临床试验数据,试从键盘输入Stata,并保存为Stata格式文件。STATA数据库的维护 排序 SORT 变量名1 变量名2 …… 变量更名 rename 原变量名新变量名 STATA数据库的维护 删除变量或记录 drop x1 x2 /* 删除变量x1和x2 drop x1-x5 /* 删除数据库中介于x1和x5间的所有变量(包括x1和x5) drop if x<0 /* 删去x1<0的所有记录 drop in 10/12 /* 删去第10~12个记录 drop if x==. /* 删去x为缺失值的所有记录 drop if x==.|y==. /* 删去x或y之一为缺失值的所有记录 drop if x==.&y==. /* 删去x和y同时为缺失值的所有记录 drop _all /* 删掉数据库中所有变量和数据 STATA的变量赋值 用generate产生新变量 generate 新变量=表达式 generate bh=_n /* 将数据库的内部编号赋给变量bh。 generate group=int((_n-1)/5)+1 /* 按当前数据库的顺序,依次产生5个1,5个2,5个 3……。直到数据库结束。 generate block=mod(_n,6) /* 按当前数据库的顺序,依次产生1,2,3,4,5,0。generate y=log(x) if x>0 /* 产生新变量y,其值为所有x>0的对数值log(x),当x<=0时,用缺失值代替。 egen产生新变量 set obs 12 egen a=seq() /*产生1到N的自然数 egen b=seq(),b(3) /*产生一个序列,每个元素重复#次 egen c=seq(),to(4) /*产生多个序列,每个序列从1到# egen d=seq(),f(4)t(6) /*产生多个序列,每个序列从#1到#2 encode 字符变量名,gen(新数值变量名) 作用:将字符型变量转化为数值变量。

Stata统计分析命令

Stata统计分析常用命令汇总 一、winsorize极端值处理 范围:一般在1%和99%分位做极端值处理,对于小于1%的数用1%的值赋值,对于大于99%的数用99%的值赋值。 1、Stata中的单变量极端值处理: stata 11.0,在命令窗口输入“findit winsor”后,系统弹出一个窗口,安装winsor模块 安装好模块之后,就可以调用winsor命令,命令格式:winsor var1, gen(new var) p(0.01) 或者在命令窗口中输入:ssc install winsor安装winsor命令。winsor命令不能进行批量处理。 2、批量进行winsorize极端值处理: 打开链接:https://www.sodocs.net/doc/5b12460584.html,/judson.caskey/data.html,找到winsorizeJ,点击右键,另存为到stata中的ado/plus/目录下即可。命令格式:winsorizeJ var1var2var3,suffix(w)即可,这样会生成三个新变量,var1w var2w var3w,而且默认的是上下1%winsorize。如果要修改分位点,则写成如下格式:winsorizeJ var 1 var2 var3,suffix(w) cuts(5 95)。 3、Excel中的极端值处理:(略) winsor2 命令使用说明 简介:winsor2 winsorize or trim (if trim option is specified) the variables in varlist at particular percentiles specified by option cuts(# #). In defult, new variables will be generated with a suffix "_w" or "_tr", which can be changed by specifying suffix() option. The replace option replaces the variables with their winsorized or trimmed ones. 相比于winsor命令的改进: (1) 可以批量处理多个变量; (2) 不仅可以winsor,也可以trimming; (3) 附加了by() 选项,可以分组winsor 或trimming; (4) 增加了replace 选项,可以不必生成新变量,直接替换原变量。 范例: *- winsor at (p1 p99), get new variable "wage_w" . sysuse nlsw88, clear . winsor2 wage *- left-trimming at 2th percentile . winsor2 wage, cuts(2 100) trim *- winsor variables by (industry south), overwrite the old variables . winsor2 wage hours, replace by(industry south) 使用方法: 1. 请将winsor 2.ado 和winsor2.sthlp 放置于stata12\ado\base\w 文件夹下; 2. 输入help winsor2 可以查看帮助文件;

Stata常用15条命令

【命令1】:导入数据 一般做实证分析使用的是excel中的数据,其后缀名为.xls,需要将其修改为.csv insheet using name.csv, clear 【命令2】:删除重复变量 sort var1 var2 duplicatesdrop var1 var2, force 【命令3】:合并数据 use data1, clear merge m:m var1 var2 using data2 drop if _merge==2 drop if _merge==1 drop _merge 【命令4】:描述性统计分析 tabstat var1var2, stat(n min mean median p25 p75 max sd), if groupvar==0 or 1 输出到word中: logout, save(name) word replace: tabstat var, stat(n min mean p50 max sd) col(stat)f(%9.2g) 【命令5】:结果输出 安装 ssc install estout, replace 单个回归 reg y x esttab using name.rtf, compress nogap r2 ar2 star(* 0.1 ** 0.05 *** 0.01) 多个回归一起 reg y x1 est store m1 reg y x2 est store m2 esttab m1 m2 using name.rtf, compress nogap r2 ar2 star(* 0.1 ** 0.05 *** 0.01)

STATA简介

进入词条搜索词条 欧冠 首页自然文化人物经济科学体育 百科消息: 百度百科“知识先锋”计划启动 免费试吃百度身边满汉全席你开宴 展望“十二五” 看亚运游广州--旅游大拼盘 百度百科权威合作

编辑本段 级统计部分 ) 都是用 Stata 自己的语言编写的 Stata 其统计分析能力远远超过了 SPSS ,在许多方面也超过了 SAS !由于 Stata 在分析时是将数据全部读入内存,在计算全部完成后才和磁盘交换数据,因此计算速度极快(一般来说, SAS 的运算速度要比 SPSS 至少快一个数量级,而 Stata 的某些模块和执行同样功能的 SAS 模块比,其速度又比 SAS 快将近一个数量级!) Stata 也是采用命令行方式来操作,但使用上远比 SAS 简单。其生存数据分析、纵向数据(重复测量数据)分析等模块的功能甚至超过了 SAS 。用 Stata 绘制的统计图形相当精美,很有特色。 STATA 的功能列表 数据管理 (Data management) 资料转换、分组处理、附加档案、 ODBC 、行 - 列转换、数据标记、字符串函数…等 基本统计 (Basic statistics) 直交表、相关性、 t- 检定、变异数相等性检定、比例检定、信赖区间…等 线性模式 (Linear models) 稳健 Huber/White/sandwich 变异估计 , 三阶最小平方法、类非相关回归、齐次多项式回归、 GLS 广义型线性模式 (Generalized linear models) 十连结函数、使用者 - 定义连结、 ML 及 IRLS 估计、 九变异数估计、七残差…等 二元、计数及有限应变量 (Binary, count, and limited dependent variables) 罗吉斯特、 probit 、卜松回归、 tobit 、 truncated 回归、条件罗吉斯特、多项式逻辑、巢状逻辑、负二项、 zero-inflated 模型、 Heckman 选择模式、边际影响 Panel 数据 / 交叉 - 组合时间序列 (Panel data/cross-sectional time-series) 随机及固定影响之回归、 GEE 、随机及固定 - 影响之 卜松及负二项分配、随机 - 影响、工具变量回归、 AR(1) 干扰回归 无母数方法 (Nonparametric methods) 多变量方法 (Multivariate methods) 因素分析、多变量回归、 anonical 相关系数 模型检定及事后估计量支持分析 (Model testing and post-estimation support) Wald 检定、 LR 检定、 线性及非线性组合、非线性限制检定、边际影响、修正平均数 Hausman 检定 群集分析 (Cluster analysis) 加权平均 , 质量中心及中位数联结、 kmeans 、 kmedians 、 dendrograms 、停止规则、使用者扩充 图形 (Graphics) 直线图、散布图、条状图、圆饼图、 hi-lo 图、 回归诊断图… 调查方法 (Survey methods) 抽样权重、丛集抽样、分层、线性变异数估计量、拟 - 概似最大估计量、回归、工具变量… 生存分析 (Survival analysis) Kaplan – Meier 、 Nelson – Aalen, 、 Cox 回归 ( 弱性 ) 、参数模式 ( 弱性 ) 、危险比例测试、时间共变项

常用到的stata命令

安装estat: ssc install estout,replace\ 2010-10-14 11:38:15来自: 杨囡囡(all a woman lack is a wife) (转自人大论坛) 调整变量格式: 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,有效数字取三位,加入千分位分隔符,加入“-”表示左对齐 合并数据: use "C:\Documents and Settings\xks\桌面\2006.dta", clear merge using "C:\Documents and Settings\xks\桌面\1999.dta" ——将1999和2006的数据按照样本(observation)排列的自然顺序合并起来 use "C:\Documents and Settings\xks\桌面\2006.dta", clear merge id using "C:\Documents and Settings\xks\桌面\1999.dta" ,unique sort ——将1999和2006的数据按照唯一的(unique)变量id来合并,在合并时对id进行排序(sort) 建议采用第一种方法。 对样本进行随机筛选: sample 50 在观测案例中随机选取50%的样本,其余删除 sample 50,count 在观测案例中随机选取50个样本,其余删除 查看与编辑数据:

stata常用命令

面板数据估计 首先对面板数据进行声明: 前面是截面单元,后面是时间标识: tsset company year tsset industry year 产生新的变量:gen newvar=human*lnrd 产生滞后变量Gen fiscal(2)=L2.fiscal 产生差分变量Gen fiscal(D)=D.fiscal 描述性统计: xtdes :对Panel Data截面个数、时间跨度的整体描述 Xtsum:分组内、组间和样本整体计算各个变量的基本统计量 xttab 采用列表的方式显示某个变量的分布 Stata中用于估计面板模型的主要命令:xtreg xtreg depvar [varlist] [if exp] , model_type [level(#) ] Model type 模型 be Between-effects estimator fe Fixed-effects estimator re GLS Random-effects estimator pa GEE population-averaged estimator mle Maximum-likelihood Random-effects estimator 主要估计方法: xtreg: Fixed-, between- and random-effects, and population-averaged linear models xtregar:Fixed- and random-effects linear models with an AR(1) disturbance xtpcse :OLS or Prais-Winsten models with panel-corrected standard errors xtrchh :Hildreth-Houck random coefficients models

stata回归分析完整步骤-吐血推荐

stata回归分析完整步骤——吐血推荐 ****下载连乘函数prod,方法为:findit dm71 sort stkcd date //对公司和日期排序 gen r1=1+r //r为实际公司的股票收益率 gen r2=1+r_yq //r_yq为公司的预期股票收益率 egen r3=prod(r1),by(stkcd date) //求每个公司事件日的累计复合收益率 egen r4=prod(r2),by(stkcd date) //求每个公司事件日的累计预期的复合收益率 gen r=r4-r3 capture clear (清空内存中的数据) capture log close (关闭所有打开的日志文件) set mem 128m (设置用于stata使用的内存容量) set more off (关闭more选项。如果打开该选项,那么结果分屏输出,即一次只输出一屏结果。你按空格键后再输出下一屏,直到全部输完。如果关闭则中间不停,一次全部输出。)set matsize 4000 (设置矩阵的最大阶数。我用的是不是太大了?) cd D: (进入数据所在的盘符和文件夹。和dos的命令行很相似。) log using (文件名).log,replace (打开日志文件,并更新。日志文件将记录下所有文件运行后给出的结果,如果你修改了文件内容,replace选项可以将其更新为最近运行的结果。) use (文件名),clear (打开数据文件。) (文件内容) log close (关闭日志文件。) exit,clear (退出并清空内存中的数据。) 假设你清楚地知道所需的变量,现在要做的是检查数据、生成必要的数据并形成数据库供将来使用。检查数据的重要命令包括codebook,su,ta,des和list。其中,codebook提供的信息最全面,缺点是不能使用if条件限制范围,所以,有时还要用别的帮帮忙。su空格加变量名报告相应变量的非缺失的观察个数,均值,标准差,最小值和最大值。ta空格后面加一个(或两个)变量名是报告某个变量(或两个变量二维)的取值(不含缺失值)的频数,比率和按大小排列的累积比率。des后面可以加任意个变量名,只要数据中有。它报告变量的存储的类型,显示的格式和标签。标签中一般记录这个变量的定义和单位。list报告变量的观察值,可以用if或in来限制范围。所有这些命令都可以后面不加任何变量名,

相关主题