Baidu
map

SAS第五课:定量资料的统计描述和t、u检验

2012-04-17 生物谷 生物谷

从本章开始,我们将正式开始使用SAS解决我们的统计问题。从前面的几章可知,SAS的主要功能是由不同的程序步来体现的。因此在以后的各章中,我们将对每种问题重点介绍一些常用的程序步,以及它们的输出结果的解释。 对于定量资料的统计描述和简单推断,SAS提供了三个强有力的程序步,它们是: UNIVARIATE过程 提供单个变量的详细描述和对其分布类型的检验。 MEANS过程 提供单个或多个变量

从本章开始,我们将正式开始使用SAS解决我们的统计问题。从前面的几章可知,SAS的主要功能是由不同的程序步来体现的。因此在以后的各章中,我们将对每种问题重点介绍一些常用的程序步,以及它们的输出结果的解释。

对于定量资料的统计描述和简单推断,SAS提供了三个强有力的程序步,它们是:

  • UNIVARIATE过程 提供单个变量的详细描述和对其分布类型的检验。
  • MEANS过程 提供单个或多个变量的简单描述,对于多个变量,它的输出格式紧凑,便于阅读。
  • TTEST过程 对变量进行t/u检验。

§5.1

5.1 文本文件“C:\USER\WTLI1_1.DAT”中已存入某市1107岁男子童的身高资料(cm) ,请计算均数、标准差s、变异系数CV(卫统第三版p62.1)。

解:该题应首先用数据步建立一个数据集,然后调用UNIVARIATE过程或MEANS过程来求出所需要的统计量。具体的程序如下:

设定数据库环境:

LIBNAME A 'C:\USER';

数据步,建立数据集:

DATA A.WTLI1_1;

 INFILE 'C:\USER\WTLI1_1.DAT';

 INPUT X @@;

RUN;

UNIVARIATEMEANS过程,求出所需要的统计量:

PROC UNIVARIATE DATA=A.WTLI1_1;

PROC MEANS DATA=A.WTLI1_1

N MEAN STD CV ;

 VAR X;

 VAR X;

RUN;

RUN;

5.2 某医生测得18例慢支炎患者与16例健康人的尿17酮类固醇排出量 (mg/dl)分别为X1和X2,问两者均数是否不同(医统第二版P192.17)?

解:这是成组设计的两样本均数比较的t检验,程序应首先建立数据集,然后调用TTEST过程进行检验,在检验的同时也可以得到两个样本的简单描述。

设定数据库环境:

LIBNAME A 'C:\USER';

数据步,建立数据集,这里采用直接输入数据的方法:

DATA A.YTLI2_17;

 INPUT GROUP VALUE @@;

 CARDS;

 1 3.14 1 5.83 1 7.35 1 4.62 1 4.05 1 5.08 1 4.98 1 4.22 1 4.35 1 2.35

 1 2.89 1 2.16 1 5.55 1 5.94 1 4.4 1 5.35 1 3.8 1 4.12

 2 4.12 2 7.89 2 3.24 2 6.36 2 3.48 2 6.74 2 4.67 2 7.38 2 4.95 2 4.08

 2 5.34 2 4.27 2 6.54 2 4.62 2 5.92 2 5.18

 ;

RUN;

TTEST过程,进行两样本的t检验。

PROC TTEST DATA=A.YTLI2_17;

 VAR VALUE;

 CLASS GROUP;

RUN;

§5.2 UNIVARIATE过程

Univariate过程对数值变量给出比较详细的变量分布的描述,其中包括:

  • 变量的极端值。
  • 常用的百分位数,包括四分位数和中位数。
  • 用几个散点图描绘变量的分布。
  • 频数表。
  • 确定数据为正态分布的检验。

5.2.1 语法格式

Univariate过程的语法格式如下:

PROC UNIVARIATE [ DATA= <数据集名> [选项] ];

