SAS课件讲义

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

★第一章:SAS系统简介
SAS文件及命名
1、SAS数据集文件(后缀为sas7bdat)
2、SAS程序文件(后缀为sas)
3、SAS日志文件(后缀为log)
4、SAS输出文件(后缀为list)
★第二章:SAS数据集的分类
临时数据集和永久数据集
(一)临时数据集存放在work数据库中
(二)永久数据集存放在永久数据库中,除了work数据库之外,其他的数据库都是永久数据
库。

1、SAS文件的2级命名方式:目录.文件名
2、使用Libname语句创建永久数据集,
libname 自建目录名‘目录地址’;
Libname例
创建与读取永久数据库
1、创建永久数据集永久数据集的扩展名是sas7bdat。

libname例:
libname sasroom "d:\sasdata"; data sasroom.data1; input y $ x1 x2 x3@@; cards; run; proc print; run;
2、读取永久数据集 read例
libname sasroom "d:\sasdata"; data sasroom.data1; input y $ x1 x2 x3@@; cards;
run;
建立SAS数据集的5种方法
1、用data步输入数据建立。

newdata例
data newdata; input group $ x1 x2 x3; cards;
2、利用infile语句从外部调入数据文件建立SAS数据集,注意:infile语句必须放在input
语句的前面。

(Infile例)
3、利用“导入数据”功能建立。

(Excel例)
4、利用EFI(external file interface)功能导入(classifydata例)。

5、data步利用set 语句建立。

(Set1例)
查看SAS数据集的内容
1、使用contents过程查看数据的相关信息。

Contents例
proc contents data=数据集名 position;
2、用print过程来显示数据。

SAS数据集的加工
一、两个SAS数据集的合并
1、两个SAS数据集的串接(set语句);set2例
2、两个SAS数据集的并接(merge语句).
二、变量值的排序(sort语句) sort例
三、对变量的选择(drop语句和keep语句)。

Drop1,2例、keep例
四、对观测的选择。

例子:obs1、obs2、obs_if、obs_if_then、obs_where。

SAS运算符
数学运算符:+-* / **(幂运算)
比较运算符:=(EQ) ^=(NE) >(GT) <(LT) >=(GE) <=(LE) in 逻辑运算符:&(AND) | (OR) ^(Not)
其它:><(最小值) < >(最大值) || (连接)
运算次序一
第一级:** (+-)前缀^>< < > 第二级:* /
第三级:+-第四级:|| 第五级:其余比较算符
第六级:&第七级:|
注意:括弧可改变运算顺序,括弧里的先计算
运算次序二
对于相同优先级的算符,左边的运算先做。

但有两个例外:
1.对最高优先级,右边的运算先做
2.当两个比较算符围着一个量时,这个表达式看成是有一个and 出现一样被计算。

如:12<age< 20,等价于:12<age & age<20
SAS函数
SAS函数返回由它的参数计算得到的结果,它的一般形式为:
SAS函数名(参数1,参数2,…)
参数之间由逗号隔开。

SAS函数的参数可以是参数、变量、表达式或者其它函数。

SAS函数分为13种类型,共147个函数。

下面我们介绍一些常用的SAS函数。

1.数学函数:
abs(x) x的绝对值; sign (x) 符号函数
max (x, y,...) x, y,…中的最大值min(x, y,...) x, y,…中的最小值mod (x, y) x/y的余项;sqrt (x) x的平方根
exp (x) e的x次幂; log (x) 自然对数
log10 (x) 以10为底的对数 log2(x) 以2为底的对数
sin(x) cos(x) tan(x) 三角函数 arsin(x) artan(x) 反三角函数
2.样本统计函数
sum (x, y,...) 计算参数和 mean (x, y,...) 计算算术平均值
var (x, y,...) 计算方差 std (x, y,...) 计算标准差
3.概率分布函数
Probbnlm(p,n,r) 参数为p,n的二项分布函数,P{X<=r} 的值
Probnorm(x) 标准正态分布函数,P{X<=x}
Probchi(x,df) 自由度为df的卡方分布函数,P{X<=x}的值
Probf(x,df1,df2) F分布 probt(x,df) t分布
4.随机数函数
Uniform(seed) 产生 [0,1]区间上均匀分布的随机数
Rannor(seed) 产生N(0,1)的随机数
Ranbin(seed,n,p) 产生二项分布的随机数
DATA步中常用语句
*IF语句(条件转移语句)
1、简单if语句一般格式: if 条件表达式;
2、if …then语句 if 条件表达式 then 执行语句;
3、if …then…else语句
if 条件表达式 then 执行语句1;
else 执行语句2; (if_then_else例)
*DO语句
1、简单do语句(常与IF…THEN一起使用)
do;
SAS语句;…
end; (do1、if_then_do例)
2、循环DO语句(do2例)
do 指标变量=初值 to 终值 (by 增量);
SAS语句;
循环do语句可采用条件控制形式。

