SAS数据分析与统计.docx

上传人:b****7 文档编号:10757250 上传时间:2023-02-22 格式:DOCX 页数:50 大小:1.31MB
下载 相关 举报
SAS数据分析与统计.docx_第1页
第1页 / 共50页
SAS数据分析与统计.docx_第2页
第2页 / 共50页
SAS数据分析与统计.docx_第3页
第3页 / 共50页
SAS数据分析与统计.docx_第4页
第4页 / 共50页
SAS数据分析与统计.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

SAS数据分析与统计.docx

《SAS数据分析与统计.docx》由会员分享,可在线阅读,更多相关《SAS数据分析与统计.docx(50页珍藏版)》请在冰豆网上搜索。

SAS数据分析与统计.docx

SAS数据分析与统计

一、数据集的建立

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

1)在SAS应用工作空间中,选择菜单“文件”→“导入数据”,打开导入向导“ImportWizard”第一步:

选择导入类型(Selectimporttype)。

2)在第二步的“Selectfile”对话框中,单击“Browse”按钮,在“打开”对话框中选择所需要的Excel文件,返回。

然后,单击“Option”按钮,选择所需的工作表。

(注意Excel文件要是2003的!

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

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

2.用INSIGHT创建数据集

1)启动SASINSIGHT模块,在“SASINSIGHT:

Open”对话框的”逻辑库“列表框中,选定库逻辑名

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

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

3)数据集的保存:

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

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

•单击“确定”按钮。

即可保存新建的数据集。

3.用VIEWTABLE窗口建立数据集

1)打开VIEWTABLE窗口

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

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

4)变量类型的定义:

右击变量名/columnattributes…

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

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

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

(用于DATA步的其它语句)

Cards;/*数据行的开始*/

[数据行]

;/*数据块的结束*/

RUN;/*提交并执行*/

例子:

data=数据集名字mylib.a;

inputname$phoneroomheight;($符号代表该列为列名型,就是这一列是文字!

比如名字,性别,科目等等)

cards;

rebeccah4241121.5648(中间是数据集,中间每一行末尾不要加逗号,但是

carol4501125.6235数据集最后要加一个分号!

louise4091101.2568

gina4741101.3652

mimi4101061.6542

alice4111061.6985

brenda4141061.3698

brenda4141051.8975

david4381411.6547

betty4641411.5647

holly4661401.5624

;

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

run;

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

二、基本统计分析

1.用INSIGHT计算统计量

1)在INSIGHT中打开数据集

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

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

在数据集的变量列表中,选择分析变量X、分组变量Y。

(注意:

分组变量就是那种可以区别不同种类的变量,例如地区编号、科目、组号等等,而分析变量一般是需要分析的数据,例如成绩,身高书目)

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

4)选择选项矩统计量和分位数,取消默认的选项:

“BoxPlot/MosaicPlot”和“Histogram/BarChart”,单击“OK”按钮,即可得到变量按分组的各种矩统计量(Moments)和分位数(Quantiles)

*描述性统计选项:

Moments矩统计量Quantiles分位数

见书P37BasicConfidenceIntervals基本置信区间

TestsforLocation位置检验FrequencyCounts频数统计

RobustMeasuresofScale尺度的稳健估计

TestsforNormality正态性检验

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

1)启动“分析家”

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

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

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

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

单击“Statistics”按钮,打开“SummaryStatistics:

Statistics”对话框。

对话框中列出可以计算的所有统计量。

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

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

单击“OK”按钮,即可得到关于分析变量的矩统计量和基本统计测度。

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

1)FREQ过程

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

PROCFREQDATA=<数据集>;

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

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

RUN;

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

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

例如:

procfreqdata=mylib.sryzc;

tablesR_IdIncome;

RUN;

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

2.MEANS过程

MEANS过程的一般格式:

PROCMEANSDATA=<数据集名>[<统计量关键字列表>];

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

[BY<分组变量名>;]

[CLASS<分组变量名>;]

RUN;

例如:

procmeansdata=mylib.sryzc;

varIncome;

