科研统计助手
医学科研资讯
前沿热点动态
统计分析服务
当前位置: 菁英统计工作室 > 统计知识 > 软件技巧 > SAS应用 > 正文
统计软件SAS8.2教程:方差分析和协方差分析
作者:Admin  更新时间:2011-02-18  来源 统计家园 本条信息浏览人次共有

        方差分析和协方差分析在SAS系统中由SAS/STAT模块来完成,其中我们常用的有ANOVA过程和GLM过程。前者运算速度较快,但功能较为有限;后者运算速度较慢,但功能强大,我们做协方差分析时就要用到GLM过程。本章将首先介绍方差分析和协方差分析在SAS系统中由SAS/STAT模块来完成,其中我们常用的有ANOVA过程和GLM过程。前者运算速度较快,但功能较为有限;后者运算速度较慢,但功能强大,我们做协方差分析时就要用到GLM过程。本章将首先介绍方差分析所用数据集的建立技巧,然后重点介绍这两个程序步。

其实,这里的速度快慢只是相对而言,SAS的处理速度是首屈一指的。举个例子,这个暑假我做了一个有6600条记录的,7因素的,交叉设计的方差分析(是不是已经有人喊头痛了?),我先是用SPSS FOR WIN95 7.5来做,运行了大约10分钟才出结果。我又换用SAS FOR WIN95 6.12来做,结果用了――2.47秒!
 
§7.1 方差分析数据集的建立技巧
 
7.1.1方差分析的数据集格式
 
统计分析所用的数据格式和我们在分析整理资料时所用的格式是不同的。一般来说,数据集中应至少有一个结果变量,用于记录不同处理因素水平下观察值的大小;至少有一个处理因素变量,用于记录处理因素的类型及其水平数。以单因素方差分析为例,就应有一个结果变量和一个处理因素变量;而两因素的方差分析应有一个结果变量和两个处理因素变量。
例7.1 某职业病防治院对31名石棉矿工中的石棉肺患者、可疑患者及非患者进行了用力肺活量测定,请给出数据集的结构(卫统p44 例5.1)。
解:数据集中应有两个变量,x和group。x记录肺活量的大小;group取值为1、2或3,分别代表石棉肺患者、可疑患者及非患者。
例7.2 某厂医务室测定了10名氟作业工人工前、工中及工后4小时的尿氟浓度,请给出数据集的结构(卫统p46 例5.2)。
解:数据集中应有三个变量,x、group和worker。x记录尿氟浓度;group取值为1、2或3,分别代表工前、工中及工后;worker取值为1到10,分别代表10名工人。
 
7.1.2方差分析数据集的建立技巧
可见方差分析的数据集其变量取值有一定的规律,因此可以利用循环语句和判断语句来简化输入。
例7.3 请建立例6.1的数据集。
解:我们可以一个一个的输入变量group的值,但这里给出一种更酷的建立方法。
libname a 'c:\user';
data a.wtli5_1;
 group=1;
 if _n_>11 then
 此处的_n_为SAS系统变量,表明读入的数据为第几条记录,由于石棉肺患者只有11人,因此第12条记录只能是可疑患者的记录,同理,从第20条记录开始的只能是非患者的记录。这里利用判断语句来完成从_n_到group的转换。
 if _n_>20 then group=3;
  else group=2;
 input value @@;
 cards;
 1.8 1.4 1.5 2.1 ... ... 3.3 3.5
;
proc print;
run;
例7.4 请建立例7.2的数据集。
解:此例中数据较有规律,各组的例数均相等,这可正是循环语句大显身手的时候。
libname a 'c:\user';
data a.wtli5_2;
 do group=1 to 3;
 这里的SAS语句非常类似于Foxbase语句,两个循环分别控制了group和worker的取值,这在输入数据时是常见的一种技巧。
  do worker=1 to 10;
   input value @@;
   output;
 两个变量只是循环变量,因此要用output语句写入数据集中。
  end;
 end;
 cards;
 90.53 88.43 47.37 ...
 ... 105.27 58.95
 请注意x变量和处理因素变量的对应关系,不要改变数据块的次序,否则建立的数据集是错的。
 ;
