admin 管理员组文章数量: 1086019
2024年3月26日发(作者:python工资计算公式)
stata
save命令
FileSave As
例1. 表1.为某一降压药临床试验数据,试从键盘输入Stata,并保存为Stata格式文
件。
STATA数据库的维护
排序
SORT 变量名1 变量名2 ……
变量更名
rename 原变量名 新变量名
STATA数据库的维护
删除变量或记录
drop x1 x2 /* 删除变量x1和x2
drop 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 12
egen a=seq() /*产生1到N的自然数
egen b=seq(),b(3) /*产生一个序列,每个元素重复#次
egen c=seq(),to(4) /*产生多个序列,每个序列从1到#
egen d=seq(),f(4)t(6) /*产生多个序列,每个序列从#1到#2
encode 字符变量名,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,如果该
变量的值为缺失值
纵向连接数据库
:
x0 x1
1. 3550 2450
2. 2000 2400
3. 3000 1800
4. 3950 3200
5. 3800 3250
use "E:教学上机", clear
l
x0 x1 g
1. 2450 1450 2
2. 2100 2400 2
3. 2300 3800 2
4. 1590 4200 2
append using E:教学上机
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 .
横向联接数据库
:
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
. use E:教学MPH上机
. sort bh
. save "E:教学MPH上机",replace
file E:教学MPH上机 saved
. use E:教学MPH上机
. sort bh
. merge bh using E:教学MPH上机
结果
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(#) [clear wide]
示例
统计描述及区间估计
定量资料的一般描述
均数、标准差、百分位数、中位数
summarize [变量名] [, detail ]
统计描述及区间估计
百分位数
centile [变量名] [, centile(# [# ...]) cci normal meansd level(#) ]
统计描述及区间估计
定性资料的一般描述
按照分类变量给出频数和构成比
tabulate 变量名
例2. 有三组(group)患者,男女(sex)若干人,sex=1表示男性,sex=0表示女性。
测得其血红蛋白浓度(x1,%)和红细胞计数(x2,万/mm3),资料存入c:。试
对其进行描述。
见ex5-2
. use c:mydataex2
. 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:mydataex2
. sort group
/* 在用by(分组变量)前,必须对分组变量排序
. ci x1 x2, 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岁女孩身高资料。
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 x
sum x,d
sum x if x<140
sum x if x<140,d
centile x
centile x,centile(25,50,75)
例
有五份血清的抗体效价为
1:10, 1:20, 1:40, 1:80, 1:160,
描述其抗体滴度的平均水平。
means x
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 结果
ttest x=14.02
One-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: 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.0109 P > |t| = 0.0218 P > t = 0.9891
STATA 命令
ttesti #obs #mean #sd #val
ttesti 10 12.59 1.632619 14.02
配对设计t检验
ttest 变量1=变量2
STATA 命令
ttest x1=x2
STATA 结果
ttest x1=x2
Paired t test
-------------------------------------------------------------------
Variable | Obs Mean Std. Err. Std. Dev. [95% Conf. Interval]
---------+---------------------------------------------------------
x1 | 10 12.59 .5162794 1.632619 11.42209 13.75791
x2 | 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) = 0
Ha: mean(diff) < 0 Ha: mean(diff) ~= 0 Ha: mean(diff) > 0
t = -1.3066 t = -1.3066 t = -1.3066
P < 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, unpaired
ttest x, by(g)
STATA 结果
ttest x1=x2,unp
Two-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.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
----------------------------------------------------------------------------
Degrees of freedom: 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.0420 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
各组均数两两比较
oneway x group,noanova sch
Comparison of var3 by group
(Scheffe)
Row Mean-|
Col Mean | 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 [
regress
predict
stdp
stdf
sig
star(#)
变量名]
变量名] , [sig star(#) ]
因变量 自变量
新变量 , [stdp] [stdf]
计算估计值的标准误
估计预测值y的标准差
打印相关系数假设检验之 P值
如果相关系数的假设检验之P值小于#,则在
相关系数旁打印星号
版权声明:本文标题:STATA最常用命令大全 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1711440714a594220.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论