stata命令总结.docx
《stata命令总结.docx》由会员分享,可在线阅读,更多相关《stata命令总结.docx(10页珍藏版)》请在冰豆网上搜索。
stata命令总结
stata11常用命令
注:
JB统计量对应的p大于0.05,则表明非正态,这点跟sktest和swilk检验刚好相反;
dta为数据文件;
gph为图文件;
do为程序文件;
注意stata要区别大小写;
不得用作用户变量名:
_all_n_N_skip_b_coef_cons_pi_pred_rc_weightdouble
floatlongintinifusingwith
命令:
读入数据一种方式
input x y
1 4
2 5.5
3 6.2
4 7.7
5 8.5
end
su/summarise/sumx或su/summarise/sumx,d
对分组的描述:
sortgroup
bygroup:
sux
%%%%%
tabstateconomy,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(interquantilerange=p75–p25)
_all %描述全部
_N数据库中观察值的总个数。
_n当前观察值的位置。
_pi圆周率π的数值。
list
gen/generate%产生数列
egenwagemax=max(wage)
clear
use
by(分组变量)
setmore1/0
count%计数
gsort +x (升序)
gsort -x (降序)
sortx 升序;并且其它变量顺序会跟着改变
labelvary"消费" %添加标签
describe%描述数据文件的整体,包括观测总数,变量总数,生成日期,每个变量的存储类型(storagetype),标签(label)
replacex5=2*yifx!
=3%替换变量值
replaceage=25in107 %令第107个观测中age为25
renamey2u %改变变量名
dropin2 %删除全部变量的第2行
dropifx==.删去x为缺失值的所有记录
keepifx<2 %保留小于2的数据,其余变量跟随x改变
keepin2/10 %保留第2-10个数
keepx1-x5 %保留数据库中介于x1和x5间的所有变量(包括x1和x5),其余变量删除
cix1x2,by(group) %算出置信区间,不过先前对group要先排序,即sortgroup;
%by的意思逐个进行
cii123.8166670.2710343,level(90) %已知均值,方差,计算90%的置信区间
cii102 %obs=10,mean=2,以二项分布形式,计算置信区间
centilex,centile(2.525507597.5) %取分位数
correlate/corrxyz %相关系数
pwcorrxy,sig %给出原假设r=0的命令
%如果变量非服从正态分布,则spearmanxy
regress/regmeanyear%回归方程建立regyx,noconstant%无常数项
predictmeanhat %预测拟合值
predicte,residual%得到残差
estathettest %异方差检验
dwstat %Durbin-Watson自相关检验
vif %方差膨胀因子
logityx1x2x3(y取0或1,是被解释变量,x1-x3是被解释变量)%logit回归
probityx1x2x3(y取0或1,是被解释变量,x1-x3是被解释变量)%probit回归
tobityx1x2x3(y取值在0和1之间,是被解释变量,x1-x3是被解释变量)%tobit回归
skteste%残差正态性检验p>0.05则接受原假设,即服从正态分布;
%%sktest是基于变量的偏度和斜度(正态分布的偏度为0,斜度为3)
swilkx %基于Shapiro-Wilk检验
%%p值越小,越倾向于拒绝零假设,也就是变量越有可能不服从正态分布
xi %生成虚拟变量
tabulatgender,summ(math) %用gender指标对math进行分类,返回两类math的mean、std、freq
tabulate=tab%genf=int((shengao-164)/3)*3+164组距为3
tabulate变量名[,generate(新变量)missingnofreqnolabelplot]
%%%%%
generate(新变量)//按分组变量产生哑变量
nofreq //不显示频数
nolabel //不显示数值标记
plot //显示各组频数图示
missing //包含缺失值
cell //显示各小组的构成比(小组之和为1)
column //按栏显示各组之构成(各栏总计为1)
row //按行显示各组之构成(各行总计为1)
%%%%%
求和,求最小?
mod(x,y)%求余数
means%返回三种平均值
dinormprob(1.96)
diinvnorm(0.05)
dibinomial(20,5,0.5)
diinvbinomial(20,5,0.5)
ditprob(10,2)
diinvt(10.0.05)
difprob(3,27,1)
diinvfprob(3,27,0.05)
dichi2(3,5)
diinvchi2(3,0.05)
stackxyz,into(e) %把三列合成一列
xpose,clear %矩阵转置
appendusingd:
\0917.dta %把已打开的文件(xyz)跟0917里的(xyz)合并,是竖向合并,即观察值合并;
mergeusingD:
\0917.dta %把已打开的文件(xyz)跟0917里的(ab)合并,是横向合并,即变量合并;
formatx%9.2e %科学记数
formatx%9.2f %2位小数
%产生随机数
%1产生20个在(0,1)区间上均匀分布的随机数uniform()
setseed100
setobs20
genr=uniform()
list
%
clear 清除内存
setseed200 设置种子数为200
setobs20 设置样本量为20
rangeno120 建立编号1至20
genr=uniform() 产生在(0,1)均匀分布的随机数
gengroup=1 设置分组变量group的初始值为1
sortr 对随机数从小到大排序
replacegroup=2in11/20 设置最大的10个随机数所对应的记录
为第2组,即:
最小的10个随机数所
对应的记录为第1组
sortno 按照编号排序
list 显示随机分组的结果
也可以listifgroup==1和listnoifgroup==1
%2产生10个服从正态分布N(100,6^2)的随机数invnorm(uniform())*sigma+u
clear 清除内存
setseed200 设置种子数为200
setobs10 设置样本量为10
genx=invnorm(uniform())*6+100产生服从N(100,6^2)的随机数
list
画图
注意有些图前面要加
histogram直方图
line 折线图
scatter 散点图
scatteryx,c(l)s(d)b2("(a)")
graphtwowayconnectedyx连点图
graphbar(sum)var2,over(var1)blabel(total)%条形图
.graphbarp52p72,by(d)
.graphbarp52p72,over(d)
.graphbarp52p72,by(d)stack
.graphbarp52p72,over(d)stack
////////////数据如下
%d p52 p72
%1 163.2 27.4
%2 72.5 83.6
%3 57.2 178.2
histogramx,bin(8)norm %画直方图,加正态分数线
graphpieaboabifarea==1,plabel(_allpercent)%画饼图
graphpievar2,over(var1)plabel(_allpercent) %饼图
graphpiep52p72,by(d)%饼图
graphboxy1%箱体图
qnormx %qq图
lfityx %回归直线
graphmatrixgendereconomymath多变量散点图
lineyhatx||scatteryx,c(.l)s(O.)xline(12)yline(5.4) %线形图&散点图
有一些通用的选项可以给图形“润色”:
标题title(“string”)(string可为任意的字符串,下同)
脚注note(“string”)
横座标标题xtitle(“string”)
纵座标标题ytitle(“sting”)
横座标范围xaxis(a,b)(a
纵座标范围yaxis(a,b)
插入文字text(该命令既要指定插入文字的内容,也要指定插入的位置)
插入图例legend(该命令既要指定图例的内容,也要指定其位置)
绘制散点图和线条的两个主要的选择项为:
connect(c...c) //连接各散点的方式,c表示:
或简写为c(c...c) .不连接(缺省值)
l用直线连接
L沿x方向只向前不向后直线连接
m计算中位数并用直线连接
s用三次平滑曲线连接
J以阶梯式直线条连接
||用直线连接在同一纵向上的两点
II同||,只是线的顶部和底部有一个短横
Symbol(s...s) //表示各散点的图形,s表示:
或简写为s(s...s) O大圆圈(缺省值)
S大方块
T大三角形
o小圆圈
d小菱形
p小加号
.小点
i无符号
[varname]用变量的取值代码表示
[_n]用点的记录号表示
数学函数等都要与generate、replace、display一起使用,不能单独使用
程序文件do
used:
\0917.dta
regyx
corryx
lineyx,saving(d:
\d4)
按ctrl+D执行
字符串操作函数:
length(s) %长度函数,计算s的长度,如,displength("ab")的结果是2
substr(s,n1,n2) %子串函数,获得从s的n1个字符开始的n2个字符组成的字符串,
dispsubstr("abcdef",2,3)的结果是"bcd"
string(n) %将数值n转换成字符串函数,如,dispstring(41)+"f"的结果是"41f"
real(s) %将字符串s转换成数值函数,如,dispreal("5.2")+1的结果是6.2
upper(s) %转换成大写字母函数,如,dispupper("this")的结果是"THIS"
lower(s) %转换成小写字母函数,如displower("THIS")的结果是"this"
index(s1,s2) %子串位置函数,计算s2在s1中第一次出现的起始位置,如果s2不
在s1中,则结果为0。
如,dispindex("this","is")的结果是3,
而index("this","it")的结果是0
trim(s) %去除字符串前面和后面的空格
ltrim(s) %去除字符串前面的空格
rtrim(s) %去除字符串后面的空格
disign(x) %x>0时取1,x<0时取-1,x=0时取0; 符号函数
diint(x) %去掉x的小数部分,得到整数(取整函数)
sum(x) %获得包括当前记录及以前的所有记录的x的和。
缺失值(missingvalue)当0处理;求和函数
max(x1,x2,...,Xn)忽略缺失值;最大值函数
min(x1,x2,...,Xn)忽略缺失值;最小值函数
float(x) %将x转换成浮点表示法。
genyy=cond(x<2,10,11)%条件函数cond(x,a,b)x可以是一个条件,x非0(条件成立)时取a,x为0(条件不成立)时取b。
geny1=recode(x,2,5) %归组函数recode(x,x1,x2,...xn)
geny2=autocode(x,3,-2,9) %autocode(x,ng,xmin,xmax)自动将区间(xmin,xmax)分成ng个等长的小区间,其结果是包含x值那个小区间的上界值
t检验:
gend=x-y
ttestd=0
ttestx=y
如果不配对
ttestx1=x2,unpaired
ttestx1=x2,unequalunpaired
已知样本均数、标准差和样本数进行t检验:
ttesti211.280.920.2 %检验均值是否等于0.2
检验两组均数是否相同:
ttesti11101.91412.82.3
检验变量x1和x2的方差是否相同(即:
齐性)
sdtestx1=x2
一、配对设计的平均水平检验
当总体服从正态分布时,可以选用t检验,否则用非参符号秩检验
signrankd=0
二、平行对照设计的两组资料平均水平统计检验
如果两组资料的方差齐性和相互独立的,并且每组资料服从正态
分布,则用成组t检验,否则可以用成组Wilcoxon秩和检验
ranksumx, by(group) %2组资料中位数比较
kwallis x,by(group) %多组资料中位数比较
anovaxtid %x为因变量,t跟id是因素
egenr=rank(x),by(id) %产生秩r
单因素方差分析:
单因素方差分析又称为OnewayANOVA,用于比较多组样本的均数是否相同,
并假定:
每组的数据服从正态分布,具有相同的方差,且相互独立,则无
效假设Ho:
各组总体均数相同。
在STATA中可用命令:
oneway x group,mean bonferroni %bonferroni用于多组样本均数的两两比较检验
logrank t outcome,by(group)%单因素生存分析
两因素方差分析
多因素方差分析:
anovayx1x2x1*x2