run;

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

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

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

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

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

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

procmeansdata=mylib.sryzcnmeanmedianp1p5p95p99q1q3maxmin;

varIncome;

Run;

关键字

所代表的含义

关键字

所代表的含义

n

有效数据记录数

range

极差

nmiss

缺失数据记录数

skewness

偏度

mean

均值

kurtosis

峰度

std

标准差

t

分布位置假设检验之t统计量

stderr

标准误

probt

上述t统计量对应的概率值

var

方差

q1

第一四分位数

median

中位数

q3

第三四分位数

mode

众数

qrange

四分位数间距

cv

变异系数

p1

第一百分位数

max

最大值

p5

第五百分位数

min

最小值

p10

第十百分位数

sum

总计

p90

第九十百分位数

sumwgt

加权值总计

p95

第九十五百分位数

css

校正平方和

p99

第九十九百分位数

uss

未校正平方和

2)使用CLASS语句和BY语句

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

两个语句的区别是:

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

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

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

(p46)

例如:

procsortdata=mylib.sryzc;

byR_Id;

run;

procmeansdata=mylib.sryzcnmeanmedianp1p5p95p99q1q3maxmin;

varIncome;

byR_Id;

run;

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

procmeansdata=mylib.sryzcnmeanmedianp1p5p95p99q1q3maxmin;

varIncome;

classR_Id;

RUN;

3.UNIVARIATE过程(推荐使用)

UNIVARIATE过程的一般格式为:

PROCUNIVARIATEDATA=<数据集名>[<统计量关键字列表>];

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

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

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

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

RUN;

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

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

输出包括五个部分:

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

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

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

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

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

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

 

三、程序绘图

1.GCHART过程

(1)语法格式

PROCGCHARTDATA=<数据集名>;

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

RUN;

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

图形关键字

绘制的图形类型

图形关键字

绘制的图形类型

block

方块图

pie

饼形图

hbar

水平的条形图

pie3d

三维饼形图

hbar3d

水平的三维条形图

donut

环形图

vbar

竖立的条形图

star

星形图

vbar3d

竖立的三维条形图

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

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

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

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

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

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

举例啦!

2)画条形图(直方图)

例如:

procgchartdata=mylib.sryzc;

vbarIncome;(分析变量!

run;

其中绘图用的变量用VBAR语句给出,如果把VBAR改成HBAR则条形方向变为横向。

用GCHART绘制的条形图和在INSIGHT中绘制的直方图有所不同,它在横轴标的是区间的中点值,而在INSIGHT中横轴标的是区间的端点值。

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

procgchartdata=mylib.sryzc;

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

run;

3)画三维条形图

使用BLOCK关键字可以画三维条形图。

例如,画出数据集中Income变量的三维条形图的代码如下:

procgchartdata=mylib.sryzc;

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

Run;

4)画饼形图

使用PIE关键字可以画饼形图,PIE3D关键字可以画三维饼形图。

例如,画出数据集中Income变量的三维饼形图的代码如下:

procgchartdata=mylib.sryzc;

PIE3DIncome;(分析变量哦!

run;

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

1)GPLOT过程的一般格式

PROCGPLOTDATA=<数据集名>;

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

[SYMBOLn<选项>;]

RUN;

PLOT语句的选项

选项

意义

说明

FRAM|NOFRAM

在图形四周加入或不加入边框默认为加入

缺省为加入

CFRAM=颜色

边框内的颜色默认为白色

缺省为白色

AUTOHREF(AUTOVEREF)

在水平(垂直)轴的每个主刻度处加入水平(垂直)参考线

NOAXIS

取消坐标轴及相关的图形元素

CAXIS=颜色

设定轴的颜色

CTEXT=颜色

设定与轴相关字符的颜色

HAXIS=值列举

设定水平轴主刻度的值

VAXIS=值列举

设定垂直轴主刻度的值

overlay

多个图共坐标

 

散点图

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

procgplotdata=mylib.sryzc;

