查看原文
其他

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 "E:\stata\personal 14\高级计量经济学\计量经济学服务中心.dta", clear 
merge using "E:\stata\personal 14\高级计量经济学\计量经济学服务中心2.dta.dta" 
——将计量经济学服务中心和计量经济学服务中心2的数据按照样本(observation)排列的自然顺序合并起来
use "E:\stata\personal 14\高级计量经济学\计量经济学服务中心.dta.dta", clear 
merge id using "E:\stata\personal 14\高级计量经济学\计量经济学服务中心2.dta.dta" ,unique sort 
——将计量经济学服务中心和计量经济学服务中心2的数据按照唯一的(unique)变量id来合并,在合并时对id进行排序(sort)
建议采用第一种方法。

【收藏】stata官方的范例数据

对样本进行随机筛选

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 
合并后样本量增加,但变量数不变 

简单统计量的计算

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进行方差齐性检验) 

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

(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) 

面板数据


【原创】stata介绍之outreg2 logout,从简单到基础,涵盖描述相关+回归,从时间到面板
1、基本套路:
xtreg y x1 x2,re 
est store re 
xtreg y x1 x2,fe 
est store fe 
hausman re fe 
——如果hausman检验的结果为显著,则采用固定效应(fe)模型,不显著,则选取随机效应(re)模型

2、随机效应的检验:
xtreg y x1 x2,re 
xttest0 
xttest1 
——xttest1是xttest0的扩展,若这xttest0的结果为显著,则采用随机效应(re)模型
xttest1的假设是没有随机效应和/或没有序列相关,它的七个结果分别表示:

1) LM Test for random effects, assuming no serial correlation 
(假设没有序列相关情况下对随机效应进行LM检验)

2) Adjusted LM test for random effects, which works even under serial 
correlation 
(假设有序列相关的情况下对随机LM检验) 

3) One sided version of the LM test for random effects 
(假设没有序列相关的情况下对随机效应进行单边检验) 

4) One sided version of the adjusted LM test for random effects 
(假设有序列相关的情况下对随机效应进行单边检验) 

5) LM test for first-order serial correlation, assuming no random effects 
(假设没有随机效应的情况下对一阶序列相关进行检验) 

6) Adjusted test for first-order serial correlation, which works even under 
random effects (假设有随机效应的情况下对一阶序列相关进行检验)

7) LM Joint test for random effects and serial correlation 
(随机效应和序列相关的联合检验) 

3、固定效应模型,可采用广义最小二乘法(gls)进行估算,也可采用固定效应方程(fe): 
xtserial y x1 x2 
xtgls y x1 x2 
xttest2 
xttest3 
——xtserial用于检验固定效应模型中的一阶序列自相关,可通用于xtgls和fe之前 

——xttest2用于检验不同厂商的相似性,若显著则各厂家的截面相似,可通用于xtgls和fe之后 

——xttest3用于检验固定效应模型中的异方差问题,若显著则有异方差,可通用于xtgls和fe之后。

方差分析

一元方差分析 
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) 

来源:教师节倾情巨献 

综合整理自网络


点击查看往期汇编

科研数据:

001 中国高速铁路线路&城市高铁开通数据
002 地级市面板数据1990-2019003 上市公司数据集-慈善、股权、研发、审计、高管004 地级市高新技术企业统计情况2000-2019005 碳交易、碳排放(分行业、国家、省、市、县)006 2008-2018中国上市公司政治关联原始数据007 1936-2018年全国县级以上干部数据008 地级市市长市委书记数据库009 上市公司2006-2018年资产负债收益010 各县接收上山下乡知青数量
011 832国家级贫困县摘帽数据

学习资料:

001 文献利器EndNote教程(视频-PPT)

002 SCI完整写作攻略

003 北大空间计量经济学讲义

004 博士研究计划范文

005 空间权重矩阵和杜宾模型案例数据及分析006 三阶段DEA模型理论与操作手册视频讲解007 SPSS统计分析与行业应用案例详解008 R语言学习资料009 20套学术答辩PPT模板010 实证分析大全011 Fama-French五因子模型数据和Stata代码012 Stata17 win和mac版013 Stata17MP版最新使用指南全书014 Stata面板数据处理015 Stata命令cf,数据清洗双录双校利器
016 Stata:面板格兰杰检验xtranger
017 读懂Stata空间计量及应用
计量统计:7种主流数据分析软件及经典教材推荐Stata数据清洗方法回归结果不显著可采取方法与思路面板数据汇总实证模型三步走:数据、模型、结果检验调节变量、中介变量、控制变量七种经典回归方法六种定量方法解决内生性问题(stata代码)Stata双重差分操作流程及代码交互项与异质性分析面板交互固定效应模型详解5种安慰剂检验方法详解DIDM:多期多个体倍分法案例及代码
中介效应检验程序、操作应用政策评估反事实框架及匹配方法开展政策效应评估传统PSM-DID模型改进与应用广义DID超强的政策评估工具中介效应分析的四种方式、原则、方法和应用Stata17中DID、DDD方法及使用策略DID的平行趋势检验步骤和程序
文本相似度计算及政策量化分析政策效应评估的四种主流方法详解
科研论文:经管类CSSCI南大核心来源期刊投稿方式综合社科高校学报CSSCI南大核心来源期刊投稿方式因果推断——现代统计的思想飞跃2020年中国经济学研究热点分析空间计量经济学文献综述陆铭的13个实证研究锦囊碳达峰和碳中和管理研究:进展与综述国内几篇A刊的发表经验陈强:计量经济学实证论文写作全解析刘修岩:城市经济学模型与实证方法进展与趋势刘俏:”碳中和“给经济学提出那些新问题洪永淼:大数据革命和中国经济学研究范式博士如何接受完整、全面的科研训练顶级经济学期刊青睐何种计量方法管理世界投稿经验:如何回应审稿人意见基于195篇实证论文发现期刊编辑的喜好CSSCI期刊主编:论文写作用词八条建议论文参考文献怎么引用才能通过查重给博士生论文投稿实用建议常任轨教职经济学学术刊物目录
洪永淼等:中国经济科学的研究现状与发展趋

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存