SAS复习整理(全)

一、 数据集的建立

1.导入Excel数据表的步骤如下:

1) SAS应用工作空间中,选择菜单“文件导入数据,打开导入向导“Import Wizard”第一步:选择导入类型(Select import type)。

2) 在第二步的“Select file”对话框中,单击“Browse”按钮,在“打开”对话框中选择所需要的Excel文件,返回。然后,单击“Option”按钮,选择所需的工作表。(注意Excel文件要是2003的!!)

3) 在第三步的“Select library and member”对话框中,选择导入数据集所存放的逻辑库以及数据集的名称。

4 ) 在第四步的“Create SAS Statements”对话框中,可以选择将系统生成的程序代码存放的位置,完成导入过程。

2.INSIGHT创建数据集

1)启动SAS INSIGHT模块,在“SAS INSIGHTOpen”对话框的逻辑库“列表框中,选定库逻辑名

2)单击新建按钮 在行列交汇处的数据区输入数据值

(注意列名型变量和区间型变量,这在后面方差分析 相关性分析等都要注意!!)

3)数据集的保存:

文件” →“保存” →“数据”

选择保存的逻辑库名,并输入数据集名;

单击“确定”按钮。即可保存新建的数据集。

3.VIEWTABLE窗口建立数据集

1)打开VIEWTABLE窗口

2)单击表头顶端单元格,输入变量名

3)在变量名下方单元格中输入数据

4)变量类型的定义:右击变量名/column attributes

4.用编程方法建立数据集

DATA 语句; /*DATA步的开始,给出数据集名*/

Input 语句;/*描述输入的数据,给出变量名及数据类型和格式等*/

(用于DATA步的其它语句)

Cards /*数据行的开始*/

[数据行]

/*数据块的结束*/

RUN; /*提交并执行*/

例子:data=数据集名字mylib.a;

input name$ phone room height; ($符号代表该列为列名型,就是这一列是文字!!比如名字,性别,科目等等)

cards;

rebeccah 424 112 1.5648 (中间是数据集,中间每一行末尾不要加逗号,但是

carol 450 112 5.6235 数据集最后要加一个分号!!)

louise 409 110 1.2568

gina 474 110 1.3652

mimi 410 106 1.6542

alice 411 106 1.6985

brenda 414 106 1.3698

brenda 414 105 1.8975

david 438 141 1.6547

betty 464 141 1.5647

holly 466 140 1.5624

;

proc print data=whb.phones; (这一过程步是打印出数据集,可要可不要!)

run;

*数据集中的框架我会用加粗来显示,大家主要记加粗的,下面的编程部分都是这样!!

二、基本统计分析

1. INSIGHT计算统计量

1)在INSIGHT中打开数据集

在菜单中选择“Solution(解决方案)”→“Analysis(分析)”“Interactive Data Analysis(交互式数据分析)”,打开“SAS/INSIGHT Open”对话框,在对话框中选择数据集,单击“Open(打开)”按钮,即可在INSIGHT中打开数据窗口

2选择菜单“Analyze(分析)”→“Distribution (Y)(分布)”,打开“Distribution (Y)”对话框。在数据集的变量列表中,选择分析变量X、分组 变量Y(注意:分组变量就是那种可以区别不同种类的变量,例如地区编号、 科目、组号等等,而分析变量一般是需要分析的数据,例如成绩,身高书目)

3单击“Output(输出)”按钮,在打开的对话框中包含描述性统计量选项。

4 选择选项矩统计量和分位数,取消默认的选项:“Box Plot/Mosaic Plot”和“Histogram/Bar Chart”,单击“OK”按钮,即可得到变量按分组的各种矩统计量(Moments)和分位数(Quantiles

*描述性统计选项:Moments 矩统计量 Quantiles分位数

见书P37 Basic Confidence Intervals 基本置信区间

Tests for Location 位置检验 Frequency Counts 频数统计

Robust Measures of Scale 尺度的稳健估计

Tests for Normality 正态性检验

2. 用“分析家”计算统计量

1)启动分析家

选择主菜单“Solutions(解决方案)”→“Analysis(分析)”→“Analyst(分析家)”,打开“分析家”窗口。

选择主菜单“File(文件)”→“按SAS名称打开,打开“选择成员对话框,选择数据集。

2)通过Summary Statistics菜单计算描述性统计量

选择主菜单“Statistics(统计)“Descriptive(描述性统计)”→“Summary Statistics(汇总统计量)”,打开“Summary Statistics”对话框,选择变量列表中分析变量,单击“Analysis”按钮,选定分析变量

单击“Statistics”按钮,打开“Summary StatisticsStatistics”对话框。对话框中列出可以计算的所有统计量。

3 通过Distributions菜单计算描述性统计量

选择主菜单“Statistics(统计)“Descriptive(描述性统计)”→“Distributions(分布)”,打开“Distributions”对话框,选择变量列表中的分析变量,单击“Analysis按钮。单击“OK”按钮,即可得到关于分析变量的矩统计量和基本统计测度。

3.用编程方法计算统计量

1FREQ过程

FREQ过程包括多个控制频数输出与检验的语句和选项,格式如下:

PROC FREQ DATA = <数据集>;

[TABLES <变量1> <变量2> ;]

[FORMAT <变量1> <输出格式1>. <变量2> <输出格式2>. ;]

RUN;

其中PROC FREQ语句调用FREQ过程,标志FREQ过程的开始;

TABLES语句用于创建有关变量所构成的各种表格并进行相应的假设检验和计算,可以多次使用。

例如:proc freq data = mylib.sryzc;

tables R_Id Income;

RUN;

这个语句提供了频数,所占百分数,累计频数,和累计百分数!

2. MEANS过程

MEANS过程的一般格式:

PROC MEANS DATA=<数据集名>[<统计量关键字列表>]

[VAR <分析变量列表>]

[BY <分组变量名>]

[CLASS <分组变量名>]

RUN

例如proc means data = mylib.sryzc;

var Income;

run;

