SAS软件介绍 - 数学建模学习资源网站

Download Report

Transcript SAS软件介绍 - 数学建模学习资源网站

SAS软件介绍
湖北工业大学理学院
一、概述
 SAS系统全称为Statistics Analysis
System,最早由北卡罗来纳大学的两位生
物统计学研究生编制,并于1976年成立了
SAS软件研究所,正式推出了SAS软件。
SAS是用于决策支持的大型集成信息系统,
但该软件系统最早的功能限于统计分析,
至今,统计分析功能也仍是它的重要组成
部分和核心功能。SAS现在的版本为9.0
版,大小约为1G。经过多年的发展,SAS
已被全世界120多个国家和地区的近
 三万家机构所采用,直接用户则超过三百万人,遍
及金融、医药卫生、生产、运输、通讯、政府和教
育科研等领域。在英美等国,能熟练使用SAS进行
统计分析是许多公司和科研机构选材的条件之一。
在数据处理和统计分析领域,SAS系统被誉为国际
上的标准软件系统,并在96~97年度被评选为建立
数据库的首选产品。堪称统计软件界的巨无霸。在
此仅举一例如下:在以苛刻严格著称于世的美国
FDA新药审批程序中,新药试验结果的统计分析规
定只能用SAS进行,其他软件的计算结果一律无效!
哪怕只是简单的均数和标准差也不行!由此可见
SAS的权威地位。
 SAS系统是一个组合软件系统,它由多个功能模块
组合而成,其基本部分是BASE SAS模块。BASE
SAS模块是SAS系统的核心,承担着主要的数据管
理任务,并管理用户使用环境,进行用户语言的处
理,调用其他SAS模块和产品。也就是说,SAS系
统的运行,首先必须启动BASE SAS模块,它除了
本身所具有数据管理、程序设计及描述统计计算功
能以外,还是SAS系统的中央调度室。它除可单独
存在外,也可与其他产品或模块共同构成一个完整
的系统。各模块的安装及更新都可通过其安装程序
非常方便地进行。
 SAS系统具有灵活的功能扩展接口和强大的功能模
块,在BASE SAS的基础上,还可以增加如下不同
的模块而增加不同的功能:SAS/STAT(统计分析
模块)、SAS/GRAPH(绘图模块)、SAS/QC
(质量控制模块)、SAS/ETS(经济计量学和时间
序列分析模块)、SAS/OR(运筹学模块)、
SAS/IML(交互式矩阵程序设计语言模块)、
SAS/FSP(快速数据处理的交互式菜单系统模块)、
SAS/AF(交互式全屏幕软件应用系统模块)等等。
SAS有一个智能型绘图系统,不仅能绘各种统计图,
还能绘出地图。SAS提供多个统计过程,每个过程
均含有极丰富的任选项。用户还可以通过对数据集
的一连串加工,实现更为复杂的统计分析。此外,
SAS还提供了各类概率分析函数、分位数函数、样
本统计函数和随机数生成函数,使用户能方便地实
现特殊统计要求。
二、初识SAS
 安装SAS
 哪位要是连软件的安装和打开都要我啰嗦的
话,我劝您还是买一套洪恩的《开天辟地》
好好热热身吧。
 不过,安装SAS时,应首先将系统时间改到
2002年以前,安装完以后,再crack,然后将
时间修改还原,切记!
 启动SAS
 启动后,出现如图 的SAS运行界面,术语称
为"SAS工作空间(SAS Application
WorkSpace)"。它象其它Windows应用程序
一样,在一个主窗口内,包含若干个子窗口,
并有菜单条、工具栏、状态栏等。
 SAS有三个最重要的子窗口:程序窗口
(PROGRAM EDITOR)、运行记录窗口
(LOG)、输出窗口(OUTPUT)。
 Program Editor的窗口(窗口标签为Editor)
就是用来输入SAS语句的,编程操作的所有
内容都是在该窗口内完成的,各位还是要跟
它先多熟悉一下。
 简单运行样例
 假设我们有一个班学生的数学成绩和语文成
绩,数学满分为100,语文满分为120,希望
计算学生的平均分数(按百分制)并按此排
名,可以在程序窗口输入此程序:
title '0401班学生成绩排名';
data c0401;
input name $ 1-10 sex $ math chinese;
avg = math*0.5 + chinese/120*100*0.5;
cards;
李明
男 92 98
张红艺 女 89 106
王思明 男 86 90
张聪
男 98 109
刘颍
女 80 110
;
run;
proc print;run;
proc sort data=c0401;
by descending avg;
run;
proc print;run;
 实际上,上述程序是文本,完全可以在任何文本编