一般形式:
do until 表达式;
SAS语句;
end;
(表示循环语句执行到括号中的表达式满足为止,do_until例)
或者:do while 表达式;
SAS语句;end;
(表示循环语句执行到括号内的表达式不满足为止,do_while例)
循环语句还可以采用嵌套形式,即在循环语句do…end内部,可嵌入另一个do…end循环语
*GO TO语句
GO TO语句告诉SAS系统立即转向执行GO TO语句中指出的语句,并从那一点开始继续执行.(go_to例,do3例)
*LABEL语句
LABEL语句的作用是对变量进行说明。

格式:label 变量名1=‘标记1’ 变量名2=‘标记2’ …
变量长度的缺省值是8,但有时长度超过了8个字符,这时可用length语句定义变量的长度。

(length例)
*Delete语句
告诉SAS系统停止处理当前观测值,且不写入正在创建的数据集中。

Delete语句通常用
在PROC PRINT中使用其他语句可以产生一些比较复杂的报表,例如产生:
1、标题和脚注(Titles and Footnotes)
Run;
在缺省情况下,列表报告的最左面出现OBS列,给出了观测号;报告按原数据集的顺序显示。

(例lonpar)
二、Noobs 选项
在print过程中,可以用noobs选项去掉obs列。

(例noobs)
三、VAR语句
使用var语句可以控制print过程中变量的出现与否以及出现的顺序,它的一般形式是:
where 条件表达式;
例1: between…and: 选择变量值在某一范围的观测:(例where)
where 变量名between … and …;
where 变量名not between … and …;
例2:contains,选择变量中包含某一特殊字符串的观测:
where 变量名contains ‘字符串’;
五、Sum语句:计算变量的总和(显示在该变量所在列的下方)。

一般格式:(例sum)
sum 变量名;
六、ID语句。

使用了id语句后,
(1) 最左面的obs列被取消;
(2) Id/by语句所指定的变量被排列在报告的最左边;
(3)Id/by语句所指定的变量只在每个组的开始处出现一次。

(id_by)
七、Pageby语句:使产生的报告按组分页。

§3-2 改进列表报告
一、标题(title)和脚注(footnote)
在SAS的所有报告中,都可以加入标题和脚注:
titlen ‘标题文本’;
footnoten ‘脚注文本’; (例title_footnote)
Title语句和Footnote语句具有如下特点:
1、n的范围从1到10,即最多有10个标题和脚注。

2、标题出现在每页的顶部,脚注出现在底部。

3、缺省的标题是‘The SAS System’,缺省的脚注不出现.
4、没有n的title和footnote等于title1和footnote1;
在使用了title和footnote语句后,所定义的标题和脚注将一直保持有效,直到另一个title 和footnote语句被执行.
使用以下两个简单语句,可以取消所有的标题和脚注:
title1; footnote1; (例title1)二、Label 语句: 制作自定义的表头(给变量产生一个标签).
变量的标签具有以下属性:
1、最大长度为40的字符串
2、在print过程中必须使用label或split选项才能被显示
3、如果在过程步中被定义就只在该过程中有效;而如果在数据步中被定义,就随数据集一直有效(例label_2)
三、Split语句:控制表头的分割
§4-1 常用统计量的含义
N—非缺失值观测的数目 Nmiss —缺失值观测的数目
Min—最小值 Max —最大值 Range —极差(max-min) Sum —观测值的加权和 Mean —均值
Variance —方差 Std Dev —标准差S Std Mean —标准误
CV —变异系数 Mode —众数
USS —平方和 CSS —校正平方和
Skewness —偏度系数 Kurtosis —峰度系数
T —检验mean=0的T值 Median —中位数
Q3 —上四分位数 Q1 —下四分位数
§4-2 变量的概括描述
一、PROC MEANS过程 (means例、 means_1例)
proc means data=数据集选项;
var 变量名;
run;
其中的选项包括:n mean std var min max sum uss css range skewness kurtosis t prt 等。