proc print;
run;
 
§7.2 引例
 
例7.5 请回答在例7.1中三组石棉矿工的用力肺活量有无差别?
解:由于是三组做比较,因此要用方差分析法。在建立数据集后可用ANOVA过程或GLM过程进行分析,同时给出选项进行各组均数的两两比较(此处用SNK法),两过程的输出格式基本一致。对于单因素的方差分析,在比较之前一般要考虑方差齐性的问题。这里可以用GLM过程中的HOVTEST选项实现,实际上这也是在SAS中做方差齐性检验的唯一途径。
① 设定数据库环境:
LIBNAME A 'C:\USER';
② 数据步,建立数据集(略):
③ ANOVA或GLM过程,进行方差分析并同时做两两比较(SNK法):
PROC ANOVA DATA=A.WTLI5_1;
 PROC GLM DATA=A.WTLI5_1;
 CLASS GROUP;
  CLASS GROUP;
 MODEL VALUE=GROUP;
  MODEL VALUE=GROUP /SS1;
 MEAN GROUP /SNK;
  MEAN GROUP /SNK HOVTEST;
RUN;
 RUN;
这里的GLM过程中有两个选项,SS1要求只输出方差分析SS1模型的结果(默认输出SS1和SS3两种模型的结果),HOVTEST则要求进行方差齐性检验(该选项只能在SAS 6.12以上的版本中实现)。
§7.3 ANOVA过程
ANOVA过程是SAS系统中用于方差分析的几个程序步之一,它适用于平衡的数据。这意味着如果按所分析的变量将观测值分类,则每个格子内的观测值数目应相同。如果数据不满足这一要求,则ANOVA过程的分析结果并不可靠,分析者应改用GLM过程来处理数据。
 
7.3.1语法格式
 
PROC ANOVA [DATA= <数据集名>
 MANOVA
 按多元分析的要求略去有任一缺失值的记录
 OUTSTAT= <数据集名>] ;
 指定统计结果输出的数据集名
 CLASS <处理因素名列>;
 必需,指定要分析的处理因素
 MODEL <应变量名=处理因素名列> / [选项];
 必需,给出分析用的方差分析模型
 MEANS <变量名列> / [选项] ;
 指定要两两比较的因素及比较方法
 BY <变量名列>;
  
 FREQ <变量名>;
  
 MANOVA H= 效应 E= 效应 M= 公式...;
 指定多元方差分析的选项
 
 
 
7.4 GLM过程 GLM过程即广义线形模型(General Liner Model)过程,它使用最小二乘法对数据拟合广义线形模型。GLM过程中可以进行回归分析、方差分析、协方差分析、剂量――反应模型
 
§7.4 GLM过程
 
GLM过程即广义线形模型(General Liner Model)过程,它使用最小二乘法对数据拟合广义线形模型。GLM过程中可以进行回归分析、方差分析、协方差分析、剂量――反应模型分析、多元方差分析和偏相关分析等等,其功能之强大可见一斑。
上一篇:sas数据读入的几种方式及比较
下一篇:SAS的数组array介绍

本站所发表的文章,大部分严格筛选,来源于各相关专业论坛或专业网站,内容仅供大家学习和参阅尊重原作者版权,勿用于商业用途,转载请注明来源。如有学术争议的文章,或可能与事实不符的,与本站立场无关。如有影响到您权益的文章,请及时通知本站,本站立即删除。谢谢监督。
推荐阅读
 
热门文章

Copyright 2010 Powered By 菁英统计工作室 www.tjstat.com 地址1:武汉市珞瑜路1037号 430074 ; 地址2:武汉市航空路13号 430030
邮箱:tjstat@126.com QQ: 点击这里给我发消息 点击这里给我发消息
鄂ICP备10020011号 |