PROC MEANS语句后的选项主要用来指定所要计算的统计量默认情况下

MEANS过程会给出频数、均数、标准差、最大值和最小值等,其余统计量的计算均需要在选项中指定。

VAR语句引导所要进行分析的所有变量的列表,SAS将对VAR语句所引导的所有变量分别进行描述性统计分析。

BY语句与CLASS语句所指定的分类变量用来进行分组统计,但输出格式不同。

3. 使用统计量关键字列表

1) PROC MEANS语句中使用统计量关键字列表:

proc means data = mylib.sryzc n mean median p1 p5 p95 p99 q1 q3 max min;

var Income;

Run;

2使用CLASS语句和BY语句

使用CLASS语句和BY语句可以分组计算分析变量的描述统计量值,由CLASS语句和BY语句指定的变量在分析中起分组(类)的作用,被称为分类变量。两个语句的区别是:

使用BY语句时要求数据集须按BY变量排序,使用CLASS语句无此要求。

使用BY语句时输出按BY变量的每个值分别提供一个表,使用CLASS语句则将所有结果排列在一个表之中。

使用BY语句之前先排序,可以在按分组变量统计: p46

例如:proc sort data = mylib.sryzc;

by R_Id;

run;

proc means data = mylib.sryzc n mean median p1 p5 p95 p99 q1 q3 max min;

var Income;

by R_Id;

run;

使用CLASS语句分组较为简单,也可以在按分组变量统计(p47

proc means data = mylib.sryzc n mean median p1 p5 p95 p99 q1 q3 max min;

var Income;

class R_Id;

RUN;

3. UNIVARIATE过程(推荐使用)

UNIVARIATE过程的一般格式为:

PROC UNIVARIATE DATA = <数据集名> [<统计量关键字列表>]

[VAR <分析变量列表>;]

[BY | CLASS <分组变量名>;]

[HISTOGRAM <变量名称>/<选项列表>;]

[OUTPUT OUT = <数据集名> <统计量关键字> = <自定义变量名>;]

RUN

UNIVARIATE过程和MEANS过程的格式非常相似,相同的语句和选项其含义也相同,所不同的是某些统计量只能在UNIVARIATE过程中计算(如众数),而且UNIVARIATE过程中具有绘图功能。

其中,HISTOGRAM语句用来指示SAS对其后所指定的变量绘制直方图,其后的选项用来指示SAS添加不同类型的拟合图形(如正态分布的分布密度曲线)。

输出包括五个部分:

第一部分是矩统计量,各统计量已作了介绍。

第二部分为基本的位置和分散程度统计量,位置统计量包括均值、中位数、众数,分散程度统计量包括标准差、方差、极差、四分位间距

第三部分为关于均值等于零的三种检验的结果,包括t检验、符号检验和符号秩检验。

第四部分为各个重要的分位数。

第五部分是观测数据的五个最低值和五个最高值。

*因为这个编程含有最齐全的结果,大家做一个这个编程,所有的数据就可以自己调了,但是要找到那个对的哦!!

三、程序绘图

1. GCHART过程

(1) 语法格式

PROC GCHART DATA = <数据集名>

<图形关键字> <变量名称>/<选项列表>

RUN

GCHART过程可以使用的图形关键字及其所绘制的图形类型见表

TYPE =freq |cfreq |pct|cpct|sum|mean 统计图形变量的频数|累计频数|

Discrete 把数字变量当成离散变量处理

GROUP=变量名 指定并排分组变量

SUBGROUP=变量名 按分组变量的值分段

Patternid=Midpoint|group|subgroup,规定连续性图形的图案按数字列表中的中心点值|并排分组值|重叠分组值的次序呈现

SUMVAR = 变量名(数值变量) 指定要进行统计计算的变量,也就是“TYPE = 统计量关键字”选项中统计量的计算所依据的变量

举例啦!!

2) 画条形图(直方图)

例如: proc gchart data = mylib.sryzc;

vbar Income; (分析变量!)

run;

其中绘图用的变量用VBAR语句给出,如果把VBAR改成HBAR则条形方向变为横向。用GCHART绘制的条形图和在INSIGHT中绘制的直方图有所不同,它在横轴标的是区间的中点值,而在INSIGHT中横轴标的是区间的端点值。

可以指定分组的变量,例如在每个区段内再分段(就可以出现一个条形出现两个颜色哦!!)

proc gchart data = mylib.sryzc;

vbar Income / subgroup = R_Id; (前一个是分析变量,后一个是分组变量哦)

run;

3) 画三维条形图

使用BLOCK关键字可以画三维条形图。例如,画出数据集中Income变量的三维条形图的代码如下:

proc gchart data = mylib.sryzc;

block Income/ group = R_Id; (前一个是分析变量,后一个是分组变量)

Run;

4画饼形图

使用PIE关键字可以画饼形图,PIE3D关键字可以画三维饼形图。例如,画出数据集中Income变量的三维饼形图的代码如下:

proc gchart data = mylib.sryzc;

PIE3D Income; (分析变量哦!!)

run;

2.使用GPLOT过程绘制散点图和连线图

1GPLOT过程的一般格式

PROC GPLOT DATA = <数据集名>;

PLOT <纵轴变量> * <横轴变量> [= <变量>][/<选项>];

[SYMBOLn <选项>;]

RUN

PLOT语句的选项

散点图

绘制家庭总收入对家庭总支出的散点图,代码如下:

proc gplot data = mylib.sryzc;

plot Income*outgo; (分析变量哦!)

run;

如果换成这个样子,图像上面会出现星星或点型,而且线条颜色不同

proc gplot data = mylib.sryzc;

plot Income*outgo = r_id;

symbol1 color=black v = star;

symbol2 color=blue v = dot;

run;

连线图

为了绘制连线,只要在SYMBOL语句中指定i = join。例如绘制家庭总收入对家庭编号的连线图,代码如下:

proc gplot data = mylib.sryzc;

plot Income*id;

symbol i=join v=star;

run;

也可以分地区绘制家庭总收入对家庭编号的连线图,代码如下:

如果换成这个样子,图像上面会出现星星或点型,而且线条颜色不同

proc gplot data = mylib.sryzc;

plot Income*id=r_id;

symbol1 color=black i=join v = star;

symbol2 color=blue i=join v = dot;

run;

四、正态性检验

1. 分布拟合图

用“insight”绘图

选择菜单“Analyze(分析)”→“Distribution (Y)(分布)”,打开“Distribution (Y)”对话框

设置正态性!!

2.绘制QQ

要选择QQ图的选项!!

1)选择菜单“Curves(曲线)”→“QQ Ref LineQQ参考线)”,打开“QQ Ref Line”对话框。选择“Method(方法)”栏下的“Least Squares(最小二乘)”单击“OK”按钮得到带参考线的QQ

选择最小二乘法!!

2 选择菜单“Graphs(图形)”→“QQ PlotQQ图)”,打开“QQ Plot”对话框。选择“Distribution(分布)”栏下的“Lognormal QQ Plot(对数正态QQ图)”,单击“OK”按钮得到对数正态QQ

选择对数正态!!

3.正态性检验

注意:前两种检验都是从图线上直观看出结果,不是很准确,最后这种是最准确的!!建议大家做正态性检验时,用这种方法!!

1) INSIGHT中继续上述操作:选择菜单“Curves(曲线)”→“Test for Distribution(分布检验)”,打开“Test for Distribution”对话框。单击“OK”按钮,得到分析变量的经验分布和拟合的正态累计分布曲线图。

2) 列举了拟合正态分布的均值(即样本均值)和标准差(即样本标准差),并提供了Kolmogorov D统计量的数值0.1377,而相应的p > 0.05 = α,所以不能拒绝原假设,可以认为分析变量总体分布为正态分布。这是检验的一步,注意看P值与0.05的比较,当P值大于0.05时,就可以确定这个分析变量总体分布为正态分布!!

在“分析家”绘图

1. 绘制分布拟合图和QQ

1 首先在“分析家”中打开数据集;

2)选择主菜单“Statistics”→ Descriptive”→ Distributions…”,打开“Distributions”对话框。

选择分布拟合图和QQ图!!

2. 分布检验

1)继续上述步骤。 在分析家窗口的项目管理器中双击“Fitted Distributions of Gcjg”项,得到检验结果

2)分析结果时,注意看P值与0.05的比较,当P值大于0.05时,就可以确定这个分析变量总体分布为正态分布!!

用编程方法进行检验

用编程方法是最方便的方法,也比较省时间,所以建议大家用这种方法!!

使用UNIVARIATE过程

PROC UNIVARIATE语句中加上NORMAL选项可以进行正态性检验。

例如:proc univariate data = Mylib.yczl normal;

var weight; (分析变量!!)

run;

检验结果:结果中给出了分析变量的四种正态性检验结果,其中Shapiro-Wilk检验是首选的。当看到p值很大大于0.05,所以在0.05水平下不能拒绝原假设,即认为分析变量服从正态分布

五、假设实验

1 总体均值的区间估计

用“insight”计算统计量

1) 启动INSIGHT模块,并打开数据集;

2) 选择菜单“Analyze(分析)“Distribution(Y)(分布)

3) 在打开的“Distribution(Y)”对话框中进行区间估计的设置

将分析变量放入Y

4)单击Output,在打开的对话框中选中Basic Confidence Interval

5) 两次单击OK按钮

结果包括一个名为“95Confidence Intervals95%置信区间)”的列表,表中给出了均值、标准差、方差的估计值(Estimate)、置信下限(LCL)和置信上限(UCL

若想得到其他置信水平的置信区间:选择“表” →“置信区间” →“其他”,然后可以修改置信水平

用“分析家”计算统计量

1) 在“分析家”模块中打开数据集;

2) 选择菜单“Statistics(统计)”→“Hypothesis Tests(假设检验)”→“One Sample t – test for a Mean(单样本均值t - 检验)”;

3) 在打开的“One Sample t – test for a Mean”对话框中设置均值的置信区间

先选择分析变量,然后单击“test”后选择“interval”,写置信区间

用编程方法计算统计量

Means过程实现:

proc means data=sasdata.yczl clm alpha=0.05;

/*关键字clm用于计算置信区间,“alpha=”用于指定显著性水平 */

var weight; (分析变量!)

run;

ttest过程实现:

proc ttest data=sasdata.yczl alpha=0.05;

/* alpha=”用于指定显著性水平 */

var weight;

run;

univariate过程实现:

proc univariate data=sasdata.yczl cibasic(alpha=0.05);

/* 关键字“cibasic(alpha=)”用于指定显著性水平 */

var weight;

run;

重点介绍使用TTEST过程:

TTEST过程可以执行单样本均值的t检验、配对数据的t检验以及双样本均值比较的t检验。

语法格式

PROC TTEST <选项列表>

[CLASS <分组变量名>]

[VAR <分析变量名列表>]

[PAIED <变量名列表>] [BY <分组变量名>]

RUN

第一句和最后一句是必需的,中间的可以交换位置!

CLASS语句所指定的分组变量是用来进行组间比较的;而BY语句所指定的分组变量是用来将数据分为若干个更小的样本,以便SAS分别在各小样本内进行各自独立的处理。

VAR语句引导要检验的所有变量列表,SAS将对VAR语句所引导的所有变量分别进行组间均值比较的t检验。

PAIED语句用来指定配对t检验中要进行比较的变量对,其后所带的变量名列表一般形式及其产生的效果见表

PROC TTEST语句后可跟的选项及其表示的含义如表所示

2. 总体均值的置信区间

1) 使用最简代码求均值、标准差的置信区间:

» proc ttest data = sjcj;

» run;

2)结果分析:代码运行结果给出两个变量在95%置信水平下的均值、标准差的置信区间,以及对原假设μ0= 0所作的t检验的p

3. 单样本总体均值的假设检验

» proc ttest h0=70 alpha = 0.01 data=sjcj;

» var A;

» run;