例:用means过程对fitness数据集中的变量age, runtime按变量group计算均值和方差,并将结果存入数据集new中。

(means_2例)
在means_2例的程序中,
①选项noprint的作用是表示不将计算结果在output窗口输出;
②利用class分类比用by来分类的优点是:用class分类不需先对数据集进行排序。

二、PROC UNIVARIATE过程(univariate例、univariate_1例)
proc univariate data=数据集名选项;
var 变量名;
run;
其中的“选项”可以包括:
(1)plot: 对所分析的变量画茎叶图、箱线图、正态概率图;
(2)freq: 生成包括变量值、频数、百分数和累计百分数的表;
(3)normal: 对数据进行正态性检验,并输出检验的P值(如果p值小于给定的显著性水平,则拒绝原假设,认为数据不是来自正态分布,反之则认为数据来自正态分布)
在基本的语句中,对每个变量的分析输出都包含四部分:
第一部分为该变量与矩(moment)相关的统计量,如均
值、方差等
第二部分为位置检验:总体均值=0 的检验统计量及p值.
第三部分是和次序统计量、分位数有关的统计量。

表头
的”定义5“表示使用SAS计算分位数的定义5,即
“数据按比例分布的经验分布函数“。

第四部分分别列出了最小和最大的5个观测值以及它们对
应的观测序号。

如果需要把univariate 中的一些统计量的输出结果作进一步的处理,这时需把上述过程的计算结果存入一个新的SAS数据集中,为此需利于output语句。

(univariate_3 例)
proc univariate data=数据集名 noprint;
var 变量名;
output out=新的数据集名统计量=变量名;run;
其中统计量可以用以下关键名:mean, var, std, n, css, uss,
sum, min, max, sumwgt, stderr, cv, skewness, kurtosis, T,
prt, range, q1, q3 等等
Univariate过程还可对某一变量进行分组分析。

在进行分组分析之前,必须先对变量进行排序。

(例Univariate_4)
*PROC CORR过程
PROC CORR过程是用以计算SAS数据集中变量间的相关系数矩阵和协方差矩阵。

基本语句为:
proc corr data=数据集 options;
var 变量名;
run;
其中options(选项)包括:
①pearson: 要求输出pearson相关系数矩阵
②spearman:要求输出spearman相关系数矩阵
③cov: 要求输出协方差矩阵(例corr)
§4-3 变量分布的图形描述
*Proc capability过程
该过程有univariate过程同样的分析功能,又有很强的用图形表现数据分析的能力,而且还能进行分布拟合和分布检验。

基本语句(capability_1例) :
Proc capability data=数据集名选项;
var 变量名;
run;
若需画直方图,则只要在程序中增加语句histogram。

(capability_ histogram例)
若需高分辨率的图形显示,只需在过程语句中加上选项graphics. (例capability_graphics)说明:⑴上例中PROC语句中的选项noprint是不要求输出概括性统计量而只要求作直方图,这时可把var oxygen与histogram合为一句:histogram oxygen。

⑵横轴上的分组范围是系统自动选的。

若想自己设定,
只要在histogram语句中加进表明各个区间中点位置的选项即可。

纵轴的标度有三种选择:百分数、频数、比例,通过在histogram语句中加入选项vscle=来设定.缺省为百分数。

vscle=percent/cout/proportion (例 capability_2)
过程capability还提供了显示对分析数据拟合多种分布的功能.如: 正态分布(normal)、对数正态分布(lognormal)、指数分布(exponential)、伽玛分布(gamma)、贝塔分布(beta)、威布尔分布(weibull)等,还可以设定曲线的宽度、颜色等.
(例capability_normal, capability_norm_2)
说明:在capability_normal例子中,选项normal要求显示拟合的正态分布密度曲线,(L=2)是要求拟合密度曲线用虚线表示,缺省为L=1。

Inset一句是把变量oxygen的数据个数、均值和标准差也显示在图上,4.1和4.2都是指明格式的。

