stata11常用命令
(2012-12-10 16:07:31)
标签:
杂谈 |
注: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
1
2
3
4
5
end
su/summarise/sum x 或 su/summarise/sum x,d
对分组的描述:
sort group
by group:su x
%%%%%
tabstat economy,stats(max)
%%stats括号里可以是:mean,count(非缺失观测值个数),sum(总和),max,min,range,
%%
%%
_all %描述全部
_N 数据库中观察值的总个数。
_n 当前观察值的位置。
_pi 圆周率π的数值。
list
gen/generate %产生数列
egen wagemax=max(wage)
clear
use
by(分组变量)
set more 1/0
count %计数
gsort +x
gsort -x
sort x
label var y "消费"
describe %描述数据文件的整体,包括观测总数,变量总数,生成日期,每个变量的存储类型(storage
type),标签(label)
replace x5=2*y if x!=3 %替换变量值
replace age = 25 in 107
rename y2 u
drop in 2
drop if x==. 删去x为缺失值的所有记录
keep if x<2
keep in 2/10
keep x1-x5
ci x1 x2,by(group)
%by的意思逐个进行
cii 12 3.816667 0.2710343, level(90)
cii 10 2
centile x,centile(2.5 25 50 75 97.5)
correlate/corr x y z
pwcorr x y,sig
%如果变量非服从正态分布,则spearman x y
regress/reg mean year %回归方程建立 reg y x,noconstant %无常数项
predict meanhat
predict e,residual %得到残差
estat hettest
dwstat
vif
logit y x1 x2 x3 (y取0或1,是被解释变量,x1-x3是被解释变量) %logit回归
probit y x1 x2 x3 (y取0或1,是被解释变量,x1-x3是被解释变量) %probit回归
tobit y x1 x2 x3 (y取值在0和1之间,是被解释变量,x1-x3是被解释变量) %tobit回归
sktest e %残差正态性检验 p>0.05则接受原假设,即服从正态分布;
%% sktest是基于变量的偏度和斜度(正态分布的偏度为0,斜度为3)
swilk x
%%p值越小,越倾向于拒绝零假设,也就是变量越有可能不服从正态分布
xi
tabulat gender,summ(math)
tabulate=tab %gen f=int((shengao-164)/3)*3+164 组距为3
tabulate 变量名 [, generate(新变量) missing nofreq nolabel plot ]
%%%%%
generate(新变量) // 按分组变量产生哑变量
nofreq
nolabel
plot
missing
cell
column
row
%%%%%
求和,求最小?
mod(x,y) %求余数
means %返回三种平均值
di normprob(1.96)
di invnorm(0.05)
di binomial(20,5,0.5)
di invbinomial(20,5,0.5)
di tprob(10,2)
di invt(10.0.05)
di fprob(3,27,1)
di invfprob(3,27,0.05)
di chi2(3,5)
di invchi2(3,0.05)
stack x y z,into(e)
xpose,clear
append using d:\0917.dta
merge using D:\0917.dta
format x %9.2e
format x %9.2f
%产生随机数
%1 产生20个在(0,1)区间上均匀分布的随机数uniform()
set seed 100
set obs 20
gen r=uniform()
list
%
clear
set seed 200
set obs 20
range no 1 20
gen r=uniform()
gen group=1
sort r
replace group=2 in 11/20
sort no
list
也可以list if group==1和list no if group==1
%2 产生10个服从正态分布N(100,6^2)的随机数invnorm(uniform())*sigma+u
clear
set seed 200
set obs 10
gen x=invnorm(uniform())*6+100 产生服从 N(100,6^2)的随机数
list
画图
注意有些图前面要加
histogram 直方图
line
scatter
scatter y x,c(l) s(d) b2("(a)")
graph twoway connected y x 连点图
graph bar (sum) var2,over(var1) blabel(total) %条形图
. graph bar p52 p72,by(d)
. graph bar p52 p72,over(d)
. graph bar p52 p72,by(d) stack
. graph bar p52 p72,over(d) stack
////////////数据如下
%d
%1
%2
%3
histogram x,bin(8) norm
graph pie a b o ab if area==1,plabel(_all percent) %画饼图
graph pie var2, over(var1) plabel(_all percent)
graph pie p52 p72,by(d) %饼图
graph box y1 %箱体图
qnorm x
lfit y x
graph matrix gender economy math 多变量散点图
line yhat x||scatter y x,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)
Symbol(s...s)
或简写为s(s...s)
数学函数等都要与generate、replace、display一起使用,不能单独使用
程序文件do
use d:\0917.dta
reg y x
corr y x
line y x,saving(d:\d4)
按ctrl+D执行
字符串操作函数:
length(s)
substr(s,n1,n2)
disp substr("abcdef",2,3)的结果是"bcd"
string(n)
real(s)
upper(s)
lower(s)
index(s1,s2)
trim(s)
ltrim(s)
rtrim(s)
di sign(x)
di int(x)
sum(x)
max(x1,x2,...,Xn) 忽略缺失值;最大值函数
min(x1,x2,...,Xn) 忽略缺失值;最小值函数
float(x)
gen yy=cond(x<2,10,11) %条件函数cond(x,a,b) x可以是一个条件, x非0(条件成立)时取a,
x为0(条件不成立)时取b。
gen y1=recode(x,2,5)
gen y2=autocode(x,3,-2,9)
t检验:
gend=x-y
ttestd=0
ttestx=y
如果不配对
ttestx1=x2,unpaired
ttestx1=x2,unequalunpaired
已知样本均数、标准差和样本数进行t检验:
ttesti 21 1.28 0.92 0.2
检验两组均数是否相同:
ttesti 11 10 1.9 14 12.8 2.3
检验变量x1和x2的方差是否相同(即:齐性)
sdtestx1=x2
一、配对设计的平均水平检验
当总体服从正态分布时,可以选用t检验,否则用非参符号秩检验
signrankd=0
二、平行对照设计的两组资料平均水平统计检验
如果两组资料的方差齐性和相互独立的,并且每组资料服从正态
分布,则用成组t检验,否则可以用成组Wilcoxon秩和检验
ranksum x,
kwallis
anova x t id
egenr=rank(x),by(id)
单因素方差分析:
单因素方差分析又称为OnewayANOVA,用于比较多组样本的均数是否相同,
并假定:每组的数据服从正态分布,具有相同的方差,且相互独立,则无
效假设Ho:各组总体均数相同。在STATA中可用命令:
oneway
logrank
两因素方差分析
多因素方差分析:anova y x1 x2 x1*x2