辑工具中输入,比如Windows中的记事本,甚至
Word也可用来输入这样包含中文的程序。输入后使
用复制复制、粘贴命令将输入的程序粘贴到SAS系
统程序窗口。(即在记事本中复制输入的程序,然
后在SAS系统程序窗口中使用粘贴命令,把程序复
制到SAS中)。
 要运行此程序,只要用鼠标单击工具栏的提交
(Submit)图标 ,或用Run菜单下的Submit命令,
或者直接按下F8键,就可运行程序。如果选中某一
段程序,然后进行调用,则系统只执行被选中的部
分。
 运行后,输出窗口出现如下结果:
0401班学生成绩排名
1
11:40 Saturday,
November 10, 2004
Obs name sex math chinese
avg
1 李明
男
92
98
86.8333
2 张红艺 女
89
106
88.6667
3 王思明 男
86
90
80.5000
4 张聪
男
98
109
94.4167
5 刘颍
女
80
110
85.8333
运行记录窗口则记录每段程序的运行情况、所用时间、
生成数据保存情况。如果有错误还会用红色指示错
误。
三、SAS程序的使用常识
从上面的例子程序可以看出SAS程序的一些特点。
 SAS程序的基本结构
SAS程序由语句组成,语句用分号结束。语句
一般由特定的关键词开始,语句中可包含变量名、
运算符等,它们以空格分隔。SAS对语句所占的行
数无限制,一个语句可占多行,同样,多个语句也
可占一行。
 SAS程序的程序组成
SAS程序可以非常复杂,但其基本结构
一般由数个完成单个动作的程序步和环境设
置语句构成。而程序步分为两种,一种叫数
据步(data step),一种叫过程步(proc
step),分别以DATA语句和PROC语句开始。
数据步和过程步由若干个语句组成,一般以
RUN语句结束。前者用来创建和修改用于统
计分析的数据集,后者则利用已创建的数据
集完成特定的统计分析任务。比如下面的例
子:
libname a 'd:\sysdata\';
data a.aaaa;
input x @@;
cards;
1 2 3 4 5
;
proc print;
var x;
run; quit;
 第1句就是一个环境设置语句,其作用是设定一个逻辑库,
逻辑库名称为a,
 第2~6句构成数据步,其功能是新建一个数据集,数据集名
称为aaaa,并且输入数据,
 第7~9句构成过程步,其功能是将数据集aaaa中变量x的数
值在output窗口中输出。
 SAS程序的书写规则与程序注释
前面已经提到,SAS对程序的书写格式比较灵
活,大小写一般不区分(字符串中要区分大小写),
但我们仍提倡SAS程序与其它编程语言相似,采用
缩进格式,使得源程序结构清楚,容易读懂。
SAS程序的程序注释有以下两种格式:
注释语句:以星号“*”开始,可占多行,以分
号“;”结束。~
注释段落:用“/*”和“*/”包括起来的任何字符,
可占多行。
同样,我们提倡在程序中要有适当的注释,使
程序的可读性强。
四、SAS程序的数据步
 数据集(dataset)和库
SAS数据集(SAS Datasets)可以看作
由若干行和若干列组成的表格,类似于一个
矩阵,但各列可以取不同的类型值,比如整
数值、浮点值、时间值、字符串、货币值等
等。比如,前面的例子生成了一个名为
C0401的数据集,它的逻辑形式如下表:
NAME
SEX
MATH
CHINESE
AVG
李明
男
92
98
86.8333
张红艺
女
89
106
88.6667
王思明
男
86
90
80.5000
张聪
男
98
109
94.4167
刘颍
女
80
110
85.8333
表1 数据集的逻辑形式
 数据集的每一行叫做一个观测
(Observation),每列叫做一个变量
(Variable)。SAS数据集等价于关系数据库
系统中的一个表,实际上一个SAS数据集有
时也称作一个表。在数据库术语中一个观测
称作一个记录,一个变量称作一个域。在
C0401数据集中有5个观测,分别代表5个学
生的情况,而每个学生有5个数据,分别为姓
名、性别、数学成绩、语文成绩、平均分,
所以此数据集有5个变量,变量名依次为
NAME、SEX、MATH、CHINESE和AVG。
 从上面看出,数据集要有名字,变量要有名