另外,还可以显示数据的经验分布和拟合的累积分布曲线,这只要将语句histogram换成cdfplot即可。

(例capability_3)
§4-4 频数统计
*Proc freq过程:描述样本中各变量取了什么值,以及取各个值的频数是多少等。

基本语句(例freq_1):
proc freq data=数据集选项;
tables 变量名 /选项; run;
说明:1、作列联表:只要在变量名之间加一个*号。

2、tables语句有如下两个选项:
①nocum-不要累积频数和累积百分数;
②nopercent -不要百分数和累积百分数。

3、若需改变输出结果中的排列次序,在freq语句中加入选项:
order=internal/freq/data/formatted
Internal -按变量的值排列; freq -按频数降序排列;
data -按数据集中值出现的次序排列;
formatted -按变量格式化的值排列。

(例freq_2)
*Proc format过程:对变量规定一个格式。

如进行变量分组。

例:对数据集fitness中的变量age分组,小于39岁的为Young,39到50岁的为Middle,50岁以上的为Old。

然后对它进行频数分析。

(例freq_3, 例freq_ format)
§5-1 置信区间的计算
一、用MEANS过程计算置信区间
例1、某种零件的重量服从正态分布。

现从中抽容量为9的样本,得观测值为:
4.8 4.7
5.0 5.2 4.7 4.9 5.0 4.6 4.7(单位:KG)。

现在来估计零件的平均重
量及平均重量的置信水平为0.95的置信区间。

二、用capability过程计算置信区间:
①method=4为计算均值的置信区间,method=6为计算标准差的置信区间;缺省时提供6种不同的区间,包括预测区间、允许限等.
②alpha=值a,则置信水平为1-a. 缺省为a=0.01 0.05 0.10。

③type=lower/twosided/upper: 分别表示计算置信下限、区间、上限,缺省为置信区间。

proc capability data=m1 noprint; intervals weight / method=4,6; run;
二、总体参数的检验
1.用u tnivariate过程进行检验
例:已知某物质的比重为11.53,现购得该物质若干,为检验所购物质比重是否为11.53,用
某种方法重复测得其值为:11.49 11.51 11.52 11.53 11.47 11.55 11.50 11.46。

假定测定
值服从正态分布,问所购物质比重均值是否为11.53。

(例test_1)见下表:
2.用MEANS过程进行t检验
data t1; input x@@; y=x-11.53; cards;
11.49 11.51 11.52 11.53 11.47 11.55 11.50 11.46 ;
proc means data=t1 t prt maxdec=4; var y; run;
独立样本均值、方差的比较( TTEST过程)
proc ttest data=数据集名;
class 分类变量名;
var 分析变量名;
run;
例:甲、乙两台机床加工同样产品,从它们的产品中各随机抽若干产品,测得产品直径为:
甲:20.5 19.8 19.7 20.4 20.1 20.0 19.0 19.9
乙:19.7 20.8 20.5 19.8 19.4 20.6 19.2
假定甲、乙两台机床生产的产品直径服从正态分布。

试比较甲、乙两台机床生产的产品在质
基本语句:
proc means data=数据集名 t prt;
var 分析变量名;
例:为了比较用来做鞋子后跟的两种材料的质量,选取了15名男子,每人穿一双新鞋,两只鞋的后跟用不同材料做成,其厚度均为10mm.
过了一个月再测量其厚度,得到数据如下:
材料x 6.6 7.0 8.3 8.2 5.2 9.3 7.9 8.5 7.8 7.5 6.1 8.9 6.1 9.4 9.1
材料y 7.4 5.4 8.8 8.0 6.8 9.1 6.3 7.5 7.0 6.5 4.4 7.7 4.2 9.4 9.1
问两种材料制成的后跟在耐穿行上是否有显著差异。

(例test_means)
★第六章回归分析
§6-1 相关系数
*利用CORR过程计算相关系数
相关系数是用来刻画变量间相关程度的一个量。

Corr过程涉及到很多按不同公式定义的相关系数,其中最常用的是pearson相关系数,也是corr过程缺省时的输出结果。

一般格式是: proc corr data=数据集选项;
var 变量名;
with 变量名;
partial 变量名;
run;
说明:①这是计算var中的变量与with 中的变量之间的相关系数。

