stata 常用命令(2012-07-29 17:22:25)转载▼分类:stata标签:杂谈save命令FileSave As例1. 表1.为某一降压药临床试验数据,试从键盘输入Stata,并保存为Stata格式文件。
STATA数据库的维护排序SORT 变量名1 变量名2 ……变量更名rename 原变量名新变量名STATA数据库的维护删除变量或记录drop x1 x2 /* 删除变量x1和x2drop x1-x5 /* 删除数据库中介于x1和x5间的所有变量(包括x1和x5)drop if x<0 /* 删去x1<0的所有记录drop in 10/12 /* 删去第10~12个记录drop if x==. /* 删去x为缺失值的所有记录drop if x==.|y==. /* 删去x或y之一为缺失值的所有记录drop if x==.&y==. /* 删去x和y同时为缺失值的所有记录drop _all /* 删掉数据库中所有变量和数据STATA的变量赋值用generate产生新变量generate 新变量=表达式generate bh=_n /* 将数据库的内部编号赋给变量bh。
generate group=int((_n-1)/5)+1 /* 按当前数据库的顺序,依次产生5个1,5个2,5个 3……。
直到数据库结束。
generate block=mod(_n,6) /* 按当前数据库的顺序,依次产生1,2,3,4,5,0。
generate y=log(x) if x>0 /* 产生新变量y,其值为所有x>0的对数值log(x),当x<=0时,用缺失值代替。
egen产生新变量set obs 12egen a=seq() /*产生1到N的自然数egen b=seq(),b(3) /*产生一个序列,每个元素重复#次egen c=seq(),to(4) /*产生多个序列,每个序列从1到#egen d=seq(),f(4)t(6) /*产生多个序列,每个序列从#1到#2encode 字符变量名,gen(新数值变量名)作用:将字符型变量转化为数值变量。
STATA数据库的维护保留变量或记录keep in 10/20 /* 保留第10~20个记录,其余记录删除keep x1-x5 /* 保留数据库中介于x1和x5间的所有变量(包括x1和x5),其余变量删除keep if x>0 /* 保留x>0的所有记录,其余记录删除STATA数据库的维护替换已存在的变量值replace 变量=表达式replace bolck=6 if block==0 /* 将block=0的数全部替换为6。
replace z=. if z<0 /* 将所有小于0的z值用缺失值代替。
replace age = 25 in 17 /* 将第17条记录中的变量age替换为25。
for var x* : replace X=0 if X==. /* 将所有第一个字母为x的变量替换为0,如果该变量的值为缺失值纵向连接数据库Ex3-3.dta:x0 x11. 3550 24502. 2000 24003. 3000 18004. 3950 32005. 3800 3250use "E:\教学\上机\ex3-2.dta", clearlx0 x1 g1. 2450 1450 22. 2100 2400 23. 2300 3800 24. 1590 4200 2append using E:\教学\上机\ex3-3.dtalx0 x1 g1. 2450 1450 22. 2100 2400 23. 2300 3800 24. 1590 4200 25. 3550 2450 .6. 2000 2400 .7. 3000 1800 .8. 3950 3200 .9. 3800 3250 .横向联接数据库Ex3-5.dta:bh y0 y1 x01. 1 35 79.2 22. 3 45 47.4 83. 4 52 34.6 64. 6 66 28.0 9命令. drop _all. use E:\教学\MPH上机\ex3-5.dta. sort bh. save "E:\教学\MPH上机\ex3-5.dta",replacefile E:\教学\MPH上机\ex3-5.dta saved. use E:\教学\MPH上机\ex3-4.dta. sort bh. merge bh using E:\教学\MPH上机\ex3-5.dta结果bh x0 x1 y0 y1 _merge1. 1 12 24 35 79.2 32. 2 15 26 . . 13. 3 16 49 45 47.4 34. 4 18 57 52 34.6 35. 5 20 68 . . 16. 6 9 . 66 28 2列数据接龙Stack 变量名,into(新变量名)|group(#) [clear wide]示例统计描述及区间估计定量资料的一般描述均数、标准差、百分位数、中位数summarize [变量名] [, detail ]统计描述及区间估计百分位数centile [变量名] [, centile(# [# ...]) cci normal meansd level(#) ] 统计描述及区间估计定性资料的一般描述按照分类变量给出频数和构成比tabulate 变量名例2. 有三组(group)患者,男女(sex)若干人,sex=1表示男性,sex=0表示女性。
测得其血红蛋白浓度(x1,%)和红细胞计数(x2,万/mm3),资料存入c:\mydata\ex2.dta。
试对其进行描述。
见ex5-2. use c:\mydata\ex2. tab group. tab sex. tab group, sum(x1). tab group, sum(x2)统计描述及区间估计可信区间的估计ci 变量 [, level(#) binomial poisson exposure(观察数变量) by(分组变量) total ] cii 观察数均数标准差 [, level(#) ]level(#) /* 指定可信度,缺失时为95(%)by(分组变量) /* 指定按分组变量分别估计均数的可信区间total /* 指定除按分组变量估计可信区间外,还对整个数据估计,仅用于指定了by(分组变量)时. use c:\mydata\ex2. sort group/* 在用by(分组变量)前,必须对分组变量排序. ci x1 x2, by(group)STATA的作图作图命令GRAPHgraph [变量名] [, 图形类型通用选择项特殊选择项]图形类型histogram /* 直方图,为缺省值。
oneway /* 一维散点图twoway /* 二维散点图、线图matrix /* 二维散点图阵bar /* 条图、百分条图pie /* 圆(饼)图box /* 箱式图star /* 星形图STATA的作图作图命令GRAPH常用选项bin(#) /* 将数据分几组,缺省为5。
freq /* 指定纵轴用频数表示,否则为频率。
normal /* 给直方图加上相应正态曲线。
xlab/ylab/[(#,……,#)] /*指定坐标轴的界点。
b2/l2[(“字符串”)] /*指定坐标轴的副标题。
STATA的作图如何利用STATA绘制频数分布图?例 130名14岁女孩身高资料。
gra x,bin(10) freq normal xlab(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)资料如下sum xsum x,dsum x if x<140sum x if x<140,dcentile xcentile x,centile(25,50,75)例有五份血清的抗体效价为1:10, 1:20, 1:40, 1:80, 1:160,描述其抗体滴度的平均水平。
means xSTATA的作图作图命令graph 简写gragra [变量名] [, 图形类型通用选择项特殊选择项]图形类型histogram /* 直方图oneway /* 一维散点图twoway /* 二维散点图、线图matrix /* 二维散点图阵bar /* 条图、百分条图pie /* 圆(饼)图box /* 箱式图star /* 星形图直方图数值变量资料的统计分析样本均数与总体均数比较的t检验配对设计 t检验成组设计t 检验方差齐性检验样本均数与总体均数比较的t检验ttest 变量名= #valttesti #obs #mean #sd #val例问题:统计量与参数不同的两种可能其一:抽样误差(偶然的、随机的、较小的)其二:本质上的差别(必然的、大于随机误差)例样本:某医生随机抽查10名某病患者的血红蛋白,求得其均数为12.59 (g/dl),标准差为1.632619 (g/dl) 。
问题:该病患者的平均Hb含量是否与正常人的平均Hb含量相同 (正常人的平均Hb含量为14.02 (g/dl)。
STATA 命令ttest 变量名= #valttest x =14.02STATA 结果ttest x=14.02One-sample t test---------------------------------------------------------------------------- Variable | Obs Mean Std. Err. Std. Dev. [95% Conf. Interval]---------+------------------------------------------------------------------x | 10 12.59 .5162794 1.632619 11.42209 13.75791---------------------------------------------------------------------------- Degrees of freedom: 9Ho: mean(x) = 14.02Ha: mean < 14.02 Ha: mean ~= 14.02 Ha: mean > 14.02t = -2.7698 t = -2.7698 t = -2.7698P < t = 0.0109 P > |t| = 0.0218 P > t = 0.9891STATA 命令ttesti #obs #mean #sd #valttesti 10 12.59 1.632619 14.02配对设计t检验ttest 变量1=变量2STATA 命令ttest x1=x2STATA 结果ttest x1=x2Paired t test-------------------------------------------------------------------Variable | Obs Mean Std. Err. Std. Dev. [95% Conf. Interval]---------+---------------------------------------------------------x1 | 10 12.59 .5162794 1.632619 11.42209 13.75791x2 | 10 13.27 .3415813 1.080175 12.49729 14.04271---------+--------------------------------------------------------- diff | 10 -.6799999.5204272 1.645735 -1.857288 .4972881-------------------------------------------------------------------Ho: mean(x1 - x2) = mean(diff) = 0Ha: mean(diff) < 0 Ha: mean(diff) ~= 0 Ha: mean(diff) > 0t = -1.3066 t = -1.3066 t = -1.3066P < t = 0.1119 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 命令ttest x1=x2, unpairedttest x, by(g)STATA 结果ttest x1=x2,unpTwo-sample t test with equal variances---------------------------------------------------------------------------- Variable | Obs Mean Std. Err. Std. Dev. [95% Conf. Interval]---------+------------------------------------------------------------------ x1 | 14 4.377857 .3875 1.449892 3.540714 5.215x2 | 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---------------------------------------------------------------------------- Degrees of freedom: 23Ho: mean(x1) - mean(x2) = diff = 0Ha: diff < 0 Ha: diff ~= 0 Ha: diff > 0t = -1.8066 t = -1.8066 t = -1.8066P < t = 0.0420 P > |t| = 0.0839 P > t = 0.9580两组资料间的方差齐性检验sdtest 变量名1 = 变量名2sdtest 变量,by(分组变量)sdtesti #obs1 #mean1 #sd1 #obs2 #mean2 #sd2单因素方差分析及方差齐性检验oneway 因变量分组变量,[选择项]noanova /* 不打印方差分析表missing /* 将缺省值作为单独的一组tabulate /* 打印各组的基本统计量表简写:tscheffe /* Scheffe法简写:schBonferroni /* Bonferroni法简写:bonsidak /* Sidak法简写:si各组均数两两比较oneway x group,noanova schComparison of var3 by group(Scheffe)Row Mean-|Col Mean | 1 2---------+----------------------2 | -.425| 0.426|3 | -.91 -.485| 0.024 0.330STATA软件及其应用-III秩和检验和相关与回归分析秩变换配对资料的秩和检验;两组资料的秩和检验;多组资料的秩和检验;直线相关分析;等级相关分析;直线回归分析;秩变换genrank 新变量= 原变量egen 新变量=rank(原变量)配对资料的秩和检验signrank 变量1 = 变量2 [if 变量1!=变量2]两组资料的秩和检验ranksum 观察值变量,by(分组变量)两组资料的秩和检验两组资料的秩和检验例3 用复方猪胆胶囊治疗老年性慢性支气管炎患者403例,疗效见第(1)~ (3)栏。