字,所以SAS中对名字(数据集名、变量名、
数据库名,等等)有约定:SAS名字由英文
字母、数字、下划线组成,第一个字符必须
是字母或下划线,名字最多用8个字符,大写
字母和小写字母不区分。比如,name,abc,
aBC,x1,year12,_NULL_等是合法的名字,
且abc和aBC是同一个名字,而class-1(不能
有减号)、a bit(不能有空格)、serial#
(不能有特殊字符)、Documents (超长)
等不是合法的名字。
 逻辑库
SAS系统将所使用的文件以库的形式组织起来,而数据
集则存放在一个库中,这个库就称为逻辑库。前面见到过的
libname命令就用于指定库标记。其一般格式为:
Libname 库名称 ‘文件夹位置’ 选项;
 例如
libname a 'd:\sysdata\';
data a.aaaa;
input x @@;
cards;
1 2 3 4 5
;
proc print;
var x;
run; quit;
第一行就指定d:\sysdata\为逻辑库位置,其名称为a.
引用在逻辑库中数据集时要使用两级名
称来指定,第一级为库名称,第二级为数据
集名,中间用句点“.”隔开。即用
库名称.数据集名
的格式来引用该数据集。
仍然是上面的例子,第2~6句新建一个
数据集,数据集名称为aaaa,就可用a.aaaa来
引用该数据集。
 数据步的基本结构
数据步均以DATA语句开始,用于创建和处理
数据集。数据步中常用的语句如下表:
表2 数据步的常用语句
语句
格式
功能
DATA语句
DATA 数据集名;
数据步的开始,同时命名将要创
建的数据集
INPUT语句
INPUT 变量名<变量类型
起止列数>…;
确定变量的读入格式,即确定输
入的数据所对应的变量
语句
格式
功能
CARDS或
DATALI
NES语句
与数据块
CARDS;
数据块
;
或
DATALINES;
数据块
;
CARDS与DATALINES功能相同,
均用于标志数据块的开始
INFILE语
句
INFILE ‘文件名’ 选
项;
从外部文件中读入数据块
OUTPUT语
句
将所读入的数据存放在缓存中,
也可用OUTPUT语句强制输
出一条新记录
SET语句
对数据集中的数据进行编辑,
也可将指定数据集的内容复
制到新建数据集中
 下面是几个例子。
 Data语句:
Data abc; data work.abc data sasuser.abc;
data a.abc;
 INPUT语句:
Input x y z; /*输入变量x,y,z*/
Input x1-x10; /*输入10个变量x1到x10*/
Input x$y@@; /*输入变量x,y,符号$指明x为
字符变量,@@表示数据是连续读入*/
 完整例子:
libname a 'd:\sysdata\';/*设定逻辑库,库名为
a*/
data a.aaaa; /*建立数据集,其名为aaaa*/
input x @@; /*输入变量x, @@表示数据是连
续读入*/
cards; /*准备输入数据*/
1 2 3 . 5
; /*输入数据,注意有缺失值(缺失值用单独的小
数点代表)*/
五、SAS程序的过程步
 通俗地说,SAS程序的过程步就是用于实现
各种统计分析功能的SAS命令,我们只需要
按照其格式调用它们。过程步总是以一个
proc语句开始,后面紧跟着过程步名。下表
列出一些常用的过程步名及功能。
过程步名
功能
Sort
将数据集按指定变量排序
Print
将数据集中数据列表输出
Gchart
绘统计图
Univariate
对指定的数值变量作详细的统计描述
Means
对指定的数值变量作简单的统计描述
Freq
对指定的分类变量作统计描述和检验
Npar1way
非参数检验
Ttest
进行t检验
Anova
进行方差分析
GLM
拟合一般线性模型
REG
拟合线性回归模型
Corr
进行相关分析
Logistic
拟合Logistic回归模型
Phreg
拟合cox比例风险模型
 过程步的基本结构