结果分析: 代码运行结果除了给出变量A99%置信水平下的均值、标准差的置信区间外,还给出对假设μ0 = 70,所作的t-检验的p

注意:颜色一样的地方是代码所代表的含义,一一对应的!!

显示t统计量的p值大于0.05时,不能拒绝原假设:均值 = 70

4. 配对两样本均值的假设检验

» proc ttest data=sjcj;

» paired A*B;(两个分析变量!!要相关的)

» run;

代码运行结果给出了对原假设μ1μ2 = 0所作的t检验的p

结果分析:显示t统计量的p< 0.05,因此拒绝原假设,p值>0.05,不能拒绝原假设。

5. 独立两样本均值的假设检验

过程TTEST还可以用于进行独立双样本均值比较的t检验法。它的用法为

PROC TTEST DATA = <数据集名>;

CLASS <分组变量名>;

VAR <分析变量名列>;

RUN;

使用这一格式要求将两个样本中被比较均值的变量的观测值记在同一分析变量下,不同的样本用另一个分类变量的不同值加以区分,而且分类变量只能取两个值,否则将报错。

讲分析变量记录在同一分析变量f之下,而两种方法的差别是由分类变量g的值加以区分的。检验代码如下:

原理类似后面相关分析和回归分析中的建数据集!!!

» proc ttest data=zzcpsj;

» class g;

» var f;

» run;

结果分析:

1)在检验中,先看其最后关于方差等式的检验结果,检验方差相等是用的

F '统计量,相应的p值>0.05 = α,不能拒绝方差相等的假设;当P值<0.05时,方差不相等,看第三步。

2) 在方差相等的前提下,检验均值差异使用Pooled方法,对应统计量的t值为2.16,相应的p值为<0.05 = α,所以两种方法所需的时间是有显著差异的,若p值>0.05,则两种变量没有显著差异。

3 在异方差的情况下,使用Satterthwaite法检验均值的差异。

关于置信区间

1. 总体比例的置信区间

1) 在“分析家”中打开数据集;

2) 选择主菜单“Edit(编辑)”→“Mode(模式)”→“Edit(编辑)”,使数据集可以被编辑(修改);

3) 选择主菜单“Data(数据)”→“Transform(变换)”→“Recode Ranges(重编码范围)”,打开“Recode Ranges Information”对话框

4) 单击“OK”按钮,打开“Recode Ranges”对话框,按图3-18右所示生成新变量price_f

注意列类型要改变,还要写明名称

6) 选择菜单“Statistics(统计)”→“Hypothesis Tests(假设检验)”→“One Sample Test for a Proportion(单样本比例检验)”;

7) 在打开的“One Sample Test for a Proportion”对话框中选择分析变量,然后按章前面所示设置置信区间。

2. 总体方差的置信区间

1) 在“分析家”中打开数据集;

2) 选择菜单“Statistics(统计)”→“Hypothesis Tests(假设检验)”→“One Sample Test for a Variance(方差的单样本检验)”

3)在打开的“One Sample Test for a Variance”对话框中设置方差的置信区间,还是如以前所示!

3. 两样本总体方差的比较

12分别表示两个分析变量的方差,则检验的是:

H01 2 H11 < 2

检验步骤如下:

1) 首先,将数据生成数据集, 两个分析变量可用两个变量表示,如分别用sw表示。

2) 在分析家中打开数据集后,选择菜单“Statistics”→“Hypothesis Tests”→“Two-Sample Test for Variance(双样本方差检验)”,打开“Two-Sample Test for Variance”对话框并按图设置;单击“OK”按钮,得到分析结果。

注意要选两个变量!!

、方差分析

1.单因素方差分析

INSIGHT进行分析

1)整理所给数据,创立数据集。

(在方差分析中,这第一步是非常重要的。我感觉,做单因素分析时创立的数据集中只有两列:一列是代表分类变量的,即科目,行业,编号等等,一定要用列名型;另一列是代表分析变量的,即所需要分析的具体数据,即分数,次数等等,一定要用区间型!!大家建完数据集之后自己可以检查下哈!!)

2) INSIGHT模块中打开数据集;

3) 选择菜单“Analyze(分析)”→“Fit(拟合)”,在打开的“Fit(X Y)”对话框中按图选择分析变量;

注意:X中放分类变量,即列名型Y中放分析变量,即区间型!!

4) 单击“OK”按钮,得到分析结果。

5结果分析:

第一张表提供拟合模型的一般信息:

第二张表为列名型变量信息;

第三张表提供参数信息,并且约定,P_2P_3P_4P_5分别标识变量(也称哑变量)。

第四张表给出响应变量均值关于自变量不同水平的模型方程

第五张表给出模型拟合的汇总信息,其中:R-SquareR2)是判定系数coefficient of determination,阐明了自变量所能描述的变化(模型平方和)在全部变差平方和中的比例,它的值总在01之间,其值越大,说明自变量的信息对说明因变量信息的贡献越大,即分类变量取不同的值对因变量的影响越显著。Aaj R-Sq(校正R2)是类似于R2的,但它随模型中的参数的个数而修正。

第六张为方差分析表。从方差分析表可以看出,p值小于0.05(显著水平),所以拒绝原假设,即不同类别之间有显著差异;如果p值大于0.05,则不能拒绝原假设,不同类别之间无显著差异。

第七张表提供III型检验,它是方差分析表的细化,给出了各因素的平方和及F统计量,因为本例是单因素的,所以这一行与上图的“Model”一行相同。

第八张为参数估计表,其中有关于不同行业下投诉次数差异的估计和检验:

1) 根据标识变量的定义,Intercept后的估计47.4是对应于旅游业投诉次数的均值,其后的t检验是检验这一均值是否为0。这里p<0.0001<0.05=α,故显著非0

2) 航空后的估计-12.4是航空业与旅游业投诉次数均值之差的估计值,其后的t检验也是检验这两个投诉次数均值之差是否为0

由于p值的绝对值为0.1313 > 0.05,所以航空业与旅游业的被投诉次数没有显著差异的。其它分析类似。