指定要分析的数据集名及选项

 [ VAR <变量名列> ;

指定要分析的变量名列

 BY <变量名列> ;

按变量名列分组统计,要求数据集已按该变量名列排序

 FREQ <变量名> ;

表明该变量为分析变量的频数

 WEIGHT <变量名> ;

表明分析变量在统计时要按该变量权重

 ID <变量名> ;

输出时加上该变量作为索引

 OUTPUT OUT= <数据集名>

指定统计量的输出数据集名

 关键字= <新变量名列>...

指定统计量对应的新变量名

 pctlpts=<百分位数, ...>

指定需要的百分位数

 pctlpre=<新变量名列>] ;

指定所需百分位数对应的输出变量名

如果省略所有非必需的语句和选项,则UNIVARIATE过程按默认情况输出全部变量的全部常用统计量。

5.2.2 语法说明

【选项】

Univariate过程常用的选项如下:

  • NOPRINT 禁止统计报告在OUTPUT视窗中输出
  • PLOT 绘出茎叶图、箱式图和正态概率图
  • FREQ 给出频数表
  • NORMAL 对变量进行正态性检验

【关键字】

SAS中用关键字来指定所需要的统计量,事实上结果输出中用的就是各种关键字,常用的关键字有:

  • 基本统计量 N MEAN STD(标准误) CV SUM VAR(方差) RANG
  • 百分位数描述 MIN P1 P5 P10 Q1 MEDIAN Q3 P90 P95 P99 MAX
  • 与假设检验有关的统计量 STDMEAN(标准误) T

5.2.3 结果解释

在默认的情况时,Univariate过程会输出绝大部分统计量,此时的输出结果如下:

Variable=变量名           变量标签
            Moments   和矩有关的统计量             Quantiles(Def=5)  分位间距统计量
N           样本量  Sum Wgts   权重总和   100% Max   最大值        99%    99%百分位数
Mean          均数  Sum        总和        75% Q3   75%百分位数    95%    95%百分位数
Std Dev     标准差  Variance   方差        50% Med  50%百分位数    90%    90%百分位数
Skewness  偏度系数  Kurtosis   峰度系数    25% Q1    25%百分位数   10%   10%百分位数
USS   未校正平方和  CSS        校正平方和   0% Min   最小值         5%    5%百分位数
CV        变异系数  Std Mean   标准化均数                           1%    1%百分位数 
T:Mean=0 变量总体均数为0的t检验     Pr>|T|   t检验的p值         Range     全距
Num ^= 0 变量值非0的例数            Num > 0  变量值大于0的例数  Q3-Q1     四分位间距
M(Sign)  变量总体均数为0的符号检验  Pr>=|M|  符号检验的p值      Mode      众数
Sgn Rank 变量总体均数为0的秩和检验  Pr>=|S|  秩和检验的p值
                                    Extremes  极端值统计
                        Lowest    Obs        Highest    Obs
                       老  幺 (观察值序号)   五大值(观察值序号)
                       次小值 (观察值序号)   四大值(观察值序号)
                       三小值 (观察值序号)   三大值(观察值序号)
                       四小值 (观察值序号)   次大值(观察值序号)
                       五小值 (观察值序号)   大哥大(观察值序号)

5.2.4 应用实例

5.3 某地101例健康男子血清总胆固醇值测定结果已存入文本文件“c:\user\WT1_1.dat”中,请绘制直方图,计算均数、标准差s、变异系数CV、中位数Mp2.5p97.5(卫统p233 1.1题)。

解:UNIVARIATE过程的默认输出中并不给出p2.5p97.5,因此程序中要加以相应修改,最后在OUTPUT视窗中只会输出所需的几个统计量,具体程序如下:

libname a 'c:\user';

指定c:\user文件夹为数据库a

data a.wt1_1;

数据步开始,指定要建立的数据集为a库的wt1_1

 infile 'c:\user\wt1_1.dat';

采用外部文件读入方式,文件名为c:\user\WT1_1.dat

 input x @@;

输入的变量为x,采用连续输入的格式

proc gchart data=a.wt1_1;

调用绘图程序步gchart,所用数据集为a.wt1_1

 vbar x ;

绘出竖直条图,用于绘图的变量为x

proc univariate data=a.wt1_1 noprint;

调用程序步univariate,并且禁止在OUTPUT视窗中输出

 var x;

要分析的变量为x

 output out=temp

指定输出数据集为work.temp,

 n=n mean=xbar std=s cv=cv median=m