SAS过程步的一般形式为:
PROC 过程名 DATA=输入数据集 选项;
过程语句 / 选项;
过程语句 / 选项;
……
RUN;
其中PROC语句的选项是可选的,用来规定过程运行
的一些设置,如果有多个选项用空格分开。DATA=输入数据
集也是可选的,如果缺省的话使用最近生成的数据集。过程
步一般以RUN 语句结束。通常情况下,过程语句与数据步
中的语句不同,数据步中的语句不能用在过程步中。过程步
语句一般以某一个关键字开头,比如VAR、BY、TABLES、
WEIGHT等,语句中有一些有关说明,如果有选择项的话要
写在斜杠后。
 SAS过程步常用语句
 本小节简单介绍几个在SAS过程步中常见的语句,更具体的
用法可以在以后实际用到时再仔细体会。
1.DATA选项
用于指明所需要处理的数据集,如果缺省的话使用最近生成
的数据集。
2.VAR语句
VAR语句在很多过程中用来指定分析变量。在VAR后面给出
变量列表:
VAR 变量名1 变量名2 … 变量名n;
变量名列表可以使用省略的形式,如X1-X3,
MATH--CHINESE等。例如:
Proc print;
var math chinese;
run;
3.MODEL语句
MODEL语句在一些统计建模过程中用来指定模型的
形式。其一般形式为
MODEL 因变量 = 自变量表 / 选项;
比如,将下列语句放在某一过程步中
model math=chinese;
则用语文成绩预测数学成绩。
4.BY语句和CLASS语句
5.OUTPUT语句
6.FREQ语句和WEIGHT语句
7.ID语句
8.WHERE语句
9.LABEL语句和FORMAT语句
六、SAS语言入门
 SAS是一种专用的数据处理、统计计算语言,但是它也包含
一般的高级语言编程能力并扩充了许多数学、统计等方面的
函数。由于SAS的数据处理功能非常强大,我们并不提倡用
它来编复杂的程序,因此,我们只介绍SAS语言用来进行一
般编程计算的功能。
 SAS语言的编程计算能力主要由SAS数据步提供(另外SAS
还提供了一个SAS/IML模块可以进行向量、矩阵运算,读者
有兴趣可以自己学习)。所以,下面给出的例子如果没有写
DATA语句实际应该在例子前面加上DATA语句,在后面加上
RUN语句才能运行。注意DATA语句总是以关键字DATA 开
头,后面给出一个数据集名,就是本数据步要生成的数据集
的名字,例如:
 data tmp1;
 也可以省略数据集名,这时SAS自动生成一个临时数据集名。
1.赋值语句
在SAS中用赋值语句计算一个值并存放到变量中。
格式为
变量名 = 表达式;
例如:
avg = (math + chinese/120*100)/2;/* 计算平均分数,
赋值给变量avg*/
isfem = (sex='女'); /*先生成一个取值为0或1的值,性
别为女时为1,否则为0*,然后赋值给变量isffem*/
newv = .; /*将变量赋了缺失值*/ 注意想试验上述语句
要把它们放入数据步中,并且等号右边的表达式中
的各变量应该是存在的,否则会得到缺失值结果。
 2.输出语句
 SAS数据步的输出一般是数据集,用赋值语
句计算的结果会自动写入数据集。SAS也提
供了一个PUT语句,可以象其它语言程序的
PRINT、WRITE(*,*)、printf等语句一样立即
打印输出结果。PUT的基本语法很多,只举几
例:
data;
x=0.5;
y=sin(x);
put 'Sine function value of ' x 'is ' y;
run;
结果将在运行记录窗口显示一行
Sine function value of 0.5 is 0.4794255386
在PUT语句中使用“变量名=”来指定输出项
可以显示带有变量名的输出结果,比如把上
程序中的PUT语句改为
put x= y=;
则结果在LOG窗口显示为
X=0.5 Y=0.4794255386
分支结构
如果需要在某条件满足时执行某一操作,可以用
IF 条件 THEN
程序块
ELSE
程序块
的结构,其中Else语句及其后的程序块可以省略。需
要注意的是,如果程序块只有一句,则可直接写出,
否则应以DO开始,以END结束。
比如,
if max(a)<20 then p=0;
else p=1;
上述程序当max(a)<20时p=0,否则p=1。
下述程序则是复合的IF结构。
IF x>0 THEN DO;
PUT ' X为正数';
x = 2*x;
PUT x=;
END;
注意SAS的分支结构的写法与其它语言有些不同,它
不用ENDIF结束。
 循环结构