6检验模型假定:不要忘了哦!!

为了验证残差为正态分布的假定,回到数据窗口。可以看到R_TOUSU(残差)和P_TOUSU(预测值)已加到数据集之中,下面用Distribufion(Y)来验证残差的正态性。

1) 选择菜单“Analyze(分析)”→“Distribution(Y)(分布)”;

2) 在打开的“Distribution(Y)”对话框中选定分析变量:R_TOUSU;单击“OK”按钮;

3) 选择菜单“Curves(线)”→“Test for Distribution分布检验)”;在打开的“Test for Distribution”对话框中直接单击“OK”按钮。

在检验结果的“Test for Distribution”表中看到,p大于0.05,不能拒绝原假设,表明可以认为残差是正态分布的;若p值小于0.05,则拒绝原假设,标明残差不是正态分布的。

用“分析家”作单因素方差分析

1) 在“分析家”中,打开数据集;

注意:建立数据集的方法同INSIGHT,这里就不重复了!

2) 选择菜单“Statistics(统计)”→“ANOVA(方差分析)”→“One-Way ANOVA(单因素方差分析)”,打开“One-Way ANOVA”对话框;

3) 选中分类变量,单击“Independent”按钮,将其移到“Independent(自变量)”框中;选中分析变量,单击按钮“Dependent”,将其移到“Dependent(因变量)”

4) 为了检验方差分析中关于方差齐性的假定,单击“Tests”按钮,打开“One-Way ANOVATests”对话框,选中“Tests for equal variance”栏下的“levene's test”复选框(常用),如图左,单击“OK”按钮返回

5) 单击“Plots”按钮,打开“One-Way ANOVAPlots”对话框,可以选择图形类型,如选中“Types of plots”栏下的“Box-&-whisker plot”复选框,如图右,单击“OK”按钮返回;再次单击“OK”按钮。

6结果分析:

结果分为五个部分,第一部分是因素水平的信息,可以看到只有一个分类变量因素,其中包含着几个水平,就是我们分类变量体现的几个种类。

第二部分就是经典的方差分析表。由于这里p值小于0.05(显著水平),所以模型是显著的,即因素对指标有显著影响。

第三部分是一些与模型有关的简单统计量,第一个是复相关系数平方R2,代表总变差中能被模型解释的比例,第二个是指标的变异系数,第三个是根均方误差,第四个是均值。

第四部分是方差分析表的细化,给出了各因素的平方和及F统计量,因为是单因素所以这一行与上面的“Model(模型)”一行相同。

第五部分是对方差齐性的假定检验的结果。结果表明使用Levene's检验法的p值>0.05时,不同水平下观测结果的方差无显著差异;当p值<0.05时,方差有显著差异。

图形分析:在分析家窗口的项目管理器中双击“Boxplot of TOUSY by HANGYE”选项,得到响应变量关于自变量各水平的盒形图

用编程方法作单因素方差分析

1. ANOVA过程和GLM过程的简介

(1) ANOVA过程

ANOVA过程的一般格式包含许多选项,其中最为常用的为如下格式:

PROC ANOVA DATA = <数据集>;

CLASS <自变量列表>

MODEL <因变量名> = <自变量表达式>[/<选项列表>]

MEANS <自变量表达式>[/<选项>];

RUN;

其中CLASS语句用来指定样本分组的分类变量,CLASS语句是必需的,而且必需位于MODEL语句之前;

MODEL语句给出模型表达式,可以用来表示三种不同的效应模型:

1) 主效应模型:y = a b c

2) 交互效应模型:y = a b c a*b a*c b*c a*b*c

3) 嵌套效应模型:y = a b c(a b)

同一MODEL语句中三种效应可以混合使用。

MEANS语句指定ANOVA过程计算自变量各水平下因变量的均值、标准差,并进行组间的多重比较

(2) GLM过程

PROC GLM DATA=<数据集> [ALPHA =

];

CLASS <自变量列表>

MODEL <因变量名> = <自变量表达式>[/<选项列表>]

MEANS <自变量表达式>[/<选项>];

RUN;

一般地,ANOVA过程中涉及的所有语句都包含在GLM过程所涉及的语句中,其用法和功能也都是基本相同的。

举例说明:

proc anova data = Mylib.xfzts;

class hangye; 分类变量!!

model tousu = hangye; 等号前是分析变量,等号后是分类变量!!

run;

» proc GLM data = Mylib.xfzts;

» class hangye;

» model tousu = hangye;

» run;

两种编程GLM包含ANOVA,所以建议大家用GLM比较齐啊,但是怕找不到的话,记ANOVA也行!!!

2. 双因素方差分析

INSIGHT方法

不存在交互作用的双因素

1)整理数据,创立数据集

(这种类型的数据集建立后是三列,与单因素基本相同,只不过多一列列名型变量即分类变量而已,大家可以参照单因素的创建数据集!!最后检查要是三列哦!!)

2 INSIGHT模块中打开数据集

(在检查下是不是两个列名型,一个区间型变量啊!!)

3)选择菜单“Analyze(分析)”→“Fit(拟合)”,在打开的“Fit(X Y)”对话框中选择数值型变量作因变量,分类型变量作自变量(即分类变量进入x,分析变量进入Y,再说直白点就是,两列的那个放到X的大框子里面,一列那个放到Y的小框子里面!!);单击“OK”,得到分析结果

4)分析结果

1) 第一张表提供了模型的一般信息;

第二张表列举了作为分类变量的水平的信息即分类情况;

第三张参数信息表给出了标识变量P_i的定义

第四张表给出了方差分析模型,利用参数信息表中标识变量的定义可以推算出在各个因素不同水平下分析变量均值的信息;

第五张拟合汇总表中给出分析变量的均值、判定系数R2

在第六张方差分析表中,检验模型显著性的F统计量相应的p值小于0.05 = ,所以拒绝分类变量对分析变量无显著影响的假设,即模型是显著的;