nmeanstdcvmedian按指定变量名存

 pctlpts=2.5,97.5 pctlpre=per;

指定输出p2.5p97.5,其输出变量名以per开头。

proc print data=temp;

将数据集work.temp的内容打印输出

run;

开始运行以上程序

5.4 50例链球菌咽峡炎患者的潜伏期如下,计算其均数、中位数和几何均数(卫统p233 1.3题)。

12~

24~

36~

48~

60~

72~

84~

96~

108~120

1

7

11

11

7

5

4

2

2

解:由于几何均数无法直接得到,因此将数据集加以对数变换,求出均数后再行反对数变换得到几何均数,程序如下:

libname a 'c:\user';

指定c:\user文件夹为数据库a

data a.wt1_3;

数据步开始,指定要建立的数据集为a库的wt1_3

 input x f @@;

输入的变量为xf,采用连续输入的格式

 x=x+6;

将变量x的值更正到每个组段的组中值处

 logx=log(x);

定义新变量logx为变量x的自然对数,用于算出几何均数

 cards;

数据块开始

 12 1 24 7 36 11 48 11 60 7 72 5 84 4 96 2 106 2

数据块

;

数据块结束

proc print;

将数据集a.wt1_3的内容打印输出

proc univariate data=a.wt1_3 noprint;

调用程序步univariate,并且禁止在OUTPUT视窗中输出

 var x logx;

要分析的变量为xlogx

 freq f;

指定变量f代表分析变量x的频数

 output out=temp n=n mean=xbar logxmean median=m ;

输出数据集和统计量的定义

data temp2;

数据步开始,指定要建立的数据集为work.temp2

 set temp;

work.temp2继承work.tmep的全部数据

 g=exp(logxmean);

产生新变量g,它等于elogxmean

 drop logxmean;

work.temp2中删除临时变量logxmean

proc print data=temp2;

输出数据集work.temp2中的数据

run;

开始运行以上程序

请注意,这里UNIVARIATE过程有两个分析变量X和LOGX,因此在OUTPUT语句中MEAN=后跟了两个变量名,它们分别存储两个变量的均数,而其余的关键字后只有一个变量名,则它们只存储分析变量序列的第一个变量X的统计结果。

§5.3 MEANS过程

Means过程提供单个或多个变量的简单描述。和Univariate过程相比,它更倾向于描述已经明确样本所在总体符合正态分布的变量,因此它不提供百分位数,但可以提供95%可信区间。同时在多个变量输出时,它的输出格式紧凑,便于阅读。

5.3.1 语法格式

PROC MEANS [ DATA= <数据集名> [选项]

指定要分析的数据集名及一些选项

 [统计量关键字列表] ] ;

列出需要的统计量

 [VAR <变量名列>;

要分析的变量名列

 BY <变量名列>;

按变量名列分组统计,要求数据集已按变量名列排序

 CLASS <变量名列>;

按变量名列分组统计,不要求数据集排序

 FREQ <变量名>;

表明该变量为分析变量的频数

 WEIGHT <变量名>;

表明分析变量在统计时要按该变量权重

 ID <变量名列>;

输出时加上该变量作为索引

 OUTPUT

指定统计量的输出数据集名

 关键字= <新变量名列>... ] ;

指定统计量对应的新变量名

5.3.2 语法说明

【选项】

Means过程常用的选项如下:

  • NOPRINT 禁止统计报告在OUTPUT视窗中输出
  • MAXDEC=n 给出列表输出的最大小数位数,缺省值为2

【统计量关键字】

MEANS过程中常用的统计量关键字有:

  • 基本统计量 N MEAN STD CV SUM VAR RANG MIN MAX
  • 与假设检验有关的统计量 STDERR(标准误) T PRT(t对应的p) LCLM(可信区间下限) UCLM(可信区间上限)

注意Means过程中标准误的关键字是STDERR,而Univariate过程中为STDMEAN,另外LCLM和UCLM这两个关键字也是Univariate过程所没有的。

5.3.3 结果解释

