您现在的位置: SPSS家园 >> sas教程 >> 基础教程 >> 教程正文
  • 此栏目下没有推荐教程
  • sas教程:第五章 定量资料的统计描述和t、u检验
    作者:佚名    教程来源:本站原创    点击数:    更新时间:2007-10-30

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

     

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

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

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

    §5.1 引 例

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

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

    ① 设定数据库环境:

    LIBNAME A 'C:\USER';

    ② 数据步,建立数据集:

    DATA A.WTLI1_1;

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

     INPUT X @@;

    RUN;

    ③ UNIVARIATE或MEANS过程,求出所需要的统计量:

    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,问两者均数是否不同(医统第二版P19例2.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、中位数M、p2.5和p97.5(卫统p233 1.1题)。

    解:UNIVARIATE过程的默认输出中并不给出p2.5和p97.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

    将n、mean、std、cv、median按指定变量名存入

     pctlpts=2.5,97.5 pctlpre=per;

    指定输出p2.5和p97.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 @@;

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

     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;

    要分析的变量为x和logx

     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 <OUT= 数据集名>

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

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

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

    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、变异系数CV和95%可信区间,并检验其总体均数是否为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.2的TTEST过程为例,它的输出结果如下:

                                            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.09,DF = (15,17),p = 0.8589,可见在本例中方差是齐的,从而应选用方差齐时的t检验结果,即t= -1.8179,ν=32,p=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);

    将数据做自然对数转换

     cards;

     1 100 1 200 1 400 1 400 1 400 1 400

     1 800 1 1600 1 1600 1 1600 1 3200

     2 100 2 100 2 100 2 200 2 200 2 200

     2 200 2 400 2 400

    ;

    proc print;

    proc ttest ;

    调用ttest过程进行t检验

     class group;

    分组变量为group

     var logx;

    要统计的变量为logx

    run;

     

    第五章  多个率比较的SAS编程实现

    两个率或多个率的比较,我们非常熟悉的就是采用卡方检验的方法。除此之外,在特定条件下还可根据正态近似的原则采用u检验的方法进行分析。在SAS中,卡方检验的功能包含在freq过程之中,下面我们先熟悉一下freq过程的基本内容和功能。

    一、freq过程的语句和功能

    freq过程包含在SASBASE模块中,它可以执行描述性统计以及假设检验的功能,能产生从1维到n维的表格,即频数表以及列联表。对于单因素的频数表,freq过程可以进行比率之间的比较;对于列联表资料(两个或更多因素),它可以对两因素间的关系进行统计学推断,必要时可以按照某些因素进行分层分析。对于两因素关系的统计学分析,freq过程不仅可以检验关系的存在与否,还可以给出这种关系的强度。

    下表(表5.1)是freq过程对于列联表资料可以进行的分析以及计算的统计量。

    5.1

    卡方检验;

    关联性的推断及其强度测量;

    2×2表资料危险度计算以及危险度差别的检验;

    2×2表资料OR值以及相对危险度的计算;

    趋势检验;

    一致性检验;

    Cochran-Mantel-Haenszel 统计量计算。

    1. freq过程的一般格式

    freq过程的一般格式如下所示。

    PROC FREQ <选项列表>

     BY <DESCENDING> 变量名-1 <...<DESCENDING> 变量名-n> <NOTSORTED>

     EXACT 统计量关键字 </ 选项列表>

     OUTPUT 统计量关键字 <OUT=SAS-data-set>

     TABLES 因素表达式 </ 选项列表>

     TEST 统计量关键字;

     WEIGHT 变量名;

    RUN

    QUIT

    表面上看起来freq过程的语句并不复杂,但它可实现很多复杂的功能。下面就freq过程中特有的语句和选项加以简要说明。

    2. freq过程中各语句及选项的格式及功能

    2.1 proc freq语句用以调用freq过程,标志freq过程的开始,其后的选项除和其它过程相同的一般性的控制功能外,没有什么特别之处,我们一般也不太用到。

    2.2 by语句和以前的内容完全相同,这里不再说明。

    2.3 Exact语句用以控制对精确概率的计算以及对指定统计量进行可信限估计。对于以下假设检验,freq过程可以计算其精确P值:拟合优度卡方检验(chi-square goodness-of-fit)、Pearson卡方检验(Pearson chi-square)、似然比卡方检验(likelihood-ratio chi-square)、 Mantel-Haenszel卡方检验(Mantel-Haenszel chi-square)、Fisher’s确切概率检验(Fisher's exact test)、Jonckheere-Terpstra检验(Jonckheere-Terpstra test)、Cochran-Armitage 趋势检验(Cochran-Armitage test for trend)以及McNemar's检验(McNemar's test for two-way tables

    2.4 Output语句大家已很熟悉,它用于将结果数据输出到指定的数据集。

    2.5 Tables语句在freq过程中算是非常关键的语句,它用以指定所要分析的因素如何构成列联表,并在选项中指定所要计算的统计量。其中的因素表达式就是列联表的构成方式,如果只有一个因素,就将该因素的变量名作为表达式;如果因素有两个或以上,各因素之间以星号——“*”相连。这里大家要明确一点,SAS对于两个以上因素组成的表达式,将排在最后的两个变量作为列联表的行和列,而其它排在前面的因素则作为分层因素对待。比如对于表达式:A*B*C*DSAS绘制出k(等于AB两因素水平数的乘积)个交叉表,表格的行因素为C,列因素为D

    在同一个tables语句中,你可以指定多个因素表达式以完成多个交叉表的绘制。灵活运用圆括号的分组语法可达到此目的,具体方法如以下表格(表5.2)中显示的例子。

    5.2  多表格表达式示例

    表达式

    等同表达式

    tables a*(b c);

    tables a*b a*c;

    tables (a b)*(c d);

    tables a*c b*c a*d b*d;

    tables (a b c)*d;

    tables a*d b*d c*d;

    tables a--c;

    tables a b c;

    tables (a--c)*d;

    tables a*d b*d c*d;

    Tables语句的选项主要用以指定所要进行的具体统计分析方式,如:agree all chisq alpha fisher trend等等,分别指定SAS进行不同的统计计算。

    2.6 test语句用以指定SAS对给定的统计量进行近似检验,此语句的有效性需要相应的tables语句选项来保证。

    2.7 weight语句以前已经讨论过,这里的完全一样。

    对于freq过程大家已经有了一个大概的了解,下面我们用实例来演示freq过程在各种情况下处理相应资料的操作方法。

     

    二、freq过程对各种类型计数资料处理操作方法

    1. 两个率比较的卡方检验

    5-1  一项治疗糖尿病的临床试验中,将268名患者随机分为两组,一组204人服用盐酸苯乙双胍,死于心血管病的有26人,另一组64人服用安慰剂,死于心血管病的有2人,请分析两种疗法的心血管病病死率有无差异?

    此例为典型的四格表资料,是我们最乐意用卡方检验进行分析的数据形式,非常简单的几条语句就可完成对数据的分析。

    编制程序如下:

    libname a 'e:\data\';

    data a.case5_1;

      input treat outcome number;

      datalines;

      1 1 178

      1 2 26

      2 1 62

      2 2 2

      ;

    proc freq;

      weight number;

      tables treat*outcome/chisq;

    run;quit;

    此处treat代表不同的治疗药物,1表示服用盐酸苯乙双胍,2表示服用安慰剂;outcome代表患者的结局(死亡与否),1表示生存,2表示死于心血管病,number则表示患者的人数。Tables语句后的chisq选项指示SAS进行卡方统计量的计算。

    运行上述程序,结果如下。

     

                            The SAS System      20:29 Wednesday, November 27, 2002   5

     

                                             The FREQ Procedure

     

                                   Table of treat by outcome

     

                                         treat     outcome

     

                                     Frequency|

                                     Percent  |

                                     Row Pct  |

                                     Col Pct  |       1|       2|  Total

                                       ---------+--------+--------+

                                            1 |    178 |     26 |    204

                                              |  66.42 |   9.70 |  76.12

                                              |  87.25 |  12.75 |

                                              |  74.17 |  92.86 |

                                        ---------+--------+--------+

                                            2 |     62 |      2 |     64

                                              |  23.13 |   0.75 |  23.88

                                              |  96.88 |   3.13 |

                                              |  25.83 |   7.14 |

                                        ---------+--------+--------+

                                     Total         240       28      268

                                                 89.55    10.45   100.00

     

                                 The SAS System      20:29 Wednesday, November 27, 2002   6

     

                                             The FREQ Procedure

     

                                  Statistics for Table of treat by outcome

     

                           Statistic                     DF       Value      Prob

                           ------------------------------------------------------

                           Chi-Square                  1      4.8188    0.0282

                           Likelihood Ratio Chi-Square    1      6.0021    0.0143

                           Continuity Adj. Chi-Square     1      3.8454    0.0499

                           Mantel-Haenszel Chi-Square     1      4.8008    0.0284

                           Phi Coefficient                      -0.1341

                           Contingency Coefficient               0.1329

                           Cramer's V                           -0.1341

     

     

                                            Fisher's Exact Test

                                     ----------------------------------

                                     Cell (1,1) Frequency (F)       178

                                     Left-sided Pr <= F          0.0177

                                     Right-sided Pr >= F         0.9967

     

                                     Table Probability (P)       0.0144

                                     Two-sided Pr <= P           0.0330

     

                                              Sample Size = 268

     

    结果给出的内容很是详细,第一部分是四格表的内容,每一个格子内给出四项内容,分别为频数、百分比、行百分比以及列百分比。第二部分为卡方检验的结果,SAS在默认状态下即给出此若干项统计量的结果以及相应的概率,具体的含义大家从字面上就可看出来,这里我不再多说。最后,SAS还给出fisher精确概率的计算结果,提供给我们更多的选择。

    对于病例对照研究,可在tables语句后添加选项‘cmh’,SAS即会给出“Cochran-Mantel-haenszel”统计量的结果,以及相对危险度、比数比等重要指标。如果资料为11配对资料,即四格表中数据为不同组合的对子数,则需要采用McNemar检验,此时只需在tables语句后添加选项‘agree’,或添加语句——“exact mcnem;”即可。

    2. R*C表资料的卡方检验

    5-2 1135例绝经后出血的妇女进行病理分析,结果见表5.3,请分析病变类型是否与年龄有关。

    5.3  不同年龄妇女绝经后出血的病变类型

    年龄组/

    病变类型,例数(百分比)

    合计

    功能性

    恶性

    良性

    50

    6044.4

    1611.9

    5943.7

    135

    51~

    20833.3

    11117.8

    30649.0

    625

    61~

    6625.0

    7929.2

    11945.1

    264

    71~

    2118.9

    4742.3

    4338.7

    111

    合计

    35531.3

    25322.3

    52746.4

    1135

    此例为4*3表资料,对于年龄和病变类型两个属性间的独立性检验,完全可以使用和前述四格表资料分析方法相同的pearson卡方检验,程序的步骤和内容也是基本相同的。

    对此例资料进行分析的程序如下:

    libname a 'e:\data\';

    data a.case5_2;

      do age=1 to 4;

        do pathtype=1 to 3;

        input count@@;

        output;

       end;

      end;

      datalines;

      60 16 59 208 111 306

      66 79 119 21 47 43

      ;

    run;

    proc freq;

      tables age*pathtype/chisq;

      weight count;

    run;

    quit;

    大家可以看到,和上例的程序相比,此例并无多少差异,SAS对于交叉表形式的计数资料,进行卡方检验的程序是完全相同的。其不同的地方是根据我们对资料分析需要的不同而有所区别,比如我们对于线性趋势的检验一般只针对R*C表资料。

    提交以上程序,结果如下。

                             The SAS System       20:54 Thursday, November 28, 2002  26

     

                                             The FREQ Procedure

     

                                          Table of age by pathtype

     

                                age       pathtype

     

                                Frequency|

                                Percent  |

                                Row Pct  |

                                Col Pct  |       1|       2|       3|  Total

                                  ---------+--------+--------+--------+

                                       1 |     60 |     16 |     59 |    135

                                         |   5.29 |   1.41 |   5.20 |  11.89

                                         |  44.44 |  11.85 |  43.70 |

                                         |  16.90 |   6.32 |  11.20 |

                                  ---------+--------+--------+--------+

                                       2 |    208 |    111 |    306 |    625

                                         |  18.33 |   9.78 |  26.96 |  55.07

                                         |  33.28 |  17.76 |  48.96 |

                                         |  58.59 |  43.87 |  58.06 |

                                ---------+--------+--------+--------+

                                       3 |     66 |     79 |    119 |    264

                                         |   5.81 |   6.96 |  10.48 |  23.26

                                         |  25.00 |  29.92 |  45.08 |

                                         |  18.59 |  31.23 |  22.58 |

                                  ---------+--------+--------+--------+

                                       4 |     21 |     47 |     43 |    111

                                         |   1.85 |   4.14 |   3.79 |   9.78

                                         |  18.92 |  42.34 |  38.74 |

                                         |   5.92 |  18.58 |   8.16 |

                                   ---------+--------+--------+--------+

                                Total         355      253      527     1135

                                            31.28    22.29    46.43   100.00

     

                          The SAS System       20:54 Thursday, November 28, 2002  28

     

                                             The FREQ Procedure

     

                                   Statistics for Table of age by pathtype

     

                           Statistic                     DF       Value      Prob

                           ------------------------------------------------------

                           Chi-Square                     6     58.9049    <.0001

                           Likelihood Ratio Chi-Square    6     56.1468    <.0001

                           Mantel-Haenszel Chi-Square     1      3.6219    0.0570

                           Phi Coefficient                       0.2278

                           Contingency Coefficient               0.2221

                           Cramer's V                            0.1611

     

                                             Sample Size = 1135

    结果也和例5-1基本相同,有所不同的是此处没有经连续性校正的卡方值(这里不需要校正),也没有自动给出fisher精确概率值。

    在得出两因素不相互独立的结论后,可进一步对因素的各水平进行两两之间的差异检验,这就涉及到R*C表的拆分问题,关于此内容统计学教科书上多数都有介绍,感兴趣的可以自己研究一下。

    本章关于两个率和多个率的比较问题就先介绍这么些内容,下一章我们将讨论非参数统计方法的编程实现。

    相关文章
    没有相关教程
    姓 名:   *
    评 分:   1分 2分 3分 4分 5分
    内 容:  

    Copyright © 2006-2009 SPSS学习园地 All Right Reserved