http://blog.sina.com.cn/s/blog_76bc533f0101cso9.html
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(分组变量)
set more 1/0
count //计数
gsort +x // (升序)
gsort -x // (降序)
sort x //升序;并且其它变量顺序会跟着改变
label var y "消费" //添加标签
describe //描述数据文件的整体,包括观测总数,变量总数,生成日期,每个变量的存储类型(storage type),标签(label)
replace x5=2y if x!=3 //替换变量值
replace age = 25 in 107 //令第107个观测中age为25
rename y2 u //改变变量名
rename (length gear_ratio) (len gr) // 批量重命名
drop in 2 //删除全部变量的第2行
drop if x==. //删去x为缺失值的所有记录
keep if x<2 //保留小于2的数据,其余变量跟随x改变
keep in 2/10 //保留第2-10个数
keep x1-x5 ?/保留数据库中介于x1和x5间的所有变量 (包括x1和x5),其余变量删除
ci x1 x2,by(group) //算出置信区间,不过先前对group要先排序,即sort group;by的意思逐个进行
cii 12 3.816667 0.2710343, level(90) //已知均值,方差,计算90%的置信区间
cii 10 2 //obs=10,mean=2,以二项分布形式,计算置信区间
centile x,centile(2.5 25 50 75 97.5) //取分位数
pwcorr x1 x2 x2//相关系数矩
pwcorr x1 x2 x3, sig//增加显著性水平的相关系数
pwcorr x1 x2 x2, star(.01) bonferroni//增加星号显著性水平的相关系数
graph matrix x1 x2 x3 // 相关系数矩阵 ( 散点图 )
correlate/corr x y z //相关系数
regress/reg y x1 x2 x3 //回归方程建立
reg y x1 x2 x3,noconstant //无常数项
predict meanhat //预测拟合值
predict e,residual //得到残差
estat hettest// 异方差检验
dwstat //Durbin-Watson自相关检验
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 //基于Shapiro-Wilk检验.p值越小,越倾向于拒绝零假设,也就是变量越有可能不服从正态分布
xi //生成虚拟变量
tabulat gender,summ(math) //用gender指标对math进行分类,返回两类math的mean、std、freq
tabulate=tab %gen f=int((shengao-164)/3)3+164 组距为3
tabulate 变量名 [, generate(新变量) missing nofreq nolabel plot ]
%%%%%
generate(新变量) // 按分组变量产生哑变量
nofreq // 不显示频数
nolabel // 不显示数值标记
plot // 显示各组频数图示
missing // 包含缺失值
cell // 显示各小组的构成比(小组之和为 1)
column // 按栏显示各组之构成(各栏总计为 1)
row // 按行显示各组之构成(各行总计为 1)
?
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 //把已打开的文件(x y z)跟0917里的(x y z)合并,是竖向合并,即观察值合并;
merge using D:\0917.dta //把已打开的文件(x y z)跟0917里的(a b)合并,是横向合并,即变量合并;
format x %9.2e //科学记数
format x %9.2f //2位小数
//产生随机数,产生20个在(0,1)区间上均匀分布的随机数uniform()
set seed 100
set obs 20
gen r=uniform()
list
clear //清除内存
set seed 200 ////设置种子数为 200
set obs 20 设置样本量为 20
range no 1 20 //建立编号 1 至 20
gen r=uniform() //产生在(0,1)均匀分布的随机数
gen group=1 //设置分组变量 group 的初始值为 1
sort r //对随机数从小到大排序
replace group=2 in 11/20 //设置最大的 10 个随机数所对应的记录
//为第2组,即:最小的10个随机数所
//对应的记录为第1组
sort no //按照编号排序
list //显示随机分组的结果.也可以list if group==1和list no if group==1
// 产生10个服从正态分布N(100,6^2)的随机数invnorm(uniform())sigma+u
clear 清除内存
set seed 200 设置种子数为 200
set obs 10 设置样本量为 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 p52 p72
%1 163.2 27.4
%2 72.5 83.6
%3 57.2 178.2
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 %qq图
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...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
use d:\0917.dta
reg y x
corr y x
line y x,saving(d:\d4)
按ctrl+D执行
字符串操作函数:
length(s) %长度函数,计算s的长度, 如,disp length("ab")的结果是2
substr(s,n1,n2) %子串函数,获得从s的n1个字符开始的n2个字符组成的字符串,
disp substr("abcdef",2,3)的结果是"bcd"
string(n) %将数值n转换成字符串函数,如,disp string(41)+"f"的结果是"41f"
real(s) %将字符串s转换成数值函数,如,disp real("5.2")+1的结果是6.2
upper(s) %转换成大写字母函数,如,disp upper("this")的结果是"THIS"
lower(s) %转换成小写字母函数,如disp lower("THIS")的结果是"this"
index(s1,s2) %子串位置函数,计算s2在s1中第一次出现的起始位置, 如果s2不
在s1中, 则结果为0。如,disp index("this","is")的结果是3,
而index("this","it")的结果是0
trim(s) %去除字符串前面和后面的空格
ltrim(s) %去除字符串前面的空格
rtrim(s) %去除字符串后面的空格
di sign(x) %x>0时取1, x<0时取-1, x=0时取0; 符号函数
di int(x) %去掉x的小数部分, 得到整数 (取整函数)
sum(x) %获得包括当前记录及以前的所有记录的x 的和。缺失值(missing value)当0处理;求和函数
max(x1,x2,...,Xn) 忽略缺失值;最大值函数
min(x1,x2,...,Xn) 忽略缺失值;最小值函数
float(x) %将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) %归组函数recode(x,x1,x2,...xn)
gen y2=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检验:
ttesti 21 1.28 0.92 0.2 %检验均值是否等于0.2
检验两组均数是否相同:
ttesti 11 10 1.9 14 12.8 2.3
检验变量x1和x2的方差是否相同(即:齐性)
sdtestx1=x2
一、配对设计的平均水平检验
当总体服从正态分布时,可以选用t检验,否则用非参符号秩检验
signrankd=0
二、平行对照设计的两组资料平均水平统计检验
如果两组资料的方差齐性和相互独立的,并且每组资料服从正态
分布,则用成组t检验,否则可以用成组Wilcoxon秩和检验
ranksum x, by(group) %2组资料中位数比较
kwallis x, by(group) %多组资料中位数比较
anova x t id %x为因变量,t跟id是因素
egenr=rank(x),by(id) %产生秩r
单因素方差分析:
单因素方差分析又称为OnewayANOVA,用于比较多组样本的均数是否相同,
并假定:每组的数据服从正态分布,具有相同的方差,且相互独立,则无
效假设Ho:各组总体均数相同。在STATA中可用命令:
oneway x group, mean bonferroni %bonferroni用于多组样本均数的两两比较检验
logrank t outcome, by(group) %单因素生存分析
两因素方差分析
多因素方差分析:anova y x1 x2 x1*x2