STATA的简单命令
Stata中最重要的命令莫过于help和search了。
help用于查找精确的命令,而search是模糊查找。
例如:help regress
又如:我们记不清regress命令的全名,只记得regress的前半部分reg,
那么可以输入search reg
用户获得信息最有效的另一个途径是使用Statalist在线论坛,该论坛提供Stata用户交流的一个良好的平台。要加入Statalist,我们可以给以下地址发个邮件:
majordomo@hsphsun2.harvard.edu
邮件的内容为:subscribe Statalist
变量的命名:
1. 变量名可达32个字符。
2. 字符组成部分为A~Z、a~z、0~9与下划线“_”,这些字符以外的其他符号不可以出现在变量名中。
1 / 21
3. 变量名不能以数字开头。
4. 变量名区分大小写。
5. 倘若遵循以上原则依然无法正常命名变量,那么这个变量可能与Stata自身保留的供系统使用的变量重复了。
创建数据文件的方法:
1. 手动输入。
2. 从excel等文件中复制粘贴到stata数据表中。
3. 运用stata软件导入。
查看数据的概貌:
summarize x
codebook x
如果上面两个命令后面不加内容,那么显示的结果是所有变量的概貌。
对数据进行排序的命令:sort 标准1 标准2 标准3
生成数据的命令:gen
2 / 21
1. 如果要得到一阶差分,可以用以下命令:gen Difference_invest(新变量的名称是任意的)=d.invest(d.是运算符号,不得改变;invest是变量名称)
2. 要想产生一个新的变量Lag_invest,也就是invest的一阶滞后,那么我们可以采用如下命令:gen Lag_invest = l.invest
3. 生成对数的命令:gen Ln_invest=ln(invest)
作散点图的命令:scatter
1. scatter x1 x2:scatter后的第一个变量是纵轴的变量,第二个变量是横轴的变量。
2. scatter x1 x2, connect(1):以直线的方式连接相邻的两个点。
3. scatter x1 x2, connect(1) msymbol(i):散点的显示方式为“看不见”。
相关性检验:
回归方程的斜率系数在一定程度上也是反映两个变量之间关系的密切程度,斜率系数的平方根就是相关系数。
1. pwcorr命令(用于计算Pearson相关系数),它的好处是尽可能使用两两变量中所有没有缺失的数据,而不像correlate只采用没有任何缺失数据的完整的观测值。
pwcorr [varlist], sig star(.1):star(.1)是为了对显著性超过0.1的相关系数打上星号
3 / 21
pwcorr [varlist], sig print (.1):print (.1)则是仅仅显示这些显著的相关系数
2. spearman命令(用于计算Spearman相关系数)。
截面数据的估计命令
如何创建一个截面数据文件?只需要从excle中拷贝相应的数据到stata中即可,不需要特别的命令说明它是截面数据。
截面数据的回归主要需要注意以下几点:多重共线性(当样本量较小时,例如小于100)和异方差。而且需要考察t统计值、R2(adj-R2)、F统计量。
1. 检验自变量的相关性。(第1步也可以暂时不做,等到回归结束以后再做)
pwcorr [varlist], sig print(.05)
2. 对模型进行回归。
一个普通的回归命令:reg y x1 x2 x3 x4 x5, robust(截面数据一律加上robust)
倘若回归结果的经济学含义不合理(包括系数的正负号和显著性水平),而且前面的相关性检验中自变量的相关性十分高,那么有可能存在严重的多重共线性,为了精确起见,可以用vif来判断多重共线性是否严重(当vif的最大值大于10,同时各vif的平均值大于1时,表明多重共线性比较严重。使用vif命令时一定要在回归命令执行以后再用)。如何处理多重共线性?剔除变量法、逐步回归法以及增加样本容量。
4 / 21
3. 运用剔除变量法进行回归。
4. 运用逐步回归法进行回归。
逐步回归命令:
sw reg y x1 x2 x3 x4 x5, pr(.1):逐步回归,从最不显著的变量开始删除,直到所有变量在设定水平下(0.1)显著。
sw reg y x1 x2 x3 x4 x5, pr(.1) lockterm1:逐步回归,从最不显著的变量开始删除,直到所有变量在设定水平下(0.1)显著;而且加入lockterm项,为了保证第一项自变量不被删除。
sw reg y x1 x2 x3 (x4 x5), pr(.1):逐步回归,从最不显著的变量开始删除,直到所有变量在设定水平下(0.1)显著;而且加入()项,为了保证x4和x5要么同时出现,要么同时不出现。
5 / 21
时间序列数据的估计命令
如何创建一个截面数据文件?先把数据转移到stata中,然后用tsset命令。
tsset time, yearly(或者weekly、monthly、quarterly)
此时,一定要保证表示时间的那一列数据(即年份)的名称为time。
时间序列数据的回归主要需要注意以下几点:多重共线性(当样本量较小时,例如小于100)和序列相关性。而且需要考察t统计值、R2(adj-R2)、F统计量、D.W.值。
首先用reg命令进行回归,例如:reg y x1 x2 x3 x4 x5,并考察D.W.值(使用estat dwatson这一命令),如果D.W.值严重远离2,那么要进行调整(调整方法如黄色底纹),直到调整到2附近,然后考察回归结果是否符合经济学含义,倘若不符合,那么要注意是否受到多重共线性的影响(通过相关系数和vif值来判断)。在处理多重共线性时,可以用类似于处理截面数据的方法(剔除变量法),同时还要看D.W.值。此外,还可以用差分法来处理多重共线性(此方法用得不多)。
检验DW值的命令:estat dwatson
用广义差分法考虑序列相关性的命令(即调整DW值的命令):
reg y x1 x2 x3 x4 x5 L.y(后面还可以运用L.y L2.y)
用序列相关稳健标准误法考虑序列相关性的命令(即调整DW值的命令):
6 / 21
reg y x1 x2 x3 x4 x5, robust
考虑多重共线性的方法除了以上截面数据中用到的方法以外,还可以用差分法,然后再看vif值。
reg D.y D.x1 D.x2 D.x3 D.x4 D.x5
面板数据的估计命令
如何创建一个面板数据文件?
录入数据
xtset id year
面板数据的回归主要需要注意:多重共线性(当样本量较小时),异方差和序列相关性在很多研究中可以不必深究。而且需要考察t统计值、R2(adj-R2)、F统计量,选择固定效应(fixed effect)或随机效应(random effect)。
多重共线性的处理方法可以参照截面数据和时间序列数据的处理方法。
固定效应和随机效应的选择:(xtreg后面紧挨着的变量是被解释变量,然后接下来才是解释变量)
xtreg 被解释变量 解释变量, fe
7 / 21
est store fe
xtreg 被解释变量 解释变量, re
est store re
hausman fe
原假设是随机效应,p值太小可以拒绝原假设,如果hausman检验的结果(Prob>chi2)小于0.1,那么选择固定效应;如果(Prob>chi2)大于0.1,或者chi2的值小于0,那么选择随机效应。
其它命令
GMM方法:
xtabond depvar indepvars
sargan 检验:
estat sargan
自相关检验:
estat abond
8 / 21
同时控制时间因素(year)和行业因素(industrycode),即自动加入虚拟变量的命令xi的用法:
xi i.year i.industrycode
加入自动生成的虚拟变量,并且运用稳健标准误进行固定效应回归的命令:
xtreg lnex lngdpcn lngdppartner educationjob iprrd lawhi i.year i.industrycode, fe robust
面板数据中2sls的命令(这可能是默认的命令,还可以根据具体情况更改):
(1)xtivreg lnex lk tfp rd size fdi i.year i.id (finance=l.finance),此时怀疑解释变量finance是内生的,而且以finance的一阶滞后作为IV。注意:括号前面必须有空格!
(2)xtivreg lnex lk tfp rd size fdi i.year i.id (finance=l.finance l2.finance),此时怀疑解释变量finance是内生的,而且以finance的一阶滞后和二阶滞后作为IV。注意:括号前面必须有空格!
如果用overid,需要安装overid :ssc install overid, replace
如果用xtoverid,需要安装xtoverid :ssc install xtoverid, replace
如果用ranktest,需要安装ranktest :ssc install ranktest, replace
有时即使安装以后依然无法运用,可能是由于自变量太多导致的,例如控制行业固定
9 / 21
效应、时间固定效应等固定效应时会增加几十个虚拟变量,这时可能由于模型无法运算而无法运用这些命令,GMM方法似乎也有类似情况。
例如:xtivreg lnex lngdpcn lngdppartner distance language border (fincountry=l.fincountry l2.fincountry) findep financefin,re
检验工具变量识别不足时用命令ranktest,以上例子应该是ranktest (fincountry) (l.fincountry l2.fincountry)【理想的结果是Kleibergen-Paap rk LM的p值小于0.1】
检验弱工具变量时也用命令ranktest,但要在后面加上wald,以上例子应该是ranktest (fincountry) (l.fincountry l2.fincountry),wald【理想的结果是Kleibergen-Paap Wald rk F的p值小于0.1】
检验过度识别时用命令xtoverid【理想的结果Sargan-Hansen检验的p值大于0.1】
博客的命令整理,供参考
,未经博主允许不得转载。
1、input: 输入数据
例: inpurt x y
1 4
2 3.5
10 / 21
3 7
end
2、by: 按照某一变量的取值来进行分析
例:一般要先sort(排序),然后 by group: regress Y x1 x2 //按照不同的组,对Y分别作四个回归分析
3、weight: 加权或者頻数
例:fw=頻数变量 //多用在四格表资料中或者未原资料未给出所有值,只给出了值和对应的頻数
4、if: 用条件语句指定条件
例:drop if group==1|group==2 //把group变量值为1或者2的记录删除掉
5、in:指定观察值的范围,对在范围内的观察值做分析处理
例:replace x1=\"123\" in 100/200 //把第100-200条记录中的X1变量值改为123
6、for: 用来指定变量
11 / 21
例:for y1-y10 z1-z5: regress @x1-x22 //把y1-y10,z1-z5分别于x1-x22做回归,一次性代表15次回归,其中@是替换符,代表y1-y10, z1-z5
7、函数:
abs(x) 绝对值
exp(x) 指数函数
log(x) 自然对数
log10(x) 常用对数
sqrt(x) 平方根
uniform(x) 生成(0,1)内均匀分布的伪随机数
length(x) 计算长度
substr(s,n1,n2) 获得从S的n1个字符开始的n2个字符组成的字符串
real(x) 将字符串s转换为数值函数
trim(x) 去除字符串前面和后面的空格
int(x) 去掉x的小数部分,得到整数
12 / 21
sum(X) 求和
max(x) min(x) 最大值最小值
_n 当前观察值的位置
_N 观察值的总个数
8、ren: 重命名
例:ren var1 var123 // 把var1重新命名为var123
9、des:描述数据库的基本情况
10、label: 为变量添加一些说明,以示说明
11、sort: 按照某一变量从小到大排序
gsort +/-:按照某一变量从大到小或者从小到大排序
sort var1 var2:按照var1大小排序,相同的var1按照var2大小排序
12、drop:删除变量或者记录
drop x1 x2
13 / 21
drop x1-x5
drop if x<0\\
drop in 1/100
drop if x==.|y==.
drop _all //清空数据库
13、keep: 与drop对应,保存变量
14、append:纵向连接数据库
15、merge:横向连接数据库
16、gen: 生成新变量
gen bh=_n //将数据库的内部编号赋给变量bh
17、replace:更改变量值
replace z=. if z=9 //将所有z=9的值用缺失值代替
18、set obs: 增加空白记录
14 / 21
set obs 20 //增加20条空白记录
19、format: 改变数据格式
format tjrq %td //将tjrq改成日期形式
20、l: list 将结果列出
21、su: 对分析数据进行描述,均值标准差等,与des不同,des是描述数据库变量个数,格式等
su x, d // 对x进行统计描述,如果加了d,那么就会更加detail
22、centile: 百分位数计算
centile x, centile(2.5,50,97.5) //计算变量x的2.5,50.97.5百分位数
23、tab:頻数表达
tab sex //计算两个性别各自的頻数
tab sex group //看看各组性别分布的情况
tab group, sum(x1) //在各组内对x1统计分析
24、ci: 计算可信区间
15 / 21
25、直方图:gra x, bin(9) xlab(10,20,30,40) ylab(0,1,2,3) norm gap(4) b2(\"height (cm)\")
//对x画直方图,分为9组,X轴为10,20,30,40,y轴为0,1,2,3,加上正态分布曲线,标题与坐标轴的距离(1-8),下坐标轴加标题为height(cm)
b1/t1/l1/r1(\"\") 给各个坐标轴加标题
b2/t2/l2/r2(\"\") 给各个坐标轴加副标题
title 给图加总标题
条图:gra x1 x2, bar by(group) sh(31) l1(\"rate of die\") b1(\"comparison of rate of die\")
// 对x1,x2画条图,分组变量为group,两组的明暗对比度为3:1,左标题rate of die,下标题comparison of rate of die
饼图:gra x1 x2 x3 x4 x5, pie by(group) sh(31) total
散点图与线图:connect(简写c)——连接散点的方式:. 不连接
l 直线连接
16 / 21
s 平滑曲线连接
|| 直线连接在同一纵向上的两点
J 阶梯式线条连接
S 大方块
T 大三角型
o 小圆圈
d 小菱形
p 小加号
symbol(简写s)——各个散点的图形:O 17 / 21
大圆圈
. 小点
gra y x, xlab ylab c(l) s(d)
箱式图: gra y x, oneway/twoway box
26、单样本均数t检验: ttest x=14.02(总体均数μ)
ttesti n mean sd μ
配对t检验: ttest x1==x2
两样本均数t检验:ttest x1==x2,unpaired
ttest x, by(group)
27、方差分析:方差齐性检验:sdtest x1=x2
sdtest x, by (group)
正态性检验: sktest x
单因素方差分析: oneway 相应变量 分组变量
两因素方差分析:anova 相应变量 分组变量1 分组变量2
18 / 21
多因素方差分析:anova x a b c ... a*b b*c a*b*c... //乘积项代表交互作用
28、率、构成比的比较: tab var1 var2 [fw=頻数变量]
chi2 pearson卡方检验
exact fisher确切概率法
如果是原始资料RXC列联表: tabi 第一行数字从左到右\\第二行从左到右...\\最后一行从左到右, row chi2 exact
29、 队列研究(暴露,不暴露): ir 病例变量 暴露变量 时间变量 ./ irs a b n1 n2
cs 病例变量 暴露变量 / csi a b c d
病例对照研究(发病,不发病):cci a b c d
30、等级资料: genrank 编秩 genrank rankx=x
signtest 符号检验 类似t检验,signtest x=常数,signtest x1=x2, signrank x1=x2
signrank 符号秩和检验
19 / 21
ranksum/Wilcoxon 两样本秩和检验 wilcoxon var, by (group_var)
kwallis 多样本秩和检验(Kruskal-Wallis) kwallis var,by (group_var)
spearman 等级相关 spearman x y
ktau 等级相关(kendall) ktau x y
31、直线相关与回归: 相关 corr y x
回归 reg y x
估计与预测 pre yhat
画图 gra y yhat l1 l2 l3 l4 x, c(.lssss) s(oiiii) xlab() ylab()
32、多元线性回归及逐步回归:散点图矩阵: gra y x1 x2, matrix
相关系数矩阵: corr
多元回归方程: reg y x1 x2 //标准化偏回归系数,reg y x1 x2, beta
20 / 21
逐步回归: stepwise y x1-x4, forward fe(2.73) //α等于0.05时F界值为2.73,fe代表fenter选入标准,fs代表fstay剔除标准
逐步回归法:forward,backward,stepwise,stepwise forward 例如:step y x1-x4, step fe(2.5) fs(2.6) back
33、logistic回归: logit y x [fw=f]
blogit y x1 x2 x3/ glogit y x1 x2 x3
也可以同上做逐步Logistic回归
34、生存曲线:中位生存时间:survsum 时间变量 截尾变量, by(分组变量)
生存曲线:kapmeier 时间变量 截尾变量, by(分组变量) // kaplan-meier生存曲线
生存率比较: 两组:wilcoxon 时间变量 截尾变量, by(分组变量)
多组:logrank 时间变量 截尾变量, by(分组变量)
COX分析: cox 时间变量 自变量, dead(截尾变量)
21 / 21
因篇幅问题不能全部显示,请点此查看更多更全内容