SAS数据步可以使用循环结构,主要的是两种:
计数DO循环和当型、直到型循环。
计数DO循环的写法是:
DO 计数变量 = 起始值 TO 结束值 BY 步长;
循环体语句……
END;
在循环体中可以用LEAVE语句跳出循环,相
当于C语言的break语句;用CONTINUE语句可
以立即结束本轮循环并转入下一轮循环的判
断与执行 .
当型循环的语法是:
DO WHILE(循环继续条件);
循环体语句……
END;
程序先判断循环继续条件是否成立,成立时执行循环
体语句,再判断循环继续条件,如此重复,直到循
环继续条件不再成立。
直到型循环的写法是:
DO UNTIL (循环退出条件);
循环体语句……
END;
程序先执行循环体,然后判断循环退出条件是否成立,
成立则结束循环,否则继续。注意每轮循环都是先
执行循环体再判断是否退出。
如:
data;
DO i = 1 TO 20 BY 2;
j = i**3;
put i 3. j 5.;
END;
run;
可以输出一个1,3,5,7,…,19的立方表。
七、SAS的基本统计分析功能
 前面我们已经对SAS系统进行了简要的介绍,
下面我们讲如何用SAS进行基本的统计检验、
线性回归、方差分析等基本统计分析。我们
既使用SAS语言编程,也使用SAS的菜单界
面。
 统计中常用的是对总体作正态性检验、均值
检验、方差检验。下面我们就专门介绍这几
个检验。
 1. 正态性检验
在PROC UNIVARIATE语句中加上NORMAL选项
就可以进行正态性检验。
 例1 我们有两个班学生的考试成绩的数据,分数如
下:
 31 67 73 45 75 41 99 64 95 71
97 74 77 28 95 74 63 52 79 40
84 86 63 69 21 4 45 86 52 18
44 74 74 64 91 63
4 31 85
21 60 35 25 31 58 82 70 64 10
75 78 88 96 51 86 74 50 64 15
88 27 37 80 69 25 74 97 44 47
88 79 63 3 50 67 75
 问这次考试的分数是否服从正态分布?
 要检验这些数据是否服从正态分布,只要用如下
UNIVARIATE过程:
 data stuscore; /*首先输入数据*/
 input score@@;
 cards;
 31 67 73 45 75 41 99 64 95 71
97 74
 …… (其它数据略)
 ;
 PROC UNIVARIATE data=stuscore normal;/*正态
分布检验*/
 VAR score;
 RUN;

结果(部分)如下:
Tests for Normality
Test
--Statistic-------p Value-----Shapiro-Wilk
W
0.9477
Pr < W
0.0035
Kolmogorov-Smirnov D 0.142205 Pr > D <0.0100
Cramer-von Mises
W-Sq 0.219175 Pr > W-Sq <0.0050
Anderson-Darling
A-Sq 1.243435
Pr > A-Sq <0.0050

其中第一项W为Shapiro-Wilk正态性检验统
计量,Pr<W为检验的显著性概率值(p
值)。当N≤2000时正态性检验用ShapiroWilk统计量,N>2000时用Kolmogorov D统
计量。我们可以看到,p值很小,所以在
0.05水平(或0.10水平)下应拒绝零假设,
即认为数据非正态。
 归纳:
(1)用于检验正态性的命令是:
PROC UNIVARIATE data=数据集 normal;/*正
态分布检验*/
VAR 要检验变量名;
RUN;
(2)用于检验正态性的重要指标是:Pr<W的
显著性概率值(p值)。P>α(一般是0.05),
则接受假设(即数据服从正态分布),否则
拒绝假设(即数据不服从正态分布)。

2. 正态总体均值的假设检验
一、单个总体N(μ,σ2)均值μ的检验
1.σ已知时的μ检验(u检验法)
例2 某车间用一台包装机包装葡萄糖。包得的袋装
糖重是一个随机变量,它服从正态分布。当机器
正常时,其均值为0.5公斤,标准差为0.015公斤。
某日开工后为检验包装机是否正常,随机地抽取
它所包装的糖9袋,称得净重为(公斤):
0.497 0.506 0.518 0.524 0.498 0.511 0.520
0.515 0.512
问机器是否正常?
 解
按题意需检验假设
H 0 :    0  0.5,
H1 :   0.
 操作步骤:
 (1)首先输入数据,程序为
