stata基本命令.docx
《stata基本命令.docx》由会员分享,可在线阅读,更多相关《stata基本命令.docx(17页珍藏版)》请在冰豆网上搜索。
stata基本命令
stata基本命令+实例+数据+结果--必看,经典
2009-08-2512:
29
Stata常用命令
save命令
FileSaveAs
例1.表1.为某一降压药临床试验数据,试从键盘输入Stata,并保存为Stata格式文件。
STATA数据库的维护
排序
SORT变量名1变量名2……
变量更名
rename原变量名新变量名
STATA数据库的维护
删除变量或记录
dropx1x2 /*删除变量x1和x2
dropx1-x5 /*删除数据库中介于x1和x5间的所有变量(包括x1和x5)
dropifx<0 /*删去x1<0的所有记录
dropin10/12 /*删去第10~12个记录
dropifx==. /*删去x为缺失值的所有记录
dropifx==.|y==./*删去x或y之一为缺失值的所有记录
dropifx==.&y==./*删去x和y同时为缺失值的所有记录
drop_all /*删掉数据库中所有变量和数据
STATA的变量赋值
用generate产生新变量
generate新变量=表达式
generatebh=_n /*将数据库的内部编号赋给变量bh。
generategroup=int((_n-1)/5)+1 /*按当前数据库的顺序,依次产生5个1,5个2,5个3……。
直到数据库结束。
generateblock=mod(_n,6) /*按当前数据库的顺序,依次产生1,2,3,4,5,0。
generatey=log(x)ifx>0 /*产生新变量y,其值为所有x>0的对数值log(x),当x<=0时,用缺失值代替。
egen产生新变量
setobs12
egena=seq() /*产生1到N的自然数
egenb=seq(),b(3) /*产生一个序列,每个元素重复#次
egenc=seq(),to(4)/*产生多个序列,每个序列从1到#
egend=seq(),f(4)t(6)/*产生多个序列,每个序列从#1到#2
encode字符变量名,gen(新数值变量名)
作用:
将字符型变量转化为数值变量。
STATA数据库的维护
保留变量或记录
keepin10/20 /*保留第10~20个记录,其余记录删除
keepx1-x5 /*保留数据库中介于x1和x5间的所有变量(包括x1和x5),其余变量删除
keepifx>0 /*保留x>0的所有记录,其余记录删除
STATA数据库的维护
替换已存在的变量值
replace变量=表达式
replacebolck=6ifblock==0 /*将block=0的数全部替换为6。
replacez=.ifz<0 /*将所有小于0的z值用缺失值代替。
replaceage=25in17 /*将第17条记录中的变量age替换为25。
forvarx*:
replaceX=0ifX==./*将所有第一个字母为x的变量替换为0,如果该变量的值为缺失值
纵向连接数据库
Ex3-3.dta:
x0 x1
1. 3550 2450
2. 2000 2400
3. 3000 1800
4. 3950 3200
5. 3800 3250
use"E:
\教学\上机\ex3-2.dta",clear
l
x0 x1 g
1. 2450 1450 2
2. 2100 2400 2
3. 2300 3800 2
4. 1590 4200 2
appendusingE:
\教学\上机\ex3-3.dta
l
x0 x1 g
1. 2450 1450 2
2. 2100 2400 2
3. 2300 3800 2
4. 1590 4200 2
5. 3550 2450 .
6. 2000 2400 .
7. 3000 1800 .
8. 3950 3200 .
9. 3800 3250 .
横向联接数据库
Ex3-5.dta:
bh y0 y1 x0
1. 1 35 79.2 2
2. 3 45 47.4 8
3. 4 52 34.6 6
4. 6 66 28.0 9
命令
.drop_all
.useE:
\教学\MPH上机\ex3-5.dta
.sortbh
.save"E:
\教学\MPH上机\ex3-5.dta",replace
fileE:
\教学\MPH上机\ex3-5.dtasaved
.useE:
\教学\MPH上机\ex3-4.dta
.sortbh
.mergebhusingE:
\教学\MPH上机\ex3-5.dta
结果
bh x0 x1 y0 y1 _merge
1. 1 12 24 35 79.2 3
2. 2 15 26 . . 1
3. 3 16 49 45 47.4 3
4. 4 18 57 52 34.6 3
5. 5 20 68 . . 1
6. 6 9 . 66 28 2
列数据接龙
Stack变量名,into(新变量名)|group(#)[clearwide]
示例
统计描述及区间估计
定量资料的一般描述
均数、标准差、百分位数、中位数
summarize [变量名][,detail]
统计描述及区间估计
百分位数
centile [变量名][,centile(#[#...])ccinormalmeansdlevel(#)]
统计描述及区间估计
定性资料的一般描述
按照分类变量给出频数和构成比
tabulate变量名
例2.有三组(group)患者,男女(sex)若干人,sex=1表示男性,sex=0表示女性。
测得其血红蛋白浓度(x1,%)和红细胞计数(x2,万/mm3),资料存入c:
\mydata\ex2.dta。
试对其进行描述。
见ex5-2
.usec:
\mydata\ex2
.tabgroup
.tabsex
.tabgroup,sum(x1)
.tabgroup,sum(x2)
统计描述及区间估计
可信区间的估计
ci变量[,level(#)binomialpoissonexposure(观察数变量)by(分组变量)total]
cii观察数均数标准差[,level(#)]
level(#) /*指定可信度,缺失时为95(%)
by(分组变量) /*指定按分组变量分别估计均数的可信区间
total /*指定除按分组变量估计可信区间外,还对整个数据估计,仅用于指定了by(分组变量)时
.usec:
\mydata\ex2
.sortgroup
/*在用by(分组变量)前,必须对分组变量排序
.cix1x2,by(group)
STATA的作图
作图命令GRAPH
graph [变量名][,图形类型通用选择项特殊选择项]
图形类型
histogram/*直方图,为缺省值。
oneway/*一维散点图
twoway/*二维散点图、线图
matrix/*二维散点图阵
bar/*条图、百分条图
pie/*圆(饼)图
box/*箱式图
star/*星形图
STATA的作图
作图命令GRAPH
常用选项
bin(#) /*将数据分几组,缺省为5。
freq /*指定纵轴用频数表示,否则为频率。
normal/*给直方图加上相应正态曲线。
xlab/ylab/[(#,……,#)]/*指定坐标轴的界点。
b2/l2[(“字符串”)]/*指定坐标轴的副标题。
STATA的作图
如何利用STATA绘制频数分布图?
例 130名14岁女孩身高资料。
grax,bin(10)freqnormalxlab(124,128,132,136,140,144,148,152,156,160,164)ylab(5,10,15,20,25,30,35,40)
数值变量资料的描述
均数、几何均数、中位数、百分位数
极差、四分位数间距、方差、标准差
变异系数
对称分布 均数±标准差
偏态分布 中位数±四分位数间距
数值变量资料的描述
means[变量名]
summarize [变量名][,detail]
centile[变量名][,centile(#)]其他选项
detail /* 详细描述,缺失时为简单描述
centile(#)/* 指定需要计算的百分位数
某市1997年12岁男童120人的身高(cm)资料如下
sumx
sumx,d
sumxifx<140
sumxifx<140,d
centilex
centilex,centile(25,50,75)
例
有五份血清的抗体效价为
1:
10,1:
20,1:
40,1:
80,1:
160,
描述其抗体滴度的平均水平。
meansx
STATA的作图
作图命令graph 简写gra
gra [变量名][,图形类型通用选择项特殊选择项]
图形类型
histogram/*直方图
oneway/*一维散点图
twoway/*二维散点图、线图
matrix/*二维散点图阵
bar/*条图、百分条图
pie /*圆(饼)图
box /*箱式图
star/*星形图
直方图
数值变量资料的统计分析
样本均数与总体均数比较的t检验
配对设计t检验
成组设计t检验
方差齐性检验
样本均数与总体均数比较的t检验
ttest变量名=#val
ttesti#obs#mean#sd#val
例
问题:
统计量与参数不同的两种可能
其一:
抽样误差
(偶然的、随机的、较小的)
其二:
本质上的差别
(必然的、大于随机误差)
例
样本:
某医生随机抽查10名某病患者的血红蛋白,求得其均数为12.59(g/dl),标准差为1.632619(g/dl)。
问题:
该病患者的平均Hb含量是否与正常人的平均Hb含量相同(正常人的平均Hb含量为14.02(g/dl)。
STATA命令
ttest变量名=#val
ttest x =14.02
STATA结果
ttestx=14.02
One-samplettest
----------------------------------------------------------------------------
Variable| Obs Mean Std.Err. Std.Dev. [95%Conf.Interval]
---------+------------------------------------------------------------------
x| 1012.59 .5162794 1.632619 11.42209 13.75791
----------------------------------------------------------------------------
Degreesoffreedom:
9
Ho:
mean(x)=14.02
Ha:
mean<14.02 Ha:
mean~=14.02 Ha:
mean>14.02
t=-2.7698 t=-2.7698 t=-2.7698
P|t|= 0.0218 P>t= 0.9891
STATA命令
ttesti #obs#mean #sd #val
ttesti 10 12.591.63261914.02
配对设计t检验
ttest变量1=变量2
STATA命令
ttestx1=x2
STATA结果
ttestx1=x2
Pairedttest
-------------------------------------------------------------------
Variable|Obs MeanStd.Err. Std.Dev.[95%Conf.Interval]
---------+---------------------------------------------------------
x1|1012.59.5162794 1.632619 11.42209 13.75791
x2|1013.27.3415813 1.080175 12.49729 14.04271
---------+--------------------------------------------------------- diff|10-.6799999.5204272 1.645735 -1.857288 .4972881
-------------------------------------------------------------------
Ho:
mean(x1-x2)=mean(diff)=0
Ha:
mean(diff)<0Ha:
mean(diff)~=0 Ha:
mean(diff)>0
t=-1.3066 t=-1.3066 t=-1.3066
P|t|=0.2237 P>t=0.8881
成组设计t检验
ttest变量1=变量2,unpaired[unequal]
ttest变量,by(分组变量)[unequal]
ttesti#obs1#mean1#sd1#obs2#mean2#sd2[,unequal]
unpaired 表示非配对的,如不选就作配对t检验
unequal 表示假设两组方差不齐,如不选表示假设两组方差达到齐性
例(成组设计)
分别测得14例老年人煤饼病人及11例正常人的尿中17酮类固醇排出量(mg/dl)如下,试比较两组的均数有无差别
STATA命令
ttestx1=x2,unpaired
ttestx,by(g)
STATA结果
ttestx1=x2,unp
Two-samplettestwithequalvariances
----------------------------------------------------------------------------
Variable|Obs Mean Std.Err. Std.Dev. [95%Conf.Interval]
---------+------------------------------------------------------------------
x1|14 4.377857 .3875 1.449892 3.540714 5.215
x2|11 5.528182 .5232431 1.735401 4.362324 6.69404
---------+------------------------------------------------------------------
combined|25 4.884 .3306453 1.653227 4.201582 5.566418
---------+------------------------------------------------------------------
diff| -1.150325 .636752 -2.467547 .1668972
----------------------------------------------------------------------------
Degreesoffreedom:
23
Ho:
mean(x1)-mean(x2)=diff=0
Ha:
diff<0 Ha:
diff~=0 Ha:
diff>0
t=-1.8066 t=-1.8066 t=-1.8066
P|t|= 0.0839 P>t= 0.9580
两组资料间的方差齐性检验
sdtest变量名1=变量名2
sdtest变量,by(分组变量)
sdtesti#obs1#mean1#sd1#obs2 #mean2#sd2
单因素方差分析及方差齐性检验
oneway因变量分组变量,[选择项]
noanova /*不打印方差分析表
missing /*将缺省值作为单独的一组
tabulate /*打印各组的基本统计量表 简写:
t
scheffe /*Scheffe法 简写:
sch
Bonferroni/*Bonferroni法 简写:
bon
sidak /*Sidak法 简写:
si
各组均数两两比较
onewayxgroup,noanovasch
Comparisonofvar3bygroup
(Scheffe)
RowMean-|
ColMean| 1 2
---------+----------------------
2| -.425
| 0.426
|
3| -.91 -.485
| 0.024 0.330
STATA软件及其应用-III
秩和检验和相关与回归分析
秩变换
配对资料的秩和检验;
两组资料的秩和检验;
多组资料的秩和检验;
直线相关分析;
等级相关分析;
直线回归分析;
秩变换
genrank 新变量=原变量
egen 新变量=rank(原变量)
配对资料的秩和检验
signrank 变量1=变量2 [if变量1!
=变量2]
两组资料的秩和检验
ranksum观察值变量,by(分组变量)
两组资料的秩和检验
两组资料的秩和检验
例3用复方猪胆胶囊治疗老年性慢性支气管炎患者403例,疗效见第
(1)~(3)栏。
问该药对此两型支气管炎疗效是否相同?
两组资料的秩和检验
expand f
ranksum x,by(g)
多组资料的秩和检验
kwallis 观察值变量,by(分组变量)
多组资料的秩和检验
直线相关和回归分析
correlate [变量名]
pwcorr [变量名],[sigstar(#)