在模型显著的情况下常需要进一步分析两个因素是否都有显著影响或者只有一个因素是显著的,这时就需要用到第七张表提供的信息。在III型检验表中,进一步将模型平方和分解为属于分类变量的平方和。在这里两个因素的p值都小于0.05,再一次说明了这两个因素对分析变量都有显著影响;如果有一个P值<0.05,则该因素不是显著影响!!

第八张是模型的参数估计表,参数估计表也是根据标识变量的定义,对参数或对各因素不同水平下的参数之差进行估计和检验。可以根据t统计量的p值来检验不同水平下均值是否有显著差异。

5)考察模型假定:在显示窗的底部有一个残差和预测值的散点图,可以像单因素分析一样考察残差分布的正态性假定。

存在交互作用的双因素方差分析

前两步与上一个相同!!

3选择菜单“Analyze(分析)”→“Fit(拟合)”,在打开的“Fit(X Y)”对话框中选择数值型变量作因变量,分类型变量作自变量,如图所示。

为了考虑两个分类变量的交互作用,同时选上两个变量,然后单击“Cross”按钮,注意到在右框中多了a*b一行 (这种类型最关键的地方!!

4) 单击“OK”按钮,得到分析结果

5)分析结果

在方差分析表中,检验模型显著性的F统计量,相应的p值为0.0001<0.05,所以模型的效应是显著的;如果p值>0.05,模型效应就不显著。

在Ⅲ型检验表中,将模型平方和分解为两个因素和它们的交互作用,表中看出,检验b变量效应的p值为0.1363 > 0.05,所以从总体上看b变量的效应不显著;检验a变量效应的p值为<0.0001<0.05,所以变量a的效应是显著的;检验两者交互作用的p值为0.0006<0.05,所以交互作用的影响也是显著的。

在模型方程和参数估计表中也提供了双因素不同水平组合下因变量y均值的估计和比较的信息。因为这里是考虑存在交互作用的情形,所以较为复杂一些。

(本人认为这张图没啥用,所以就没有粘)

用“分析家”作双因素方差分析

不存在交互作用的双因素方差分析

1) 在“分析家”中,打开数据集;制表方式如上面,就不多说了

2) 选择菜单“Statistics(统计)”→“ANOVA(方差分析)”→“Factorial ANOVA(因素方差分析)”,打开“Factorial ANOVA”对话框;

发现了么,还是因素多的放到大框子,少的放到小框子,这是我自己总结的,不代表官方意见啊,大家自己也可以总结下!!

若要得到用图形表示的两个因素不同水平下均值和标准差的信息,可以单击“Plots”按钮,在打开的“Factorial ANOVAPlots”对话框中,选中“Means plots”栏下的“Plots Dependent Means for Main Effects(作主效应响应均值图)”。

3)分析结果:

如同刚才在INSIGHT中的,要是想不起来,自己再看一眼吧!!

Means Plots”下的两个选项,得到响应变量关于自变量ab的均值图如图5-31所示。

图中描述了变量ab不同水平下的均值和标准差的图形,从中可以对不同水平下均值的差异有一个直观的了解。

存在交互作用的双因素方差分析

1) 在“分析家”中,打开数据集;数据集建立不多说了啊

2) 选择菜单“Statistics”→“ANOVA”→“Factorial ANOVA”,打开“Factorial ANOVA”对话框,按图选择参数与图形; 重点来了!!

注意红框子的地方哦,因为是交互作用的,所以千万不要忘了还有a*b这么个东西,最后别忘了改成2se~~

后面的分析跟前面都是一样的,懒了就不写了,大家可以自己看前面哈!!

GLM过程进行双因素方差分析 (万能的编程啊~~推荐!!)

不考虑交互作用

» proc glm data = Mylib.xjpf;

» class a b;

» model stren=a b;

» run;

跟单因素比,就多一个变量而已,多方便!!

考虑交互作用

» proc glm data = Mylib.xjpf;

» class a b;

» model stren=a b a*b;

» run;

就比不考虑的多一个a*b,这比分析家和INSIGHT省多少心啊~~

大家注意只在model语句中加~~

3.均值估计与多重比较

对于单因素方差分析的均值比较

(1) 分析设置

1) 在“分析家”中,打开数据集

2) 选择菜单“Statistics”→“ANOVA”→“One-Way ANOVA”,打开“One-Way ANOVA”对话框,分类变量进“Independent,分析变量进“dependent

3) 单击“Means(均值)”按钮,在打开的“One-Way ANOVAMeans”对话框中选中“Comparisons(比较)”选项卡。

从第一个红圈的地方可以下拉出很多比较法,大家选好了,只要按一下ADD,就会加到下面的框子里面了!!

4)单击两次OK

(2) 分析结果

1) 使用Tukey's HSD检验法的结果

分类就看前面AB,A的就是一类的,他们和B的那一类有显著差异!!

2) 使用Dunnett's t-test检验法的结果

最显著的那个后面标了***,很明显

3) 使用Fisher最小显著差异(LSD)检验法的结果

这个跟刚才那个A\B类相同!!

对于多因素方差分析的均值比较

(1) 分析设置

1) 在“分析家”中,打开数据集Mylib.xwtx

2) 选择菜单“Statistics(统计)”→“ANOVA(方差分析)”→“Factorial ANOVA(因素方差分析)”,打开“Factorial ANOVA”对话框;

3) 选中变量ab,单击“Independent(自变量)”按钮,将其移到“Independent”框中;选中变量y,单击按钮“Dependent(因变量)”,将其移到“Dependent”框中

4) 考虑因素间的交互作用:单击“Model”按钮,打开“Factorial ANOVA Model”对话框。单击“Standard Models”按钮,在弹出的菜单中选择“Effects up to 2-wav interactions”项,表示交互作用的a*b加入了模型效应栏,单击“OK”按钮返回

(这一步是重点,这是针对有交互作用的,若果没有交互作用,就不要选出来a*b

5) 单击“Means(均值)”按钮,在打开的“One-Way ANOVAMeans”对话框中选中“Comparisons(比较)”选项卡。