data u_weight;
input weight@@;
cards;
0.497 0.506 0.518 0.524 0.498 0.511 0.520
0.515 0.512
;
run;
运行上述程序。
(2)选择Solutions→Analysis→Analyst菜单,
(3)选择File→Open By SAS Name→Work→u_weight,
(4) 选择Statistics→Hypothesis,
(5) 选择One-Sample z-test for a mean,出现图2,
 图2 u-检验的变量设置
 (6)在图2的窗口中设置变量,我们选择变
量为weight,Null:Mean处是零假设,填入0.5,
Alternate处是备择假设,我们选^=,Tests
按钮可以选择显著性水平,默认是0.05,
Std.Dev.处填入标准差0.015。
(7)单击OK,产生输出结果。
One Sample Z Test for a Mean
Sample Statistics for weight
N
Mean
Std. Dev. Std. Error
------------------------------------------------9
0.51
0.01
0.00
Hypothesis Test
Null hypothesis: Mean of weight = 0.5
Alternative:
Mean of weight ^= 0.5
With a specified known standard deviation of 0.015
Z Statistic Prob > Z
----------- -------2.244
0.0248
 结果分析:
 由上可见,平均值为0.51,标准差为0.01,z统
计量是2.244, Prob > Z的值为0.0248<
α=0.05,因此应该拒绝H0,即认为这天包装机
不正常。
 实际上,如果是双边检验,利用ttest过程要
更方便简捷。例如对本题,在第一步输入数
据后,运行下面的程序:
 PROC ttest data=u_weight h0=0
alpha=0.05;
 var weight;
 RUN;
 即得如下结果:









The TTEST Procedure
Statistics
Lower CL
Upper CL Lower CL
Upper CL
Variable N Mean Mean Mean Std Dev Std Dev Std Dev Std
Err Minimum Maximum
weight 9 0.504 0.5112 0.5184 0.0063 0.0094 0.018 0.0031
0.497 0.524
T-Tests
Variable
DF t Value Pr > |t|
weight
8 163.31
<.0001
由于Pr > |t|的值<.0001<α=0.05,因此应该拒绝H0,即认为这天包装机
不正常。
 2.σ未知时的μ检验(t检验法)
例3.某种电子元件的寿命x(以小时计)服从正态
分布, μ, σ2均未知.现测得16只元件的寿命如
下:
159 280 101 212 224 379 179 264
222 362 168 250 149 260 485 170
问是否有理由认为元件的平均寿命大于225(小
时)?
 解
按题意需检验假设
H 0 :    0  225,
H1 :   0.
 操作步骤:
(1)首先输入数据,程序为
data lifetest;
input life@@;
cards;
0.497 0.506 0.518 0.524 0.498 0.511 0.520
0.515 0.512
;
run;
运行上述程序。
 (2) 选择Solutions→Analysis→Analyst菜单,
 (3) 选择File→Open By SAS Name→Work→lifetest,
 (4) 选择Statistics→Hypothesis,
 (5) 选择One-Sample t-test for a mean,出现图3,
 图3
t-检验的变量设置
 (6)在图3的窗口中设置变量,我们选择变
量为life,Null:Mean处是零假设,填入225,
Alternate处是备择假设,我们选>=,Tests按
钮可以选择显著性水平,默认是0.05。
 (7)单击OK,产生输出结果。

One Sample t-test for a Mean

Sample Statistics for life

N
Mean
Std. Dev.
Std. Error

------------------------------------------------
16
241.50
98.73
24.68

Hypothesis Test

Null hypothesis: Mean of life <= 225

Alternative:
Mean of life > 225

t Statistic
Df
Prob > t

--------------------------------
0.669
15
0.2570
 结果分析:
 由上可见,平均值为241.50,标准差为98.73,
标准偏差为24.68,t统计量是0.669, Prob > t
的值为0.2570>α=0.05,因此应该接受H0,即
认为元件的平均寿命不大于225小时。
二、两个正态总体均值差的检验
 例4.在平炉上进行一项试验以确定改变操作方法的
建议是否会增加钢的得率,试验是在同一只平炉上进
行的.每炼一炉钢时除操作方法外,其它条件尽可能
做到相同.先用标准方法炼一炉,然后用建议的新方
法炼一炉以后交替进行,各炼了10炉,其得率分别为:
 1.标准方法 78.1 72.4 76.2 74.3 77.4 78.4 76.0