Univariate过程不同,MEANS过程在默认情况下只输出样本量、均数、标准差、最小值和最大值,如例5.1的数据,如果MEANS过程不加任何选项,则输出如下:

                        Analysis Variable : X    分析变量名为X
             N          Mean       Std Dev        Minimum        Maximum
           ---------------------------------------------------------------
            110    119.7272727    4.7413254     108.2000000   132.5000000
           ---------------------------------------------------------------

可见Means过程的输出结构极为紧凑。

5.3.4 应用实例

5.5 给出例5.1的均数、标准差s、变异系数CV95%可信区间,并检验其总体均数是否为0(卫统p233 1.1题)。

解:如果数据集a.wt1_1已经建立,则程序如下:

proc means data=a.wt1_1 n mean std cv lclm uclm t prt ;

 var x;

run;

§5.4 TTEST过程

顾名思义,TTEST过程就是用于进行两样本均数的比较,它给出两总体方差齐和不齐时的检验结果,并同时做方差齐性检验。综合两者的结果,即可做出判断。

事实上,ttest过程的功能非常有限,只能做一般的两样本t检验,对于按频数表格式输入的资料,我们只能用以后要介绍的ANOVA等过程来分析。

5.4.1 语法格式

PROC TTEST [ DATA= <数据集名>

指定要分析的数据集名

[COCHRAN] ] ;

要求在方差不齐时做COCHRAN近似

 CLASS <变量名>;

必需,指定一个两分类的分组变量

 [ VAR <变量名列>;

指定要检验的变量名列

 BY <变量名列> ] ;

按变量名列分组统计

5.4.2 结果解释

以例5.2TTEST过程为例,它的输出结果如下:

                                        TTEST PROCEDURE
Variable: VALUE   分析变量名为VALUE
GROUP    N      Mean      Std Dev    Std Error    Variances    T       DF    Prob>|T|
       样本量    均数      标准差       标准误        方差   统计量t值  自由度    p值
------------------------------------------------  ---------------------------------
    1    18   4.45444444 1.32446314  0.31217896   Unequal  -1.8132    31.2   0.0794
    2    16   5.29875000 1.38200760  0.34550190   Equal    -1.8179    32.0   0.0785

For H0: Variances are equal, F' = 1.09  DF = (15,17)   Prob>F' = 0.8589

可见该结果分为三大部分:第一部分为两组各种描述统计量的值,第二部分分别给出两组所在总体方差齐和方差不齐时的t检验结果,第三部分为方差齐性检验,因此该过程一共进行了三个假设检验。对于无效假设H0:两总体方差齐的检验结果为F' = 1.09DF = (15,17)p = 0.8589,可见在本例中方差是齐的,从而应选用方差齐时的t检验结果,即t= -1.8179ν=32p=0.0785,按α=0.05水准,不拒绝H0,尚不能认为慢支炎患者与健康人的尿17酮类固醇排出量不同。

5.4.3 应用实例

5.6 某医院对9例慢性苯中毒患者用中草药一号抗苯一号治疗,得下列白细胞总数(109/L),问该药是否对白细胞总数有影响(卫统p225 2.3题)?

病人号

1

2

3

4

5

6

7

8

9

治疗前

6.0

4.5

5.0

3.4

7.0

3.8

6.0

3.5

4.3

治疗后

4.2

5.4

6.3

3.8

4.4

4.0

5.9

8.0

5.0

解:该题为样本差值均数和总体均数为0比较的t检验,TTEST过程无法完成。这里用MEANS过程来处理,程序如下:

libname a 'c:\user';

data a.wt2_3;

 input x y @@;

 tempvar=x-y;

用新变量tempvar来记录同一病人治疗前后白细胞的差值

 cards;

 6.0 4.2 4.8 5.4 5.0 6.3 3.4 3.8

 3.4 3.8 7.0 4.4 3.8 4.0 6.0 5.9

 8.0 5.0

;

proc means n mean std

 stderr t prt ;

利用Means过程检验差值总体均数是否为0

 var tempvar;

要分析的变量为tempvar

run;

开始运行程序

5.7 将钩体病人的血清分别用标准株和水生株做凝溶实验,测得稀释倍数如下。问两组的平均效价有无区别(卫统p226 2.5题)。

标准株:100 200 400 400 400 400 800 1600 1600 1600 3200