在“Comparison method”下拉列表中选择比较法Fisher's LSD,在“Main effects(主效应)”栏中选择变量ab,单击“Add”按钮,加到主效应框中。再在“Comparison method”下拉列表中选择比较法Tuck's HSD,在“Main effects(主效应)”栏中选择变量a,单击“Add”按钮,加到主效应框中

同刚才那些步骤了。。。

6 单击“OK”,返回,再单击“OK”得到分析结果

分析过程也同上了。。。

七.相关分析

1. INSIGHT模块作相关分析

先说一下建立数据集,找到题中的某句话的意思是,“为了弄清楚。。形成的原因,或者是为了分析。。的影响因素。”找到这句话就成功一半了,将这个。。元素就写到Y的列下,其他的元素就设成X1 X2。。这样,有几个元素就几列,但是Y只有一列,而X就看题中给得了!!

1. 制作散点图

首先制作变量之间的散点图,以便判断变量之间的相关性。步骤如下:

1) INSIGHT模块中,打开数据集;

2) 选择菜单“Analyze(分析)”→“Scatter Plot (Y X)(散点图)”;

3) 在打开的“Scatter Plot (Y X)”对话框中选定Y变量:Y;选定X变量:x1x2x3x4

4) 单击“OK”按钮,得到变量的分析结果。

从各散点的分布情况看,初步有一个跟每个元素的线性关系密切或不密切就行了。

2. 相关系数计算

1) INSIGHT模块中,打开数据集;

2) 选择菜单“Analyze(分析)”→“Multivariate (Y X)(多变量)”;

3) 在打开的“Multivariate (Y X)”对话框中选定Y变量:Y;选定X变量:x1x2x3x4

4) 单击“OK”按钮,得到分析结果。

结果显示各变量的统计量和相关(系数)矩阵,从相关矩阵中可以看出,相关系数高的就关系密切,相关系数低的就关系不密切。

5) 为了检验各总体变量的相关系数是否为零,选择菜单:“Tables“CORR p-values,得到相关系数为零的原假设的p值,如图所示。

基于这些p值,拒绝原假设,即Y因素与其他几个变量之间均存在着显著的正相关关系;若p值>0.05,则无法拒绝原假设。

3. 置信椭圆

继续上述步骤。

6) 选择菜单:“Curves“Scatter Plot Cont Ellipse“Prediction95%”,得到Y与其他几个变量的散点图及预测值的置信椭圆

变量Yx1间散点图上的这个椭圆被拉得很长,表明变量Yx1之间有很强的相关性。

分析家作相关分析

1) 在“分析家”中打开数据集Mylib.jyzk

2) 选择主菜单“Statistics“Descriptive(描述性统计)”→“Correlations(相关)”,打开“Correlations”对话框

都扔进这一个里面了。。

3)单击plots,打开Correlations:Plots。选中Scatter plots(散点图) Add confidence ellipses(添加置信椭圆).

4)两次OK

2. 结果分析

0.0001的就是高度相关的,较大的就是低度相关的,之间的就是中度相关。

3. 置信椭圆

在分析家窗口的项目管理器中依次双击“Scatter Plots”下的“Confidence ellipseYX1”~“Confidence ellipseYX6”项,得到各变量与单位面积营业额的散点图

置信椭圆较扁长,相关关系强;置信椭圆接近于圆,相关关系小。

八、回归分析

1. INSIGHT模块作回归分析

1. 一元线性回归

数据集的建立与相关分析的数据集建立相同,大家可以看上面的内容!!

(1) 分析

1) INSIGHT模块中打开数据集。选择菜单“Analyze“Fit(Y X),打开“Fit(Y X)”对话框;

2) 在“Fit(Y X)”对话框中,将Y设为响应变量,将x1设为自变量;

3) 单击“OK”按钮,得到分析结果

2)分析结果

第一张表提供关于拟合模型的一般信息,Y = x1表示这个分析是以Y为响应变量,x1为自变量的线性模型;

第二张表给出回归方程:

第三张表是带有回归直线的散点图,给出了回归的图形表示

图的下面是参数回归拟合表。其中判定系数R-SquareR2)为模型平方和占总平方和的比例,反映了回归方程能够解释的信息占总信息的比例

第四张表提供拟合的汇总度量:Mean of Response(响应变量的均值)是变量Y的平均值,Root MSE(均方残差平方根)是对各观测点在直线周围分散程度的一个度量值,为随机误差ε的标准差(也是实测值Y的标准差)的无偏估计。

第五张方差分析表(图4-16)包含对回归方程的显著检验

对一元线性回归,第六张型检验表提供与方差分析表一样的检验

第七张参数估计表给出了回归直线截距和斜率的估计值及其显著性检验等内容。在这个例子里,截距的p > = 0.05,表示模型还有改进的余地,可以考虑拟合截距为0的回归直线。斜率的t检验p < 0.0001,表明自变量贷款余额对因变量不良贷款有显著的线性关系

(2) 回归诊断

在显示窗的底部有一个残差R_Y和预测值P_Y的散点图,这个图可以帮助验证模型的假定。从图中看出,数据点随机地散布在零线附近,表明模型中误差等方差、独立性的假设没有问题;若没有随机散步,则模型中方差独立性等假设可能有问题。

为了检验误差为正态分布的假定,回到数据窗口。可以看到残差R_Y和预测值P_Y已加到数据集之中,可以用Distribution(Y)来验正残差的正态性。

1) 选择菜单“Analyze(分析)”→“Distribution (Y)(分布)”,打开“Distribution (Y)”对话框。在数据表BLDK的变量列表中,选择R_Y,然后单击“Y”按钮,R_Y被选为分析变量;

2) 单击“OK”按钮;

3) 选择菜单“Curves“Test for Distribution

4) 在打开的“Test for Distribution”对话框中单击“OK”按钮即可。

这一部分就是前面的正态性检验,大家可以看前面的内容!!

在分析结果的Test for Distribution(分布检验)表中看到,若p值大于0.05,不能拒绝原假设,表明可以接受误差正态性的假定;若p值小于0.05,则不能接受误差正态性。