75.5 76.7 77.3
 2.新方法 79.1 81.0 77.3 79.1 80.0 79.1 79.1
77.3 80.2 82.1
 设这两个样本相互独立,且分别来自正态总体N(μ1,
σ2)和N(μ2, σ2), μ1, μ2, σ2均未知.问建议的新的操作
方法能否提高得率?(取α=0.05)
 解
按题意需检验假设
H 0 :  1   2  0,
H 1 :  1   2  0.
操作步骤:
(1)首先输入数据,程序为
data mydata;
input olddata newdata@@;
cards;
0.497 0.506 0.518 0.524 0.498 0.511 0.520
0.515 0.512
;
run;
运行上述程序。




(2) 选择Solutions→Analysis→Analyst菜单,
(3) 选择File→Open By SAS Name→Work→mydata,
(4) 选择Statistics→Hypothesis,
(5) 选择Two-Sample Paired t-test for a mean,出现图4
 图4 两个样本u-检验的变量设置
 (6)在图4的窗口中设置变量,依次选择两个
变量,零假设处填入0,Alternate处是备择假
设,我们选<0,Tests按钮可以选择显著性
水平,默认是0.05。
 (7)单击OK,产生输出结果。
Two Sample Paired t-test for the Means of olddata and
newdata
Sample Statistics
Group
N
Mean Std. Dev. Std. Error
---------------------------------------------------olddata
10 76.23
1.8233
0.5766
newdata
10 79.43
1.4915
0.4717
Hypothesis Test
Null hypothesis: Mean of (olddata - newdata) => 0
Alternative:
Mean of (olddata - newdata) < 0
t Statistic
Df
Prob > t
---------------------------------4.202
9
0.0012
 结果分析:
 由上可见,t统计量是-4.202, Prob > t 的值为
0.0012<α=0.05,因此应该拒绝H0,即认为新
方法比标准方法为优。
 如果利用ttest过程则很简捷。例如对本题,
在第一步输入数据后,运行下面的程序:
 PROC ttest data=mydata h0=0 alpha=0.05;

paired olddata*newdata;
 RUN;
 即得如下结果:

The TTEST Procedure

Statistics

Lower CL
Upper CL Lower CL
Upper CL
 Difference
N
Mean Mean
Mean Std Dev
Std Dev Std Dev Std Err
 olddata - newdata 10
-4.923 -3.2 -1.477 1.6565
2.4083 4.3967 0.7616

T-Tests

Difference
DF t Value Pr > |t|

olddata - newdata
9
-4.20
0.0023
 由于Pr > |t|的值= 0.0023<α=0.05,因此应该拒绝H0,即认
为新方法比标准方法为优。
3. 正态总体方差的假设检验
 由于在SAS中,单个总体与两个总体的情况
在操作上差不多,下面只举两个总体的情况。
 例5 对例4中的数据检验假设(取α=0.01)
H 0 :
2
1
 ,
2
2
H1 :
2
1
 .
2
2
 操作步骤:





(1) 首先输入数据,我们就利用前面输入的数据集mydata。
(2) 选择Solutions→Analysis→Analyst菜单,
(3) 选择File→Open By SAS Name→Work→mydata,
(4) 选择Statistics→Hypothesis,
(5) 选择Two-Sample Test for Variances,出现图5
 图5 两个样本的方差检验
 (6)在图5的窗口中设置变量,选择Two
variables(两个变量),依次选一个变量,按
Group1按钮及Group2按钮,Alternate处是备
择假设,我们选<1,Intervals按钮可以选择
显著性水平,默认是0.05,我们选0.01。
 (7)单击OK,产生输出结果。
Two Sample Test for Variances of olddata and newdata
Sample Statistics
Group
N
Mean Std. Dev. Variance
-------------------------------------------------olddata
10 76.23
1.8233 3.324556
newdata
10 79.43
1.4915 2.224556
Hypothesis Test
Null hypothesis: Variance 1 / Variance 2 = 1
Alternative:
Variance 1 / Variance 2 ^= 1
- Degrees of Freedom F
Numer. Denom.
Pr > F
---------------------------------------------1.49
9
9
0.5590
 结果分析:
 由上可见,F统计量是1.49, Pr > F的值为
0.5590>α=0.01,因此应该接受H0,即认为两
总体方差相等。