如果
省略With,就按var中列举的变量计算其两两之间的相关系数。

如果var
也省略,就对数据集中所有数值型变量计算相关系数。

②过程corr也自动计算变量的各个常用统计量,并对相关系数是否为零进行检验。

选项nosimple和noprob分别表示不输出单变量的常用统计量和检验的信息。

Partial语句是计算偏相关系数时,指明排除变量用的。

例6-1 对于数据集fitness,计算oxygen、maxpulse、rstpulse与runtime、runpulse、weight
为了直观的了解数据的分布和相关系数的大小,可以通过gplot过程画散点图。

例6-2 对于数据集fitness,画出maxpulse与runpulse之间的数据分布的散点图。

(例gplot_linear)
§6-2 一元线性回归
*REG过程
SAS系统里面有很多具有回归分析功能的过程,其中功能最全面的是过程REG。

基本语句为:
proc reg data=数据集;
model 因变量名=自变量名 / 选项;
run;
例6-3 从上一节关于数据集fitness的相关分析和所画的散点图中可以看出,变量runtime 与变量oxygen之间线性相关的程度很强。

试用数据集fitness的数据拟合变量runtime预测oxygen的一元线性回归。

(例reg_1)
*输出结果说明:
(1)第一部分为方差分析,对应于模型的F统计量的值为84.01,相应的p值为0.0001<0.05=a,模型的作用是显著的。

并且R^2和校正
R^2分别为0.7434和0.7345。

(2)第二部分列举了回归方程中两个参数的数值和有关的显著性检验的结果。

由此得到的回归方程为:
OXYGEN=82.42177-3.31056*RUNTIME
T检验的结果表明两个回归系数都是显著的不为零。

*预测与置信限
若要利用拟合的回归方程对原数据集的数据进行预测,可在model语句中使用选项 p 例6-4 对例6-3的数据集fitness的数据进行预测。

(例reg_2)
程序说明:
(1)在reg_2.sas中,对数据按自变量runtime进行排序,是为了在以后显示时更为清楚,而数据排序是不影响回归拟合的结果的。

(2)在model语句中增加选项p,就是要求输出预测的结果。

(3)语句id runtime是要求输出结果时增加变量runtime作为标识变量,便于比较不同自变量和因变量的取值。

输出结果说明:
输出的结果除了方差分析和回归参数估计检验外,还包括原数据集中的自变量、因变量和用拟合回归预测的结果。

例6-5 利用例6-3得到的拟合的回归方程对另一些数据进行预测,要得到当
*若需要得到预测值的置信限,可在model语句中加入选项cli,则程序会提供预测值的95%的置信上限和置信下限。

(例reg_4)
类似的,在model语句中加入选项clm可输出对回归均值的95%置信区间。

§6-3 回归线的作图
要对拟合回归的数据作散点图并附加回归线,有两种方式可以实现,一种是利用过程REG带有的作图功能;另一种是用过程gplot。

*利用reg过程作图
为了利用过程reg制作高分辨率的图形,首先必须在proc语句中加入选项graphics。

然后增加plot语句,指明作图的纵轴变量和横轴变量。

一般格式为:
proc reg data=数据集名 graphics;
model 因变量名=自变量名;
plot 纵轴变量名*横轴变量名;
symbol 格式选项;
run;
*程序说明:
(1)其中纵轴变量名和横轴变量名不仅可以是回归的因变量和自变量,还可以是回归分析中得到的其他统计量,比如:预测值(p.)、预测误差(r.)等。

(2)symbol语句是定义输出图形的格式的。

具体参见GPLOT过程中对symbol语句中选项的说明。

*例6-6 利用数据集fitness中的数据,拟合用变量runtime预测oxygen的一元线性回归,
(例reg_plot_2)
*利用GPLOT过程作图
过程gplot为制作散点图和拟合回归线提供了丰富的功能。

基本程序:
proc gplot data=数据集;
plot 纵轴变量名*横轴变量名;
symbol v=符号 cv=点的颜色 ci=线的颜色 i=连线选项 w=线的宽度
h=字符的高度; run;
程序说明:(1) v= 是规定用什么符号来表示各个散点,常用的有6种:
plus —’+’(缺省值) star —‘*’ squar —小方块
diamond —小菱形 trangle —三角形 none —没有符合
(2) i= 规定对散点间如何插值连线的:
i=none:散点间不连线; i=r1:拟合一元线性回归线
i=r:拟合回归; i=rq :拟合二次回归线;
i=rc:拟合三次回归
*例6-8 利用数据集fitness中的数据制作oxygen关于runtime的回归和散点图。