水生株:100 100 100 200 200 200 200 400 400

解:程序如下:

libname a 'c:\user';

data a.wt2_5;

 input group x @@;

 logx=log(x);

将数据做自然对数转换

版权声明:
本网站所有内容来源注明为“梅斯医学”或“MedSci原创”的文字、图片和音视频资料,版权均属于梅斯医学所有。非经授权,任何媒体、网站或个人不得转载,授权转载时须注明来源为“梅斯医学”。其它来源的文章系转载文章,或“梅斯号”自媒体发布的文章,仅系出于传递更多信息之目的,本站仅负责审核内容合规,其内容不代表本站立场,本站不负责内容的准确性和版权。如果存在侵权、或不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
在此留言
评论区 (1)
#插入话题
  1. [GetPortalCommentsPageByObjectIdResponse(id=2007749, encodeId=58a6200e74978, content=<a href='/topic/show?id=cf4d1590956' target=_blank style='color:#2F92EE;'>#SAS#</a>, beContent=null, objectType=article, channel=null, level=null, likeNumber=78, replyNumber=0, topicName=null, topicId=null, topicList=[TopicDto(id=15909, encryptionId=cf4d1590956, topicName=SAS)], attachment=null, authenticateStatus=null, createdAvatar=, createdBy=8e4c53, createdName=jiyangfei, createdTime=Fri Dec 14 16:37:00 CST 2012, time=2012-12-14, status=1, ipAttribution=)]
    2012-12-14 jiyangfei

相关资讯

SAS6.12教程说明

SAS6.12教程:所用版本为SAS for Windows 6.12版,向下兼容至6.04版。大部分来自华西医科大学研究生用内部教材《SAS上机实习指导》(有删节)。 软件介绍>软件介绍 一、概况: SAS系统全称为Statistics Analysis System,最早由北卡罗来纳大学的两位生物统计学研究生编制,并于1976年成立了SAS软件研究所,正式推出了SAS软件。SAS

SAS第三课:SAS程序基本语法入门

  从本质上讲,SAS是一种完善的第四代计算机语言。因此要真正掌握它,我们仍然要抛开其华丽的外表,从学习它的核心――SAS程序开始。 现在,让我们将SAS看成一个计算能力极强的统计学白痴(之所以这样说,是因为它计算能力虽然极强,却只能帮你计算而不能提出自己的实验设计方案或研究方向来),而你有一个非常小的关于数据分析的问题要请它帮忙。自然你要开口提出请求,无论措辞是委婉动听还是直截了

SAS第二课:SAS/ASSIST视窗简介

SAS是一个庞大的系统,它由许多模块组成,每个模块分别完成不同功能。由于SAS最初是为专业统计人员设计的(这一点和SPSS恰恰相反),因此使用上以编程为主,初学者掌握较为困难。现在,微机操作系统已经进入了WINDOWS时代,而WINDOWS软件的一个重要特点就是易学易用。要想在市场中继续领先,SAS必须推出能体现WINDOWS软件这一特色的新界面,SAS/ASSIST视窗就是这一努力的结果。虽然它

SAS第四课:如何用SAS做统计图

统计图是统计描述的重要工具,它可以直观的反映出事物间的数量关系。因此,许多统计软件均提供了强大的统计做图功能。SAS的许多程序步,如Univariate过程等,也附有相应的绘图功能,这些我们拟在相关章节中讲述。本章将向大家介绍两个专门用于绘图的程序步――GCHART过程和GPLOT过程。前者用于绘制各种常用的统计图,而后者则用于绘制散点图。 在早期的DOS版本中,SAS只提供低分辨率图形(即用键

SAS**课:SAS界面及基本操作概述

  欢迎进入SAS世界!十几年来,SAS系统凭借其强大而完备的功能在统计软件界独占鳌头。如今,操作系统已进入了Windows时代,SAS的Windows版本也已日渐成熟。因此我们将以其Windows 6.12版本为主讲述SAS系统的使用。 在本章,我们将首先对SAS系统的界面及各部分的功能作简要介绍,随后以一个简单的SAS程序为例,讲述一些常用的操作,为以后深入学习SAS打下基础。

Baidu
Baidu
Baidu
Baidu