admin 管理员组

文章数量: 1086019


2024年3月26日发(作者:python工资计算公式)

stata

save命令

FileSave 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值小于#,则在

相关系数旁打印星号


本文标签: 变量 均数 资料 数据库