plotIncome*outgo;(分析变量哦!

run;

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

procgplotdata=mylib.sryzc;

plotIncome*outgo=r_id;

symbol1color=blackv=star;

symbol2color=bluev=dot;

run;

连线图

为了绘制连线,只要在SYMBOL语句中指定i=join。

例如绘制家庭总收入对家庭编号的连线图,代码如下:

procgplotdata=mylib.sryzc;

plotIncome*id;

symboli=joinv=star;

run;

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

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

procgplotdata=mylib.sryzc;

plotIncome*id=r_id;

symbol1color=blacki=joinv=star;

symbol2color=bluei=joinv=dot;

run;

 

四、正态性检验

1.分布拟合图

用“insight”绘图

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

设置正态性!

2.绘制QQ图

要选择QQ图的选项!

1)选择菜单“Curves(曲线)”→“QQRefLine(QQ参考线)”,打开“QQRefLine”对话框。

选择“Method(方法)”栏下的“LeastSquares(最小二乘)”单击“OK”按钮得到带参考线的QQ图

选择最小二乘法!

2)选择菜单“Graphs(图形)”→“QQPlot(QQ图)”,打开“QQPlot”对话框。

选择“Distribution(分布)”栏下的“LognormalQQPlot(对数正态QQ图)”,单击“OK”按钮得到对数正态QQ图

选择对数正态!

3.正态性检验

注意:

前两种检验都是从图线上直观看出结果,不是很准确,最后这种是最准确的!

建议大家做正态性检验时,用这种方法!

1)在INSIGHT中继续上述操作:

选择菜单“Curves(曲线)”→“TestforDistribution(分布检验)”,打开“TestforDistribution”对话框。

单击“OK”按钮,得到分析变量的经验分布和拟合的正态累计分布曲线图。

2)列举了拟合正态分布的均值(即样本均值)和标准差(即样本标准差),并提供了KolmogorovD统计量的数值0.1377,而相应的p值>0.05=α,所以不能拒绝原假设,可以认为分析变量总体分布为正态分布。

这是检验的一步,注意看P值与0.05的比较,当P值大于0.05时,就可以确定这个分析变量总体分布为正态分布!

在“分析家”绘图

1.绘制分布拟合图和QQ图

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

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

选择分布拟合图和QQ图!

2.分布检验

1)继续上述步骤。

在分析家窗口的项目管理器中双击“FittedDistributionsofGcjg”项,得到检验结果

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

 

用编程方法进行检验

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

使用UNIVARIATE过程

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

例如:

procunivariatedata=Mylib.yczlnormal;

varweight;(分析变量!

run;

检验结果:

结果中给出了分析变量的四种正态性检验结果,其中Shapiro-Wilk检验是首选的。

当看到p值很大大于0.05,所以在0.05水平下不能拒绝原假设,即认为分析变量服从正态分布

五、假设实验

1.总体均值的区间估计

用“insight”计算统计量

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

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

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

将分析变量放入Y

4)单击Output,在打开的对话框中选中BasicConfidenceInterval

5)两次单击OK按钮

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

若想得到其他置信水平的置信区间:

选择“表”→“置信区间”→“其他”,然后可以修改置信水平

用“分析家”计算统计量

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

2)选择菜单“Statistics(统计)”→“HypothesisTests(假设检验)”→“OneSamplet–testforaMean(单样本均值t-检验)”;

3)在打开的“OneSamplet–testforaMean”对话框中设置均值的置信区间

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

 

用编程方法计算统计量

Means过程实现:

procmeansdata=sasdata.yczlclmalpha=0.05;

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

varweight;(分析变量!

run;

ttest过程实现:

procttestdata=sasdata.yczlalpha=0.05;

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

varweight;

run;

univariate过程实现:

procunivariatedata=sasdata.yczlcibasic(alpha=0.05);

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

varweight;

run;

重点介绍使用TTEST过程:

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

语法格式

–PROCTTEST<选项列表>;

–[CLASS<分组变量名>;]

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

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

–RUN;

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

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

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

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

变量名列表形式

产生的效果

a*b

a–b

a*

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1