(3) 利用回归方程进行估计和预测

1) 回到数据窗口,点击数据表的底部,增加一个新行;在第一个空行中,在x1列填入100,并按Enter

2) 自动计算出Y的预测值并将结果显示在P_Y列之中,这样可以得到任意多个预测值。

(4) 拟合不含常数项的回归

要拟合常数项为零的回归模型,只需在上述步骤中的“Fit(Y X)”对话框中取消“Intercept”复选项

单击“OK”按钮后,得到的回归模型

记得要做正态性检验哦!!

2. 多元线性回归

(1) 分析步骤

INSIGHT模块中打开数据集。

1) 选择菜单“Analyze“Fit(Y X)(拟合)”,打开“Fit(Y X)”对话框;

2) 在“Fit(Y X)”对话框中,选择变量Y,单击“Y”按钮,将Y设为响应变量;选择变量x1x2x3x4,单击“X”按钮,将x1x2x3x4设为自变量;

还是那句话哦,多的就放到大的框子里面,而少的就放到小的框子里面!!

3) 单击“OK”按钮,得到分析结果。

在显示的结果中可以看到,多元回归分析的输出类似于一元线性回归的输出,同样分为七张表:

第一张表提供关于拟合模型的一般信息;

第二张表给出模型方程(即回归方程)

以下几张表与一元基本相同,就不赘述了。。

(2) 剔除自变量

首先考虑剔除变量x3,对此只需在刚才已打开的拟合窗的任一处选中变量x3,如图所示,再在主菜单中选择“Edit“Delete所有的结果就会修改为不含x3的拟合结果。

若剔除某些变量后拟合的结果比不拟合更好,就可以舍掉某一些自变量!!

用“分析家”作回归分析

(1) 分析步骤

选择主菜单“Statistics(统计)”→“Regression(回归)”→“Linear(线性)”,打开“Linear Regression(线性回归)”对话框Ydependent,X1进另一个!!

在显示的输出结果中, p<.0001< α = 0.05,所以模型的作用是显著的。

参数估计部分列举了回归方程中两个参数的值以及有关的显著性检验的结果。

拟合的回归方程为:

(2) 制作散点图

在上述操作打开的“Linear Regression”对话框中,单击“Plots”按钮。在打开的“Linear RegressionPlots”对话框中,选择“Predicted”选项卡,选中“Plot observed vs independent”复选框。单击“OK”按钮,得到分析结果,包含响应变量Y与解释变量x2的散点图

(3) 拟合不含常数项的回归

“Linear Regression”对话框中单击“Model”按钮,在打开的“Linear RegressionModel”对话框中选中“Do not include an intercept”复选框

在显示的输出结果中, p <.0001< α = 0.05,所以模型的作用是显著的。

2. 多元线性回归

(1) 分析步骤

1) 选择主菜单“Statistics Regression Linear,打开“Linear Regression(线性回归)”对话框

平时不都是y=x么,所以这时候也是Y进左边框子,X进右面框子!!

p<0.0001<0.05 = α显示的分析结果表明模型的作用是显著的

(2) 逐步回归

分析家中选择变量的方法很多,在上述步骤的“Linear Regression”对话框中,单击“Model”按钮,打开“Linear RegressionModel”对话框。

“Method”选项卡中包含多种变量的选择方法,选择其中一种,例如选择“Backward elimination(逐步剔除法)”

继续剔除进入回归的变量中最不显著的自变量x6,直到所有的参数显著不为0

使用REG过程作回归分析(我最喜欢的编程)

1. REG过程的语法格式

REG过程的基本用法为:

PROC REG DATA<输入数据集> [<选项列表>]

VAR <变量列表>

MODEL <因变量> = <自变量表>/<选项>

PRINT <选项列表>

PLOT 变量名*x变量名> [=<符号>] [/<选项列表>]

RUN

说明:

MODEL语句用以指定所要拟合的回归模型,其后的选项与REG语句的选项类似。

PLOT语句用以对两个变量绘制散点图,表达式中位置在前(在乘号“*”之前)的变量作为散点图的y轴,位置在后的变量作为散点图的x轴。等号后的符号为散点图中表示点的图形符号,此项内容可省略,SAS会用默认方式显示图形,但如需指定,符号要用单引号括起来。对于同一个模型可以指定多个plot语句。

PRINT语句用于交互地显示MODEL语句中的有关选项,可以将拟合模型的有关统计量显示在结果中。

2. 多元回归

例如:proc reg data = Mylib.jyzk;

var y x1 – x6;

model y = x1 – x6;

run;

3. 逐步回归

MODBL语句中加上“SELECTION = 选择方法”的选项就可以自动挑选自变量,选择方法有NONE(全用,这是缺省),FORWARD(向前逐步引入法),BACKWARD(向后逐步剔除法),STEPWISE(逐步筛选法),MAXR(最大R2增量法),MINR(最小R2增量法),RSQUARER2选择法),ADJRSQ(修正R2选择法),CPMallowsCp统计量法)。

例如:model y = x1 – x6 / selection=stepwise;

run;

可得到逐步筛选法的分析结果,大家自己试试吧~~

4. 预测

REG过程给出的缺省结果比较少。用PRINT语句和PLOT语句可以显示额外的结果。为了显示模型的预测值(拟合值)和预测值的95%置信区间,使用语句:

» print cli;

» run;

print cli列出的是预测值的置信区间,使用如下语句还可以列出模型均值的置信区间:

» print clm;

» run;

5. 散点图

对于自变量是一元的情况,可以在自变量和因变量的散点图上附加回归直线和均值置信界限。比如

» plot y*x2/conf95;

» run;

要说的是,整理的比较仓促,我也是想到什么重点就说些什么,希望能够给大家带来些帮助,谢谢大家了,祝大家SAS一切顺利!!

《SAS复习整理(全).doc》
将本文的Word文档下载,方便收藏和打印
推荐:
下载文档
热门推荐
相关推荐