SAS统计分析软件入门.ppt
,数据采集与统计分析,主讲高 洁,联系电话:办公室地址:钱伟长楼203室,课程目的与主要内容,1.数据采集部分-介绍主要的试验设计方法,用尽可能少的试验点采集尽可能多的信息.2.统计分析部分-介绍常用的统计分析方法,从数据中根据需要有效地提取信息.3.SAS软件部分-学习操作SAS,应用SAS进行数据的实际分析.,统计数据处理分析方法的应用软件,预备篇:SAS统计分析软件入门,内容安排 概述 SAS操作方法 SAS/INSIGHT SAS/分析员应用 SAS编程,SAS(Statistical Analysis System),中文名“赛仕”,译为“统计分析系统”,概 述,国际上公认的标准统计软件之一。公司卓著的业绩使之被评为“全美国人最乐意为之工作的100家公司”之一 及最佳决策支持工具的供应商。发展1966年 美国北卡罗莱纳州州立大学 1972年 推出SAS72供大学使用版1976年 成立SAS研究所(SAS Institute Inc.),总部在美国北卡州凯瑞市 现已是全球最大的私人软件公司和全球排名第九位的独立软件商。目前达到SAS9.2版本。,系统组成:三十几个模块,如BASE,GRAPH,ETS,FSP,AF,OR,IML,SHARE,QC,STAT,INSIGHT,ANALYST,ASSIST,CONNECT,CPE,LAB,EIS,WAREHOUSE,PC File Formats,GIS,SPECTRAVIEW,SHARE*NET,R/3,OnlineTutor:SAS Programming,MDDB Server,IT Service Vision Client,IntrNet Compute Services,Enterprise Reporter,MDDB Server common products,Enterprise Miner,AppDev Studio,Integration Technologies等,功能包括:客户机/服务器计算、数据访问、数据存储及管理、应用开发、图形处理、数据分析、报告编制、质量控制、项目管理、计算机性能评估、运筹学方法、计量经济学与预测等,界面:三个基本窗口Editor 编辑窗:在此编写SAS程序Log 记录窗:记录程序运行过程中所做的内容,如所运行的数据情况、所调用的过程步、程序运行时间等(红色-错误 绿色-警告 兰色-正常)Output结果输出窗:统计分析的结果。Result窗口,Explorer窗口其他:keys窗、libname窗、options窗、var窗、dir窗(在command命令窗 或命令行command=输入相应的命令可激活这些窗口),SAS会话窗口,程序编辑窗口,运行记录窗口,结果输出窗口,命令窗口,Results窗口,在命令窗口输入“keys”后情况,命令行,命令窗(条),常用的快捷键F4 recall命令,用于editor窗,将前面提交的程序调回,可多次使用F5 切换到editor窗;F6 切换到log窗;F7 切换到output窗F8 submit命令Ctrl-E 清除当前窗口的内容。editor窗被清除的内容不能用F4调回,SAS9.01中文界面的几个窗口,使用ToolsOptions Preferences可修改界面显示,或输出文件的格式等。在命令窗输入 num并回车,可在编辑窗口中加入行号。SAS文件的扩展名*.sd2 SAS数据集(6.12版)(必须以字母开头,长度不超过8位);8.0以上版为*.sas7bdat;*.sas SAS程序文件*.log log窗口输出*.lst SAS结果文件,SAS 软件操作方法,三种操作方法:SAS/INSIGHT最为直观,便于步步深入。SAS/Analyst application提供自动形成程序代码功能且在属性数据分析和功效函数计算方面比INSIGHT强。SAS编程功能最强,尤其是一些特殊或深入的统计分析功能只能通过编写程序来实现。,一、SAS/INSIGHT,调用SAS/INSIGHT有三种方法:1、可用菜单栏中的下拉菜单:SolutionsAnalysisInteractive data analysis;2、在命令行中键入INSIGHT命令;3、提交PROC INSIGHT语句或通过SAS/ASSIST.,SAS/INSIGHT 的功能:,File:提供处理读入数据集、存储数据集、分析结果的表格和图形管理;Edit:提供对打开的数据集的变量、观测值进行增删、设定数据的显示格式和窗口管理等;Analyze:提供作图和分析功能,分析功能包括:分布拟合、线性模型(包括回归分析、方差分析等)、多变量分析;Table:提供显示分析结果的各种表的功能;Graphs:提供生成与分析有关的各种图形的功能;Curves:提供与分析有关的各种曲线的功能;Vars:提供由分析结果形成的新的变量的功能。,二、SAS/Analyst application,调用SAS/分析员应用有两种方法:1、可用菜单栏中的下拉菜单:SolutionsAnalysisAnalyst;2、在命令行中键入Analyst命令.,SAS/分析员应用 的功能:,File:有关数据文件的新建、读、写、转换、打印和传输等;Edit:关于修改选项的一些功能;View、Data:对已打开的数据集进行编辑和加工,如对数据集行列的增、删、改、排序、转置和对数据集的随机抽样等;Graphs:图形功能,主要包括直方图、盒形图、等高线图、三维散点图和曲面图等;Statistics:主要的统计分析功能,包括描述统计量的计算、列联表分析、假设检验、方差分析、回归分析、多变量分析和样本容量计算等。,三、SAS编程,SAS程序:由数据步(DATA)和一个或多个过程步(PROC)组成。数据步:组织数据;过程步:对已组织好的数据进行处理并输出处理结果。,SAS语句以一个关键词开始,以分号(;)结束;data a;input x;cards;323 54 45 65;proc print;run;,SAS程序的基本结构,数据步:创建数据,过程步:调用数据分析过程,或 Lines 或 Datalines,运行编辑窗内程序点击图标按功能键“F8”在命令行(窗)键入“submit”在Run下拉菜单中选“submit”所激活窗口(Editor、Log、Output)内容的保存在命令行(窗)键入 file“路径文件名”点击图标在file下拉菜单中选“save”或“save as”只有编辑窗口(editor窗)才能打开文件,(一)SAS语言基础,data a;input x;cards;435465;proc print;run;,以关键词开始SAS 语句;对于8.0以上SAS软件,这些关键词显示为蓝色;如果显示为红色,则可能的关键词无效或拼写错误,dat a;input x;cards;435465;proc print;run;,1.所有SAS语句必须以“;”结束,data a;input x;cards;435465;proc print;run;,初学者最容易犯的错误就是不写分号。此时SAS将两个语句误认成一个语句(statement)。注意:(1)一个SAS语句可以写成两行或多行,如“data a;”可写成data a;(2)多个SAS语句可以写成简单的一行。如:“proc print;run;”,2.程序的结束,data a;input x;cards;435465;proc print;run;,3.数据集名与变量名,data a;input x;cards;435465;proc print;run;,数据集名称,变量名称,数据集名与变量名取名时可以是字母、下划线、数字,不能以数字开头,最多可以32个字符(SAS8.0以下软件的最大字符数为8个字符)字母可以大写、小写或大小写混合,因此Weight、weight、WEIgHT被SAS视为相同的变量。,4.变量的排列,data a;input x;cards;435465;proc print;run;,如果有多个变量,如Height、Weight、Age、Sex,Job则在SAS中排列为“input Height Weight Age Sex Job;”如果将以上变量用代号x1、x2、x3、x4、x5表示,则语句可写为:“input x1 x2 x3 x4 x5;”或简写为:“input x1-x5;”,5.输入数据的标识语句,data a;input x;cards;435465;proc print;run;,cards;或datalines;或lines;语句之后表示数据的输入即将开始。数据的变量名、变量的格式等在input语句中定义。数据输入结束,也必须采用分号结束。,(二)数据步,data a;input x;cards;435465;proc print;run;,数据分析前,数据集必须被读入。读入数据方法:1.直接创建;2.Infile 和 input语句创建;3.对1.、2.数据进行简单编辑,创建新的变量等。,1.直接创建数据集,data child;/*建立临时数据集child.sd2,自动放在saswork子目录下*/input id x1$x2 x3 x4 x5 x6;/*指明要输入的变量,$为字符型变量*/cards;/*标志数据区开始,数据之间以一个或几个空格分隔*/1 m 32 95.5 14.0 53.5 49.64 2 m 35 92.0 13.0 52.0 41.61 3 m 33 89.0 12.5 53.5 35.81 254 m 176 168.0 53.5 82.0 100.14 255 f 30 91.0 11.0 48.0 35.39 256 f 33 91.0 11.5 47.0 44.98 521 f 178 163.0 51.0 79.0 87.42;/*标志数据区结束,分号必须单独一行*/run;,SAS中的常用变量类型数值型:不需特殊定义字符型:定义方式 变量名$日期型:多种形式如:变量名 mmddyy6.实际记录为距1960/01/01的天数输入格式可以是:091004 09/10/04 09 10 04 09102004其它数据库中的逻辑型、备注型变量在SAS中均为字符型变量。日期型变量转进SAS后一般也变为字符型变量。,data a1;input id x1$x2 x3 x4;cards;1 m 32 95.52 m 35 92.0 13.03 m 33 89.0 12.5;proc print;run;结果:Obs id x1 x2 x3 x4 1 1 m 32 95.5 2.0 2 3 m 33 89.0 12.5,data a1;input id x1$x2 x3;cards;1 m 32 95.52 m 35 92.0 13.03 m 33 89.0 12.5;proc print;run;结果:Obs id x1 x2 x3 1 1 m 32 95.5 2 2 m 35 92.0 3 3 m 33 89.0,SAS数据集创建时存在的问题,data child;input id x1$x2 x3 x4 x5 x6;cards;1 m 32 95.5 14.0 53.5 49.64 2 m 35.13.0 52.0 41.61 3 m 33 89.0 12.5 53.5 35.81 254 m 176 168.0 53.5 82.0 100.14 255 f 30 91.0 11.0 48.0 35.39 256 f 33 91.0 11.5 47.0 44.98 521 f 178 163.0 51.0 79.0 87.42;proc means;run;,缺失值的输入:以“.”表示,缺失值不进入分析,Variable N Mean Std Dev Minimum Maximum-id 7 184.5714286 194.9639771 1.0000000 521.0000000 x2 7 73.8571429 70.4779601 30.0000000 178.0000000 x3 6 116.2500000 38.2410120 89.0000000 168.0000000 x4 7 23.7857143 19.4825930 11.0000000 53.5000000 x5 7 59.2857143 14.7361719 47.0000000 82.0000000 x6 7 56.4271429 26.2540446 35.3900000 100.1400000-,data esr;input x;/*每读入一个记录后,数据指针保持原位不换行,继续读下一条记录*/cards;3 9 8 6 5 5 7 3 10 8 10 4;proc means;run;结果:N Mean Std Dev Minimum Maximum-2 6.5000000 2.5405797 3.0000000 10.0000000-,不分行符的使用,如已存在一纯文本文件c:child.txt,内容如下:1 m 32 95.5 14.0 53.5 49.64 2 m 35 92.0 13.0 52.0 41.61 3 m 33 89.0 12.5 53.5 35.81 254 m 176 168.0 53.5 82.0 100.14 255 f 30 91.0 11.0 48.0 35.39 256 f 33 91.0 11.5 47.0 44.98 521 f 178 163.0 51.0 79.0 87.42可用infile 直接读入:Data child;Infile c:/child.txt;Input id x1$x2 x3 x4 x5 x6;proc print;Run;,2.Infile 和 input 语句创建数据,如从现有SAS文件“child”中读取数据,变成文件名为“school”的文件。data school;set child;x=x3-x2;proc print;Run;,3.从现有SAS数据集中读取数据,前面所产生的文件都是临时文件,退出SAS后,这些文件将自动删除。为了将文件变成永久性数据集存储在磁盘上,可采用libname语句。libname ych f:/sasdata;data ych.student;set school;run;,4.在磁盘上存储SAS数据集,用ych代表子目录“f:/sasdata”,可任意取名,但应与打算建立的文件名前的前缀相同,SAS数据集名称的表示方式:库关联名.数据集名 永久数据集 格式:libname 库关联名“盘符:路径”;如:libname ych f:SASdata;ych 为库关联名,代表路径 f:SASdata;库关联名可任意取,一旦定义,只要不退出SAS,始终有效(因为libname 命令为全局命令)。但路径必须实际存在。临时数据集:每次启动SAS时,会自动开辟一个临时存储区,其库关联名为WORK,代表sassaswork子目录。一旦退出sas,临时存储区数据集文件自动删除,称为临时数据集临时数据集的库关联名默认为work,均省略不写。如 data child;(实际为work.child),永久数据集和临时数据集,利用file下拉菜单中的import功能,可转入:文本型数据:空格分隔、逗号分隔、制表键分隔Dbase 数据库(*.dbf)Excel数据库有的数据可通过粘贴的方法贴到Editor窗,然后采用input和cards等语句,直接生成sas数据集。,5.从其他数据集转入,输出数据:(与刚才正好相反),变量赋值:变量名=表达式;如x5=x4*0.5;x=x3-x2;teamgreen;缺失值赋值举例:age.;字符型变量:team;if then;else;如 if sex=1 then t=f1+f2+f3;子集化:用keep或drop语句整理变量名表 keep;drop;,6.修改 SAS 数据,SAS运算符举例演示,data E21;input N$x1 x2 x3;/*说明N是字符型变量,N后加$*/y=x1+x2;z=x1*x2;u=x1*3;/*用加,乘,乘方产生新变量*/cards;/*说明以下输入数据*/A 1.1 2.6 3.8 B 4.5 5.7 6.0 C 7.6 8.2 9.7;/*空语句说明数据输入结束*/Proc print;/*有此打印语句则在output窗口有输出,否则只在explorerwork储存*/run;请看演示,data b1;set child;if id200 then group=1;else group=2;rename id=x0;keep id x1 x2 group;proc print;run;注:keep id x1 x2 group等价于 drop x3-x6;,OBS X0 X1 X2 GROUP 1 1 m 32 1 2 2 m 35 1 3 3 m 33 1 4 254 m 176 2 5 255 f 30 2 6 256 f 33 2 7 521 f 178 2,SAS 数据集的整理举例,1.算术函数 绝对值函数:ABS(x)平方根函数:SQRT(x)符号函数:SIGN(x)2.最大、最小值函数:MAX(范围)、MIN(范围)3.截取函数 取整函数:INT(x)ROUND(x,舍入精度):按规定舍入精度取一近似值的函数.例 ROUND(323.456,100)=300 CEIL(x):取大于等于自变量的最小整数的函数.FLOOR(x):取小于等于自变量的最大整数的函数.,7.SAS 函数,4.数学函数 Exp(x)Log(x)Log2(x)Log10(x)Sin(x)Cos(x)Tan(x)Arsin(x)Arcos(x)Atan(x)5.分布函数 泊松分布函数:POISSON(参数,x)二项分布函数:PROBBNML(p,n,x)标准正态分布:PROBNORM(x)t 分布:PROBT(x,df)卡方分布:PROBCH(x,df)F分布:PROBF(x,ndf,ddf),6.分位数函数(其中alpha是事先规定的右侧尾端概率)标准正态分布分位数函数:PROBIT(1-alpha)t 分布分位数函数:TINV(1-alpha,df)卡方分布分位数函数:CINV(1-alpha,df)F分布分位数函数:FINV(1-alpha,ndf,ddf,)7.随机数函数 seed(每随意赋一个值可得到给定分布的随机变量抽样值)均匀分布随机数函数:UNIFORM(seed)或RANuni(seed)标准正态分布随机数函数:normal(seed)或 RANnor(seed)均值为a方差为2 的正态分布随机数函数:X=a+sqrt(2)*RANnor(seed),例1,Data A;a1=3;a2=-8;a3=14;a4=-27;X=MAX(of a1-a4);Y=MIN(of a1-a4);File print;put X Y;run;,例2,Data B;P=POISSON(1,3);File print;put P;run;,例3,data C;A=INT(323.456);B=ROUND(323.456,100);C=CEIL(-3.4);D=FLOOR(3.4);FILE print;put A B C D;run;,例4,data norm;do seed=1 to 100;x=170+sqrt(30)*rannor(seed);/*x=均值为170,方差为30的正态分布随机数*/y=170+sqrt(30)*rannor(seed);/*注意由于是随机数,两组结果不一样,且每次都不一样*/output;end;proc print;run;,以下程序运行后产生两组各100个抽样于均值为170,方差为30 的正态分布随机数。,(三)过程步 过程步(procedure step)是以关键字PROC开始的一个或多个SAS语句。过程步的结构一般为:PROC 过程名 过程选择项;语句/语句选择项;语句 语句选择项;语句;,常用SAS 过程步,PRINT(按要求输出结果)SORT(排序)UNIVARIATE、MEANS(定量资料的描述性统计)CHART(绘制直方图)PLOT(绘制散点图)FREQ(产生1n 维的频数表和交叉表)TTEST(t 检验)ANOVA(方差分析)GLM(回归分析、方差分析、协方差分析等)CORR(计算相关系数)REG(简单与多重回归)NPAR1WAY(非参数检验),常用SAS 语句选择项,VAR:规定打印紧跟其后的变量ID:用紧跟其后变量值的顺序代替观测值序数去标识输出的观察值BY:指定机器把数据集分成若干个小组,每组中BY后的变量值相同,分组打印这些组的观察值,例1,data aa;input number x y;cards;1 10.98 202 11.13 303 12.51 304 8.40 205 9.27 406 8.73 507 6.36 40;proc print;Var x;(id y;)(by y;)run;,proc plot data=aa;plot y*x=*;run;,例2,data sales;input ry$fwcs hjcs xssl;cards;A 3 12 28000 B 6 14 33000 C 2 6 8000A 0 22 0 A 2 19 12000 C 4 8 13000 C 8 7 27000 B 3 16 8000 B 2 14 2000;proc print;Title 销售数据;Footnote 2006.9;run;proc means;var xssl;Title 销售人员的平均销售数量;run;proc chart;vbar xssl/group=ry;Title 销售人员的销售数量;run;,