大家好,欢迎来到IT知识分享网。
SAS 软件介绍
一、概述
SAS: Statistical Analysis System (统计分析系统)
SAS软件有 SAS 公司出品,被誉为国际标准软件
SAS/STAT: 功能最强的多元统计分析程序集
- 八个大类:
- 回归分析
- 方差分析
- 属性数据分析
- 多变量分析
- 判别分析
- 聚类分析
- 得分分析
- 残存分析
- 26 个过程
二、软件介绍
打开 SAS 软件可以看到三个窗口:
- Editor 窗口:
- 编辑窗口,用来编写 SAS 程序
- 支出多窗口编辑、智能编辑
- 支持如复制、剪切、粘贴等常规操作
- log 窗口:
- 日志窗口,显示程序的运行情况
- 红色显示错误信息,绿色显示警告信息,黑色为无误
- output 窗口:输出 窗口,显示输出结果
三、基本语法介绍
- SAS 程序中除了赋值,表达式、注释和空语句外,其他语句都要以 SAS 命令开头
- 一行 可以输入多个语句,一个语句也可以多行输入,但每个语句必须以英文半角下分号 ” ;“ 结束
- 注释语句 以 ” / “开头 ,以 ” / “结尾
- 变量、数据集命名规则:以字母 或 下划线 开头,由字母、数字 和 下划线构成,英文字母不区大小写
- 字符型变量后要求 实用 ” $ ” 说明符,默认为数值型
- 行保持标志符 @ 和 @@
- @ 表示 cards 语句中的数据一行为一条记录
- 用多条 input 语句读入: input x@ 只能一次输入一个值 即 1 回车,2 回车, ……
- @@ 表示语句中的数据一行为多条记录
- 用 一条 input 语句读入:input x@@ —-> 1 2 3 (无需敲入回车)
四 、程序结构
一个完整的 SAS 程序 通常由 数据步 和 过程步 构成。
- 数据步(data 步 ) 语法结构为
- data 数据集名 ; (开头)
- input 变量名1[ ] 变 量 名 2 [ ] 变量名2[ ]变量名2[] 变量名3[ ] … … 变 量 名 n [ ] …… 变量名n [ ]……变量名n[] ;
- 其他数据步语句 ;
- cards ;
- 数据行
- ; (单独占据一行)
- run ; (结尾 )
- 过程步 语法结构为:
- Proc 过程名[data 输入数据集] [选项] ; (开头)
- 过程语句1 [ /选项] ;
- 过程语句 2 [/ 选项] ;
- ……
- run; (结尾)
-
data ex; a = 2; b = a + 3; c = a 3; /* a的3次方 */ proc print; run; /* 运行结果: obs a b c 1 2 5 8 其中 obs 下的 1 表示 a、b、c 均只有一个观测值 */
- 运行
- 快捷键 F8
- 工具栏 点击图标 (有一个人在跑)
五 、SAS 做假设检验
假设检验:通过 样本均值 推测 总体均值
例如:
- 血压波动 对10位老年男子和8位青年男子的血压值进行测定, 测得老年男子的血压值分别为133,120,122,114,130,155, 116,140,160,180,青年男子的血压值分别为152,136,128, 130,114,123,134,128,通常认为血压值服从正态分布,试 问老年男子和青年男子的血压值是否存在显著差异
- 成绩比较 对同一个课堂的两个班级数学建模学习成绩进行比 较,从每班随机抽取10名同学,(1)班成绩分别为83,80,82, 74,90,75,86,80,76,80,(2)班成绩分别为85,76,88, 91,84,81,79,78,83,70,通常认为成绩服从正态分布,试 问两个班级的数学建模成绩是否存在显著差异
流程:
- 功能:总体均值相等的检验
- 前提:总体服从正态分布
- 步骤:
- 总体方差是否相等
- 总体均值是否相等
- 依据:小概率原理 ( 通常 α = 0.05)
程序
- 例一:
-
data ex; /* ex为数据集名 */ input var$ x@@; /*var为字符型变量,x为数值型变量 */ cards; /*引导数据读入 */ a 133 a 120 a 122 a 114 a 130 a 155 a 116 a 140 a 160 a 180 b 152 b 136 b 128 b 130 b 114 b 123 b 134 b 128 ; /*单独占一行,结束数据读入 */ proc ttest; /*ttest命令表示调用假设检验模块 */ class var; /*class声明分类变量 */ var x; /*var声明分析变量 */ run; /*结束程序 */
- 结果
-
- 例二:
-
data ex; /* ex为数据集名 */ input var$ x@@; /*var为字符型变量,x为数值型变量 */ cards; /*引导数据读入 */ 1 83 1 80 1 82 1 74 1 90 1 75 1 86 1 80 1 76 1 80 2 85 2 76 2 88 2 91 2 84 2 81 2 79 2 78 2 79 2 78 ; /*单独占一行,结束数据读入 */ proc ttest; /*ttest命令表示调用假设检验模块 */ class var; /*class声明分类变量 */ var x; /*var声明分析变量 */ run; /*结束程序 */
- 结果
-
六 、SAS 做方差分析
例子:
- 药剂处理 用四种不同的药剂处理水稻种子,发芽后观测到苗 高如下,若每种处理下所得到的苗高服从正态分布,试问四种处 理方式所得到的数据有没有显著差异? 1: 19 23 21 13 2: 21 24 27 20 3: 20 18 19 15 4: 2 2 25 27 22
- 胚乳试验 用小麦种子进行切胚乳试验,设计分3种处理,同期 播种在条件较为一致的花盆内,出苗后每盆选留2株,成熟后测量 每株粒重如下,若每种试验所得数据服从正态分布,试问三种试验 所得结果有没有显著差异? 未切胚乳(8): 21 29 24 22 25 30 27 26 切一半胚乳(10):20 25 25 23 29 31 24 26 20 21 切全部胚乳(6): 24 22 28 25 21 26
流程:
- 数据格式 :
- 功能:总体均值相等的检验
- 前提:来自正态总体、方差相同
- 步骤:
- 提出原假设:
- 构造 F 统计量
- 计算统计量的值 与临界值比较并下结论
- 提出原假设:
- 依据:小概率原理 ( 通常 α = 0.05)
程序:
- 例一:
-
data ex; /* */ do a = 1 to 4; /*4个水平,且这里的字母a 不能随意地更换 */ do i = 1 to 4; /*每个水平4个样本观测值 */ input x @@ /* */ output;end;end; /* 结束循环*/ cards; 19 23 21 13 21 24 27 20 20 18 19 15 22 25 27 22 ; proc anova; /*anova命令表示调用方差分析模块 */ class a;model x = a;means a; /*输出各水平均值 */ run;
- 结果
-
- 例二:
-
data ec; do a = 1 to 3; input n @@; do i = 1 to n; input x @@; output;end;end; cards; 8 21 29 24 22 25 30 27 26 10 20 25 25 23 29 31 24 26 20 21 6 24 22 28 25 21 26 ; proc anova; class a; model x = a; means a; run;
- 结果
-
七、SAS做一元线性回归
例子:
- 物质吸附 某种物质在不同温度下可以吸附另一种物质, 如果温度x(单位:℃)与吸附重量y(单位:mg)的观测值如 下所示: 温度(x) 1.5 1.8 2.4 3.0 3.5 3.9 4.4 4.8 5.0 重量(y) 4.8 5.7 7.0 8.3 10.9 12.4 13.1 13.6 15.3 试问吸附重量与温度间存在怎样的内在关系?
流程:
- 一元线性回归模型: y = ax + b 其中 a 为 回归系数, b 为 常数项
- F检验:
- 目的:检验 y 与解释变量x 之间的线性关系是否显著
- 步骤:
- 1 提出原假设 H0 : a = b = 0,备择假设 H1 : a ,b 不全为0
- 构造 F 统计量
- 计算统计量的值 与 临界值比较下结论
- t检验:
- 目的:分别检验y 与每个解释变量之间的线性关系是否显著
- 步骤:
- 1 提出原假设 H0 : a = 0 H0 : b = 0,备择假设 H1 : a ≠ 0 H1 :b ≠ 0
- 构造 t 统计量
- 计算统计量的值与临界值比较并下结论
- R ^ 2 检验: 拟合优度的检验
- 意义: 判定系数(R^2)越大,解释变量对因变量的解释程度越高,解释变量引起的变动占总变动的百分比越高,观察点在回归直线附近越密集。
程序(上述案例):
-
data ex; input x y @@; cards; 1.5 4.8 1.8 5.7 2.4 7 3 8.3 3.5 10.9 3.9 12.4 4.4 13.1 4.8 13.6 5 15.3 ; proc gplot; /*画图 */ plot y * x; /*y 为纵轴,x为横轴 */ symbol i = rl v = dot; /*rl表苏画回归直线,dot表示观测用点表示 */ proc reg; /* reg 表示调用回归分析模块*/ model y = x; /*y为因变量,x为自变量 */ run;
- 结果
八、SAS画图
- 散点图:
- 程序:
data ex; do x = 0 to 100 by 10; /*以10为步长取样本点 */ y = sin(x); z = exp(x/50); output; end; proc plot; /* 文本格式画图,显示在output 窗口*/ plot y*x='*' z*x='o'/overlay; /*样本点分别以* 和 o 表示,画在一幅图里 */ run;
- 结果:
- 程序:
- 曲线:
- 程序:
data ex; do x = 0 to 100 by 10; /*以10为步长取样本点 */ y = sin(x); z = exp(x/50); output; end; proc plot; /* 文本格式画图,显示在output 窗口*/ plot y*x='*' z*x='o'/overlay; /*样本点分别以* 和 o 表示,画在一幅图里 */ symbol i = join; /*join 表示将点连成线 */ run;
- 结果:
- 程序:
- 曲面:
- 程序:
data ex; do x = -5 to 5 by 0.2; do y = -5 to 5 by 0.2; z = x * x + y * y; output; end; ebd; proc g3d; /*三维画图,显示在graph 窗口 */ plot y * x = z; /*x,y 代表水平轴,z代表竖直轴*/ run; /* */
- 结果:
- 程序:
- 频率直方图:
- 程序:
data ex; inout x @@; cards; 70 72 94 24 57 68 40 99 34 26 48 105 45 55 73 58 101 94 62 84 61 40 77 66 98 50 58 76 81 54 75 118 69 25 97 76 100 43 60 34 ; proc gchart; /*画频率直方图 */ vbar x/type = pct; /*vbar 表示纵向直方图,type = pct 表示图高为频率 */ run; /* */
- 结果:
- 程序:
- 三维直方图:
- 程序:
data ex; inout lei$ x @@; cars; a 70 a 72 a 94 a 24 a 57 a 68 a 40 a 99 a 34 a 26 a 48 a 105 a 45 a 55 b 73 b 58 b 101 b 94 b 62 b 84 b 61 b 40 b 77 b 66 b 98 b 50 b 58 b 76 b 81 b 54 b 75 b 118 b 69 b 25 b 97 b 76 b 100 b 43 b 60 b 34 ; proc gchart; block lei;/*画三维直方图 */ run; /* */
- 结果:
- 程序:
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/156517.html