1.35k likes | 1.71k Views
SAS — 统计分析系统 S tatistical A nalysis S ystem. 公共卫生学院信息数据处理教学实验室. SAS 软件简介. 1966 年美国 North Carolina 大学的两位生物统计学研究生开始研制 SAS 系统,直至 1976 年成立了 SAS 软件研究所,正式推出了 SAS 软件, 1985 年推出微机版 SAS 。 SAS 是用于决策支持的大型集成信息系统,软件系统最早的功能限于统计分析,现在统计分析功能也仍是它的重要组成部分和核心功能。 SAS 现在的最新版本为 9.1 版,大小约为 1GB 。.
E N D
SAS — 统计分析系统 Statistical Analysis System 公共卫生学院信息数据处理教学实验室
SAS软件简介 1966年美国North Carolina大学的两位生物统计学研究生开始研制SAS系统,直至1976年成立了SAS软件研究所,正式推出了SAS软件,1985年推出微机版SAS。 SAS是用于决策支持的大型集成信息系统,软件系统最早的功能限于统计分析,现在统计分析功能也仍是它的重要组成部分和核心功能。SAS现在的最新版本为9.1版,大小约为1GB。
在数据处理和统计分析领域,SAS系统被誉为国际上的标准软件系统,并在96~97年度被评选为建立数据库的首选产品,堪称统计软件界的巨无霸。在数据处理和统计分析领域,SAS系统被誉为国际上的标准软件系统,并在96~97年度被评选为建立数据库的首选产品,堪称统计软件界的巨无霸。 经过多年的发展,SAS已经被全世界120多个国家和地区的近三万家机构所采用,直接用户超过三百万人,遍及金融、医药卫生、生产、运输、通讯、政府和教育科研等领域。
由于SAS系统是从大型机上的系统发展而来,在设计上也是完全针对专业用户进行设计,因此操作以SAS语言编程为主,另外也有非编程方式的菜单系统,但人机对话的界面不太友好。由于SAS系统是从大型机上的系统发展而来,在设计上也是完全针对专业用户进行设计,因此操作以SAS语言编程为主,另外也有非编程方式的菜单系统,但人机对话的界面不太友好。 学习SAS软件时,需要用户有基本的统计学知识,对所选用的统计方法有较清楚的了解,没有统计学基础知识要掌握SAS软件较为困难。
第一节 SAS软件的使用基础 一、SAS的启动和退出 • 启动SAS • 双击桌面SAS图标 • 开始菜单 程序 The Sas System The Sas System for Windows V*.* • 直接双击SAS应用程序 • 退出SAS • 标题栏关闭按钮 • 菜单栏 File Exit • 在命令框键入“Bye”或“Endsas”
二、SAS的工作窗口 标题栏、菜单栏、命令框、工具栏 • 编辑器 程序编辑窗口 • 日志 运行过程日志窗口 • 输出 结果输出窗口 • 资源管理器/结果 SAS常用功能键
三、SAS程序构成 例:一组体检资料,包括姓名、性别、年龄、身高、体重,要求分性别计算身高、体重的均数、标准差、最大值、最小值。 姓名 性别 年龄 身高 体重 ZHANGLIN F 47 156.3 47.1 ZHAOHUA M 38 172.4 61.5 WANGQANG M 41 169.2 64.5 LIULI F 52 158.2 53.6 SHIDONG F 39 160.1 48.0 KONGYING M 29 174.1 64.6 LILING F 37 152.3 42.2 GUANFEN M 32 166.2 60.2 MIAOQING M 26 180.3 74.3 NIUHUA M 31 178.2 80.2 TANGJIE F 35 169.2 60.8 GAOJUN M 24 176.0 73.3 SUNHONG F 27 158.3 49.9
DATA AA1; INPUT NAME$ SEX AGE HEIGHT WEIGHT; CARDS; ZHANGLIN 2 47 156.3 47.1 ZHAOHUA 1 38 172.4 61.5 WANGQANG 1 41 169.2 64.5 LIULI 2 52 158.2 53.6 SHIDONG 2 39 160.1 48.0 KONGYING 1 29 174.1 64.6 LILING 2 37 152.3 42.2 GUANFEN 1 32 166.2 60.2 MIAOQING 1 26 180.3 74.3 NIUHUA 1 31 178.2 80.2 TANGJIE 2 35 169.2 60.8 GAOJUN 2 24 176.0 73.3 SUNHONG 2 27 158.3 49.9 ; PROC MEANS; CLASS SEX; VAR HEIGHT WEIGHT; RUN; 数据步 过程步
DATA STEP(数据步) 以DATA语句开始 将数据读入SAS系统,建立SAS数据集 • PROCEDURE STEP(过程步) 以PROC语句开始 调用各种已编好的过程处理和分析数据 • RUN(结束)整个程序的最后必须要有RUN语句结束,表示要执行以上全部任务。
四、SAS软件的常用操作 1. SAS程序编写规则 SAS程序编写只能在编辑窗口 • 语句书写格式自由,每个语句以“;”结束; • 可以在一行中写几个语句,或把一个语句写在几行中; • SAS语言不区分字母大小写,变量 A1=a1、PROC = proc、DATA AA=data aa 程序任何部位可以加注释语句(不执行语句): /* this is a small sample */
2. 运行SAS程序 • 工具栏提交按钮 • 功能键“F8”( 提交) • 菜单栏 运行 提交 • 命令框键入“Submit”命令 自动激活“输出”窗口,出现程序运行结果
3. 调试SAS程序 没出现结果窗口,或结果不理想时。 • 激活日志窗口(F6) 查看运行过程及出错信息 • 黑色文字:源程序 • 蓝色文字:程序运行情况说明信息 • 红色文字:出错信息 • 绿色文字:警告信息 • 激活编辑窗口(F5) • 修改错误后重新发送
4. 保存SAS各窗口的内容 激活相应窗口 • 常用工具栏 存盘按钮 • 菜单栏 文件 保存(另存为) • 命令框输入File命令 可以分别保存程序、运行结果、日志
5. 打开已保存的程序、结果等 只能在编辑窗口 • 常用工具栏 打开按钮 • 菜单栏 文件 打开 • 命令框输入Include命令 可打开以前保存的程序、运行结果、日志等文件及其他文本格式的文件。
五、SAS编程基础 1. SAS的操作符 • 算术操作符: 加 +、减 -、乘 *、除/、乘方 ** • 比较操作符: 等于 EQ或 =、大于 GT或 >、 小于 LT或 <、不等于 NE或 ^=、 大于等于 GE或 >=、小于等于 LE或 <= • 逻辑操作符: AND 或&、 OR 或│、 NOT 或^
2. 常用SAS函数: LOG(x) 以e为底的自然对数 LOG10(x) 以10为底的常用对数 EXP(x) 以e为底的反对数 SQRT(x) 平方根 ABS(x) 绝对值 INT(x) 取整数(不四舍五入) ROUND(x) 取整数(四舍五入) MOD(x,y) 取x/y的余数 SIN(x) 正弦 COS(x) 余弦 三角函数(x是弧度) TAN(x) 正切
3. SAS表达式 用来赋值新的变量、转换变量、计算结果、建立条件表达式等,如: 赋值变量 Y=100 转换变量 X2=LOG(X1) 计算结果 Y=35.12+X1*2.58/100 条件表达式 G=(AGE<65)、Y=(X1=X2)、 AGE<15 OR AGE>64 SEX=1 AND AGE<60
4.使用 OPTIONS语句定义输出页面格式 options linesize (LS)=80 每行80个字符 pagesize (PS) =54 每页54行 nodate 不要打印日期 nocenter 不要居中 Options ls=132 ps=1000 nodate nocenter; Option语句可以放程序的任何位置,常放在程序开始
第二节 SAS数据集 SAS数据集(SAS Dataset) 数据值被安排在一个矩阵式的表格结构中 每一行数据表示一个观测(Observation) 每一列数据表示一个变量(Variable) • 变量命名:1~8个字符,第1个字符必须是 字母,后面可以是字母、数字和下划线 • 变量类型:数值型、字符型 字符型变量名后加“$”表示, 变量缺失值:用“.”表示
一、SAS数据集的种类 • 临时SAS数据集 不保存,一旦退出SAS就消失。 数据集名称为1个单词,如DATA AA; • 永久SAS数据集 保存在用户指定的文件夹里。 数据集名称为2个单词,中间用“.”分开,也称二级名,如DATA NEW.AA;
SAS永久数据集 LIBNAMENEW ‘D:\MY DATA’; 建库标记 DATA NEW.AA; 命名永久数据集 在数据集的二级名称 NEW.AA中; • 第1个词NEW是库标记,代表用户指定的保存SAS数据文件的位置,前面要用LIBNAME语句指定它代表的文件夹或位置。 • 第2个词AA是保存的SAS数据集的文件名。 执行这个过程的结果将会在D:\MY DATA文件夹中产生1个SAS永久数据文件 AA.sas7bdat sas7bdat是自动产生的SAS数据文件默认扩展名
二、创建SAS数据集 1.在编辑窗口创建数据集 DATA AA;命名将要创建的数据集名 INPUT X1-X4; 描述数据集中的变量名 CARDS;以下开始是数据 2 47 156.3 47.1 1 38 172.4 61.5 …… ; 数据结束 INPUT X Y@@; 连续读数据不换行 INPUT NAME$ AGE; 字符型变量名加$
2.在表编辑器窗口创建数据集 菜单栏 工具 表编辑器 打开表编辑器窗口直接输入数据 保存数据:文件 保存(另存为) 在左边逻辑库框中选择1个逻辑库 在下边成员名框中键入数据集名称 • 建立临时数据集时,选择逻辑库 work, • 选择用户创建的库标记,即建立永久数据集 • 工具栏 创建新逻辑库 可创建新的库标记
3.用分析家模块创建数据集 菜单栏 解决方案 分析 分析家 打开分析家窗口直接输入数据 保存数据:文件 保存(另存为) 在左边逻辑库框中选择1个逻辑库 在下边成员名框中键入数据集名称 • 建立临时数据集时,选择逻辑库 work, • 选择用户创建的库标记,即建立永久数据集 • 工具栏 创建新逻辑库 可创建新的库标记
4.由其它类型数据文件转换成SAS数据集 菜单栏 文件 导入数据SAS可以直接与下列格式文件互相转换 • Microsoft Excel 97/2000/2002 File (*.xls) • Microsoft Access 97/2000/2002 Database • dBASE/FoxBASE File (*.dbf) • Lotus 1/3/4 File (*.wk1/3/4) • Delimited File (*.*) 空格分隔 • Tab Delimited File (*.txt) 制表符分隔 • Comma Separated Velues(*.csv)逗号分隔
另外: 在写字板、记事簿、Word 或 Excel 中的数据也可以直接采用复制、粘贴的方式,通过编辑窗口创建SAS数据集。 通过 菜单栏 文件 导出数据 也可以把SAS数据集转换成相应的其它类型数据文件
5 .从原有的SAS数据集中创建数据子集 DATA A1(子集);SET AA(原数据集); (1)从SAS永久数据集中读取数据 LIBNAME NEW ‘D:\MY DATA’;建库标记 DATA A1; 命名将要创建的数据子集名 SET NEW.PP7;从D:\MY DATA\ 文件夹中原有的SAS永久数据文件PP7.SD2中读数据
(2)选择部分变量(列) • 保留部分变量:KEEP DATA A1;SET AA;KEEP X1 X2; • 去掉部分变量:DROP DATA A1;SET AA;DROP X3 X4; • 赋值新的变量 Y=X3+X4; LY=LOG(Y);
(3) 选择部分观测(行) 建子集语句:IF DATA A1;SET AA;IF SEX=1; DATA A1;SET AA;IF AGE>40; IF X1^=3 (不等于) IF SEX=1 AND AGE>60 IF AGE>20 AND AGE<=40 IF AGE<21 OR AGE>40
(4) 数据集连接 • 纵向连接A1 DATA AA;SET A1 A2; A2 要求 A1和 A2中的变量相同 A1中有10行,A2中有15行,则AA有25行。 • 横向合并A1 A2 DATA AA;MERGE A1 A2; BY Num; 匹配合并时,要求 A1和 A2中必须有1个相同的变量,且排列顺序也相同,作为标识变量用 BY 语句指定。
(5)数据集转置(行列互换) PROC TRANSPOSE;BY G;VAR X1-X3; OBS X1 X2 X3 • 1 2 3 • 4 5 6 • 7 8 9 • 10 11 12 OBS _Name_ Col1 Col2 Col3 Col4 • X11 47 10 • X2 2 58 11 • X3369 12 选择项有: OUT=新数据集名(缺省按DATA n自动命名) PREFIX=新变量名前缀(缺省按Col n自动命名) NAME=为原变量名列命名(缺省自动命名为_Name_)
第三节 统计描述 一、定量资料的统计描述 • 简单描述:MEANS过程 输出样本量、均值、标准偏差、最小值、最大值 ( N、Mean、Std Dev、Minimum、Maximum) • 详细描述:UNIVARIATE过程 输出更多指标:样本量、均数、标准差、最小值、最大值、方差、标准误 、中位数、四分位数间距、常用百分位数、众数、平方和、离均差平方和等,可以作正态性检验 另外还显示原数据中的部分极端值
简单描述MEANS过程 PROC MEANS; CLASS SEX; VAR HEIGHT WEIGHT; RUN; CLASS指定分组变量(不需分组时可省略) VAR 指定需要分析的变量(不写即分析全部变量) MEANS过程后不加任何选项时,自动输出5项结果: N、均值、标准偏差、最小值、最大值 可加的选项有:标准误(StdErr)、方差(Var)、总和(Sum)、平方和(USS)、离均差平方和(CSS)、全距(Range)、变异系数(CV)、偏度系数(Skewness)、峰度系数(Kurtosis)、可信区间(CLM)、中位数(Median)、常用百分位数(P1, P5,P10,P25,…,P95)、四分位数(Q1,Q3)、t 检验(t、Prt)等 MAXDEC=n指定计算结果保留小数位数(默认7位)
频数表资料: DATA AA2; INPUT X F@@; CARDS; 2.5 5 2.7 10 2.9 12 3.1 23 3.3 24 3.5 22 3.7 17 3.9 7 4.1 3 ; PROC MEANS N MEAN STD STDERR CLM ; VAR X;FREQ F;RUN; 数据步中:X 是组中值,F是频数 过程步中:VAR X;指定分析变量是 X FREQ F;指定 F 是频数
DATA AA3; INPUT X F@@; Y=LOG10(X); CARDS; 4 1 8 5 16 6 32 2 64 7 128 10 256 4 512 5 ; PROC MEANS; VAR Y; FREQ F; OUTPUT OUT=C MEAN=M; ① DATA B2; SETC ; G=10**M; ② PROC PRINT; VAR G;RUN; ③ ①输出临时数据集C,变量M=均数, ②新建数据集B2,取自数据集C, 对变量 M 求反对数 G=10M ③输出过程步,输出几何均数 G 计算几何均数
详细描述UNIVARIATE过程 PROC SORT; BY SEX; PROC UNIVARIATE; BY SEX; VAR HEIGHT WEIGHT; RUN; BY指定分组变量(不需分组时可省略) SORT用BY之前必须先按分组变量排序 加选项 NORMAL可以作正态性检验 加选项 PLOT作茎叶图、箱式图、P-P图 加 QQPLOT语句 作Q-Q图 加 HISTOGRAM语句作直方图 在已知资料不服从正态分布时或对资料的分布类型不确定时可以用UNIVARIATE过程作探索性分析。
详细描述结果(1) 矩 N 24 权重总和 24 均值 1.2846 观测总和ΣX 30.83 标准偏差 0.4687 方差 0.2196 偏度 0.1060 峰度 -0.9930 未校平方和ΣX2 44.6555 校正平方和 5.0518 变异系数 36.4835 标准误差均值 0.0957 基本统计测度 位置 变异性 均值 1.284583 标准偏差 0.46866 中位数 1.270000 方差 0.21964 众数 1.200000 极差 1.57000 四分位极差 0.79000
详细描述结果(2) 位置检验: Mu0=0 检验 --统计量--- -------P 值------- t 检验 学生 t t 13.4279 Pr > |t| <.0001 符号检验 符号 M 12 Pr >= |M| <.0001 符号秩和检验 符号秩 S 150 Pr >= |S| <.0001 分位数(定义 5) 分位数 估计值 100% 最大值 2.110 99% 2.110 95% 2.070 90% 1.870 75% Q3 1.615 50% 中位数 1.270 分位数 估计值 25% Q1 0.825 10% 0.640 5% 0.640 1% 0.540 0% 最小值 0.540
极值观测 ----最小值---- ----最大值---- 值 观测 值 观测 0.54 12 1.80 8 0.64 14 1.87 9 0.64 13 1.87 24 0.75 15 2.07 10 0.76 16 2.11 11
Normal选项结果 正态性检验 检验 ----统计量---- ------P值------ Shapiro-Wilk W 0.962132 Pr < W <0.0001 Kolmogorov-Smirnov D 0.115212 Pr > D <0.0100 Cramer-von Mises W-Sq 0.284376 Pr > W-Sq <0.0050 Anderson-Darling A-Sq 1.704837 Pr > A-Sq <0.0050 小样本(n≤50)时用W法,样本量50<n<1000时用D法
PLOT选项结果 茎叶图 盒式图 茎 叶 # 盒式图 90 0 1 0 88 000 3 0 86 00 2 | 84 00 2 | 82 000 3 | 80 0000 4 | 78 0000000000000000 16 | 76 0000000000000000 16 | 74 00000000 8 +-----+ 72 000000000000000 15 | | 70 00000000000000000000000000000 29 *--+--* 68 00000000000000000000000000 26 | | 66 000000000000000000000 21 +-----+ 64 000000000000000 15 | 62 00000000000000 14 | 60 0000000000000000 16 |
正态概率分布图(Normal Probability Plot) 91+ * | ** | ** ++ 85+ * +++ | **+++ | **++ 79+ ***** | ****+ | **+ 73+ *** | **** | **** 67+ **** | **** | ***** 61+** ***** ***+ +----+----+----+ ---+----+----+----+----+----+----+ -2 -1 0 +1 +2
二、定性资料统计描述 FREQ 过程 可以产生频数表和 n 维列联表 PROC FREQ;TABLES A ;RUN; TABLES 指定要分析的定性变量 TABLES A 产生一维频数表 TABLES A*B 产生二维列联表(A是行B是列) TABLES A*B*C 产生三维列联表 (A是分层,B是行,C是列) TABLES A*(B C) 产生A*B、A*C两个二维表 TABLES X1-X3 产生X1、X2、X3三个一维表 TABLES (X1-X4)*Y 产生X1*Y X2*Y X3*Y X4*Y 四个二维表
如描述以下三个定性变量(258人) A文化程度(1=文盲2=初中以下3=高中4=大学) B工作强度(1=轻 2=中 3=重) C月收入 (1=<300 2=300- 3=500- 4=1000-) DATA AA4; INPUT A B C@@; CARDS; 3 2 3 4 1 4 4 1 3…… ; PROC FREQ; TABLES A B C; PROC FREQ; TABLES A*B; PROC FREQ; TABLES A*B*C; PROC FREQ; TABLES A*(B C); RUN;
一维频数表结果 变量名 A 频数 百分比 累计频数 累计百分比 2 78 30.2 78 30.2 3 85 32.9 163 63.2 4 95 36.8 258 100.0
二维频数表结果 B (行变量名) C(列变量名) 频数| 百分比 | 行百分比| 列百分比| 1 | 2 | 3 | 4 | 合计 ---------+--------+---------+---------+--------+ 1 | 0 | 6 | 37 | 26 | 69 | 0.00 | 6.32 | 38.95 | 27.37 | 72.63 | 0.00 | 8.70 | 53.62 | 37.68 | | . | 75.00 | 67.27 | 81.25 | ---------+--------+---------+---------+--------+ 2 | 0 | 2 | 18 | 6 | 26 | 0.00 | 2.11 | 18.95 | 6.32 | 27.37 | 0.00 | 7.69 | 69.23 | 23.08 | | . | 25.00 | 32.73 | 18.75 | ---------+--------+---------+---------+--------+ 合计 0 8 55 32 95 0.00 8.42 57.89 33.68 100.00
三、定量资料作频数表 • 先用MEANS过程找出最大值和最小值 MIN=2.5 MAX=5.71 计算全距=3.21 • 确定组距 I,如 I=全距/10≈0.3 • 然后在数据步中赋值新的变量: Y=INT( X/ I )*I • 用FREQ过程作频数表: DATA AA; SET AA5; Y=INT(X/0.3)*0.3; PROC FREQ; TABLES Y; RUN;
定量资料作直方图 PROC GCHART; VBAR X/LEVELS=11 SPACE=0 ; RUN; GCHART过程作图 VBAR作纵向条图 ; HBAR作横向条图 常用选项有: LEVELS分组的数目 WIDTH指定竖条的宽度,以字符宽度为单位 SPACE指定竖条之间的距离,直方图=0 MIDPOINTS=2.55 TO 5.85 BY 0.3指定组中值
第四节 定量资料假设检验(1)t 检验 一、样本均数与总体均数比较 以往新生儿出生体重平均为3000g,某医院对产妇开展孕期保健指导后,测得15名新生儿出生体重如下,问开展孕期保健指导后对新生儿体重是否有影响? 2800 3400 2900 2750 3000 3100 4600 3900 2350 3500 2600 3700 3800 2950 3200
样本均数与总体均数比较用MEANS过程 DATA AA6; INPUT X@@; Y=X-3000; CARDS; 2800 3400 2900 2750 3000 3100 4600 3900 2350 3500 2600 3700 3800 2950 3200 ; PROC MEANS MEAN STD STDERR T PRT; VAR Y; RUN; 结果 均值 标准偏差 标准误差 t值 Prob>|t| 236.67 586.60 151.46 1.56 0.1405 P>0.05,不拒绝H0,尚不能认为开展孕期保健指导对新生儿体重有影响 。