(例
在上例中,若要附加回归线的95%的置信限,只需将选项i=r1改为
i=r1clm95。

若要附加预测值的90%的置信限,只需用i=r1cli90。

(例gplot_2)
§6-4 多元线性回归
*使用编程拟合多元线性回归与拟合一元线性回归是类似的,同样使用过程reg。

只要在Model 语句中将所要进入回归的自变量的变量名都填入。

基本语句为:
proc reg data=数据集;
model 因变量=自变量1 自变量2 … … /选项;
run;
* 例6-9 对于数据集fitness,拟合变量OXYGE关于变量AGE、WEIGHT、RSTPULSE、MAXPULSE、
个,从参数的估计值容易得到拟合的回归方程为:
OXYGEN=102.23834-0.21992*AGE-0.07238*WEIGHT
-0.00084421*RSTPULSE+0.30473*MAXPULSE
-0.37316*RUNPULSE-2.68052*RUNTIME
* 从参数估计检验部分可以看出,变量RSTPULSE和WEIGHT的回归系数,不能拒绝它们为0的原假设。

* 不过,在这里必须小心看待这些参数,因为它们都是在其它变量加入回归的前提下进行显著性检验的,完全可能是因为自变量之间存在较强的相关性而掩盖它们对回归的贡献。

所以在剔除不显著的回归变量时,必须逐个执行。

* 因为REG过程具有连续的功能,在执行了提交的部分语句时,仍可继续提交语句让它执行,直至提交quit语句或执行其它过程而终止.若需从已加入的回归变量中剔除RSTPULSE,可直接提交如下的程序:
delete rstpulse; print; run;
* 模型的自动选择(逐步回归)
若希望由程序自动的进行变量的选择,则可在model语句中加入选项selection,一般用法为:
selection=none/forward/backward/stepwise/rsquare/cp/adjrsq 其中none是缺省的情况,即不进行选择,全部变量都进入回归;Forward:向前回归;
backward:向后回归;stepwise:逐步回归;rsquare, cp, adjrsq是提供全部可能的回归,分别用R^2,C(p)和 Adj-R^2进行排序。

例6-10 在例6-9中,利用逐步回归选择的方法,拟合OXYGEN关于其它6个变量的线性回归方程。

(例reg_610)
* 输出结果说明:
(1)在输出报告中,提供了进入的回归变量逐次改变后回归方差分析和拟合的信息。

(2)在报告的最后,给出了用逐步回归法, RUNTIME, AGE, RUNPULSE, MAXPULSE四个变量进入回归,所有进入回归的变量在0.15的水平下是显著的,未进入回归的候选变量在0.15的水平下是不显著的。

同时还概要地提供了每个变量变化时,R^2, C(p)等统计量的变化。

(3)在向前、向后和逐步回归的变量选择的过程中,都有一个判断是否可进入或剔除的显著水平,在程序中分别由model语句中的选项slentry=和slstay=设定的。

缺省的情况是:
*多项式回归
多项式回归可化成多元线性回归来完成。

例6-11 数据engine.txt是一组检验某种发动机性能试验的数据。

原料是柴油和某种气体的混合物。

在各种不同速度(speed)下,测量发动机产生的马力(power)。

单位为:转/分钟。

试建立变量power关于 speed的回归方程。

(例
reg_611_1、例reg_611_2 )
power= -36.78699 + 8.01383*speed – 0.15792*(speed)^2
§6-4 回归诊断
* 对于拟合回归的数据都有一定的假定,因此需要对数据进行鉴别,看它是否符合这些假定。

在某些假定不成立时,是否可以剔除或修整个别数据,使得接近这些假定; 另外,还需要分析是否有个别观测对整个结果有特别大的影响等。

这些就是回归诊断的任务。

对于一个拟合的回归方程,需要在拟合回归后进行回归诊断。

一般来讲,回归诊断主要包括下面几项内容:异方差检验、自相关性检验、异常值检验。

这里我们主要利用残差分析,进行异常值(重要观测案例)的诊断。

进行残差分析,只要在model语句中加入选项r,即可。

例6-12 考虑数据集fitness。

拟合OXYGEN关于RUNTIME的回归方程。

并进一步进行残差分
析。

(例reg_612)
输出结果说明:
(1)输出结果除了一般的回归参数、检验和方差分析外,还包括因变量及其预测值,预测的标准误、残差、残差的标准误和标准化的残差(即学生化残差student residual);
(2)在输出的结果中,还包括了一列标准化残差按其数据绘制的图形,标准化残差每增加0.5,就用一个*号表示,由此可方便的找出标准化残差绝对值较大的观测。

(3)最后一列Cook距离(C ook’D)统计量,是从回归系数的改变来衡量一个观测的影响。

一般建议的判别标准是:当|D(i)|>4/n时,该观测应作为对回归有较大影响的,应加以关注。

(4)当发现了异常的观测案例或特别有影响的观测,都不是简单的将其删除,而是要加以特别关注,从各方面进一步加以研究讨论。

作残差图
利用残差图,可以方便地得到残差分布的总体情况。

由于残差和预测值(拟合值)几乎是不相关的,在作残差关于预测值的图时,我们总可以得到一个斜率接近于0,在X轴周围散布的散点图。

例6-13 在例6-12中,作残差关于预测值的残差图。

★第七章方差分析
§7-1 单因素方差分析
*GLM过程 / ANOVA过程
对于单因素的方差分析,常用的过程有ANOVA过程和GLM过程。

它们的用法和得到的结果是相同的,这里我们主要介绍GLM过程,在程序中若把GLM改为ANOVA,可以得到完全一样的结果。

基本语句为:
proc glm data=数据集;
class 变量名;
model 因变量=自变量; run;
说明:①class后的变量名指明方差分析中描述因素的自变量,也就是分
类变量;对变量的类型没有限制,每个取值都对应一个水平。

②model语句后等号左侧为因变量(分析变量),右侧为自变量(分类变量)。

由于过程GLM和ANOVA都可用于更一般的多因素的方差分析,这时class后的内容与等号右侧的内容就不一致了。

在单因素情形下,都是填一个分类变量名(自变量)
例7-1:五种胶合板耐磨实验所收集的数据如下:
牌子(brand)磨损测量值(wear 每个牌子四个样品)
ACME 2.3 2.1 2.4 2.5
CHAMP 2.2 2.3 2.4 2.6
AJAX 2.2 2.0 1.9 2.1
TUFFY 2.4 2.7 2.6 2.7
XTRA 2.3 2.5 2.3 2.4
试对上述不同牌子的胶合板磨损指数进行方差分析。

(glm_1)
输出结果说明:
(1)第一部分为分类的信息,说明分类变量brand有五个水平,并列举了五个牌子的名词;
(2)第二部分为方差分析表。

原假设为:五个牌子没有显著性差异,
即均值相等。

检验均值相等的F统计量的值为7.40,相应的P值为0.0017<0.05=a,所以拒绝原假设,即五种牌子的磨损指数有显著的差异。

接着是R^2等汇总信息,确定系数为0.663798,它表示全部校正平方和中有66.4%可以被牌子的不同加以说明。

(3)如果将提交的程序中调用的过程改为ANOVA,而其它语句都不改变,也可以得到完全相同的结果。

*方差均匀性检验
方差分析的模型要求不同水平下观测结果方差是相同的。

过程GLM和ANOVA都提供了这方面的功能。

为了进行不同水平下观测结果的方差是否相同的检验,只需要加入如下的means 过程和选项hovtest=means 分类变量名 / hovtest=levene/bf/obrien/bartlett 其中hovtest等号后选择的是检验方差相等的各个检验法的名称。

缺省时则使用levene 检验法。

(例glm_2)例6-2 要求同时使用levene和Brown-Forsythe检验法对例6-1的问题进行检验。

输出结果说明:除了输出一般方差分析的结果外,还输出了方差均匀性检验的结果。

其中:(1)第一部分提供了用levene检验法的F统计量的值为0.53,相应的p值为0.7149>0.05=a;(2)第二部分提供了用Brown-Forsythe检验法的F统计量的值为0.26,相应的p值为。

相关文档
最新文档