old1数据: 930101 王亚平 23 950207 李小丽 21 950202 吴元元 22 940203 马小平 19 940104 赵南飞 21 930105 洪燕峰 20 950106 周缅 〖实验指导〗 ★有关知识★
21
old2数据:
940104 510 940203 480 930105 998 930101 890 950106 903 950202 840
要将数据集合并(横向连接)为一个拥有各数据集中变量的新数据集,可用DATA过程的MERGE语句来实现。MERGE语句的基本语法格式为:
MERGE 数据集表;
该语句能将数据集表指定那些数据集(最多可达40个数据集)中同样观测序号的观测值合并成一个观测值,新数据集中的观测数为各原数据集中观测数最大值。若原有数据集中有同名变量,则在新数据集中仅出现一次。
该语句与BY语句配合,可以将具有共同变量且已按此变量排序过的那些数据集进行匹配合并。
实验练习五 SAS数据加工管理(2)
?实验目的?
掌握SAS数据集抽取、更新、转臵、观测分组等常用的数据加工方法以及结构化查询的方法。
?实验内容?
? 实验项目1。
试将数据集SASHELP.workers第10到66条观测中满足条件\的观测提取出来,生成新的数据集tmp。
〖实验指导〗 ★有关知识★
用数据集选项(数据集名后圆括号内的选项)firstobs=n obs=m可以从数据集中挑选出第n条到第m条记录供数据步处理。
用if语句、where语句可对记录进行条件筛选。
? 实验项目2。
在上题生成的数据集tmp中删除变量DATE中年份为八十年代的观测,以及删除变量ELECTRIC。
〖实验指导〗
★有关知识★
可用数据集选项DROP=变量名表、KEEP=变量名表来删除或保留原有的一些变量,这样的任务也可有drop和keep语句来实现。
要删除记录可用delete语句。
? 实验项目3。
请用数据集fix中的数据去更新数据集xsfs(见实验四)。其中fix中数据为: 950207 李小丽 21 500 950106 周缅 〖实验指导〗 ★有关知识★
要用一个数据集的观测值对另一个数据集进行批量修改,可用数据步过程的UPDATE语句来完成。其语法格式为:
UPDATE 主数据集 (IN=变量名) 修正数据集 (IN=变量名) (END=变量名); 注意:要正确进行批量修正,UPDATE通常总是与BY语句配合使用,因而预先应将两数据集排序。
? 实验项目4。
请将数据集xsfs转臵为数据集tmp。 〖实验指导〗 ★有关知识★
利用TRANSPOSE过程可将SAS数据集转臵,使新数据集中的变量对应原数据集的观察,而新数据集的观察对应原数据集的变量。
该过程通常的使用格式为:
PROC TRANSPOSE 选项; [VAR 变量表;] [ID 变量;] [IDLABEL 变量;] [COPY 变量表;] [BY 变量表;] [RUN;]
? 实验项目5。
在数据集student(变量:name,id,sex)、chengji(变量:id,kno,score)、kecheng(变量:kno,kname)中用SQL窗查询满足条件成绩大于85分的学生姓名(name)、课程名(kname)、成绩(score)记录数据,并将查询结果生成SAS数据集report。
〖实验指导〗 ★有关知识★
结构化查询语言SQL过程是一种在关系型数据库中广泛使用的标准查询语言,SAS系
21 640
统使用PROC SQL过程实现对SQL的支持。SQL过程的基本格式:
PROC SQL [选项表];
ALTER TABLE alter语句说明项; CREATE create语句说明项; DISCRIBE discribe语句说明项; DROP drop语句说明项; INSERT insert语句说明项; RESET [选项表];
SELECT select语句说明项; UPDATE update语句说明项; VALIDATE validate语句说明项;
CONNECT TO DBMS名 [AS 别名] [选项表]; DISCONNECT FROM DBMS名|别名; EXECUTE (SQL语句) BY DBMS名|别名; [RUN;]
在SAS中,可以用查询器来完成对数据集的SQL查询操作,只要单击菜单项?Tools=> Query?即可打开SQL查询表窗口,进行数据查询。
? 实验项目6。
用SQL窗查找出GPA数据集中gpa大于5的所有记录并且计算出它们的gpa的平均值。 〖实验指导〗 ★有关知识★ 同项目5。
实验六 聚类分析
?实验目的?
1.通过上机操作使学生掌握系统聚类分析方法在SAS软件中的实现,熟悉系统聚类的用途和操作方法,了解各种距离,能按要求将样本进行分类;
2.要求学生重点掌握该方法的用途,能正确解释软件处理的结果,尤其是冰柱图和树形图结果的解释;
? 实验项目1
用CLUSTER过程和TREE过程进行谱系聚类 ★有关知识★
聚类分析又称群分析、点群分析,是定量研究分类问题的一种多元统计方法。聚类分析的基本思想是认为所研究的样品或指标之间存在着程度不同的相似性,于是根据一批样品的多个观测指标,找出能够度量样品或变量之间相似程度的统计量,并以此为依据,采用某种聚类法,将所有的样品或变量分别聚合到不同的类中,使同一类中的个体有较大的相似性,
不同类中的个体差异较大。所以,聚类分析依赖于对观测间的接近程度(距离)或相似程度的理解,定义不同的距离量度和相似性量度就可以产生不同的聚类结果。
SAS/STAT模块中提供了谱系聚类(CLUSTER)、快速聚类(FASTCLUS)、变量聚类(VARCLUS)等聚类过程。我们重点要求掌握谱系聚类法。
谱系聚类是一种逐次合并类的方法,最后得到一个聚类的二叉树聚类图。其基本计算过程是,对于n个观测,先计算其两两的距离得到一个距离矩阵,然后把离得最近的两个观测合并为一类,于是我们现在只剩了n-1 个类(每个单独的未合并的观测作为一个类)。计算这 n-1个类两两之间的距离,找到离得最近的两个类将其合并,就只剩下了 n-2个类……直到剩下两个类,把它们合并为一个类为止。当然,真的合并成一个类就失去了聚类的意义,所以上面的聚类过程应该在某个类水平数(即未合并的类数)停下来,最终的类数就是这些未合并的类的个数。决定聚类个数是一个很复杂的问题。
1.谱系聚类类数的确定
谱系聚类最终得到一个聚类树形图,可以把所有观测聚为一类。到底应该把观测分为几类合适是一个比较难抉择的问题,因为分类问题本身就是没有一定标准的,关于这一点《实用多元统计分析》(王学仁、王松桂,上海科技出版社)第十章给出了一个很好的例子,即扑克牌的分类。我们可以把扑克牌按花色分类,按大小点分类,按桥牌的高花色低花色分类,等等。决定类数的一些方法来自于统计的方差分析的思想,我们在这里作一些介绍。 (1)
统计量
其中 和。
为分类数为 越大,说明分为
个类时的总类内离差平方和,
为所有变量的总离差平方
个
个类时每个类内的离差平方和都比较小,也就是分为
越大,所以我们只能取
使得
类是合适的。但是,显然分类越多,每个类越小, 足够大,但
(2)半偏相关
在把类 其中
和类
本身比较小,而且
不再大幅度增加。
合并为下一水平的类 时,定义半偏相关半偏
为合并类引起的类内离差平方和的增量,半偏相关越大,说明这两个类越不应该
类合并为
类时如果半偏相关很大就应该取
类。
合并,所以如果由 (3)伪F统计量
伪F统计量评价分为
个类的效果。如果分为
个类合理,则类内离差平方和(分母)
应该较小,类间平方和(分子)相对较大。所以应该取伪F统计量较大而类数较小的聚类水平。 (4)伪
统计量
用此统计量评价合并类 应该取合并前的水平。
2.CLUSTER过程用法
由于在SAS系统中聚类分析过程没有现成的窗口操作,所以实现聚类分析必须编写SAS程序。SAS/STAT模块中的Cluster过程可实现系统聚类分析,可调用Tree过程生成聚类谱系图。
CLUSTER过程的一般格式为:
PROC CLUSTER DATA=输入数据集 METHOD=聚类方法 选项; VAR 聚类用变量; COPY 复制变量; RUN;
其中的VAR语句指定用来聚类的变量。COPY语句把指定的变量复制到OUTTREE=的数据集中。 PROC CLUSTER语句的主要选项有:
(1)METHOD=选项,这是必须指定的,此选项决定我们要用的聚类方法,主要由类间距离定义决定。方法有AVERAGE、CENTROID、COMPLETE、SINGLE、DENSITY、WARD、EML、FLEXIBLE、MCQUITTY 、MEDIAN、TWOSTAGE等,其中DENSITY、TWOSTAGE等方法还要额外指定密度估计方法(K=、R= 或HYBRID)。
(2)DATA=输入数据集,可以是原始观测数据集,也可以是距离矩阵数据集。 (3)OUTTREE=输出数据集,把绘制谱系聚类树的信息输出到一个数据集,可以用TREE过程调用此数据集绘图树形图并实际分类。
(4)STANDARD选项,把变量标准化为均值为0,标准差为1。 (5)PSEUDO选项和CCC选项。PSEUDO选项要求计算伪F和伪 CCC选项要求计算
、半偏
统计量,
和类
的效果,该值大说明不应合并这两个类,所以
和CCC统计量。其中CCC统计量也是一种考察聚
类效果的统计量,CCC较大的聚类水平是较好的。