SAS论文(张燃3080801119)
发布时间:2024-11-21
发布时间:2024-11-21
《统计软件应用与开发》论文
SAS 在 聚 类 分 析 问 题 中 的 应 用 与 研 究
学号:3080801119 班级:数学081 姓名:张 燃
SAS在聚类分析问题中的应用与研究
摘 要
本文通过 SAS 软件来解决 1984 年欧洲22个国家在7个项目上的女子记录的聚类分析问题。
本文首先介绍了一些 SAS 基本知识,然后给出了与聚类分析相关的的理论知识,比如距离,相关性,并给出了具体的数学表达式。根据这些理论知识结合聚类分析的定义以及本文的研究目的,本文运用 SAS 中三种比较常用的聚类分析方法对问题进行研究分析:
一、VARCLUS 变量间聚类分析,本模型主要是对变量内的联系进行聚类分析,并给出了相关的结果:7个分量分成 5组,其中 m100 和 m200分成一组,属于短跑类型;m1500和 marathon 成为第二类,属于中长跑,而另外三个变量各成一类。
二、 FASTCLUS变量间聚类分析,本模型是对变量间进行聚类分析,得出结果如下1 类中有挪威,葡萄牙,爱尔兰,西德,英国;2 类中有西班牙,罗马尼亚,波兰,以色列,奥地利5个国家;3 类由瑞士,瑞典,荷兰,意大利,丹麦,比利时,芬兰,法国,东德。9个国家组成,4 类仅有土耳其一国;5 类由多卢森堡和希腊组成,总的来说实力由强到弱的类的顺序为 3,1,2,5,4。
三、CLUSTER 树法变量间聚类,本模型给出了22个国家在聚类过程中的具体“中间”过程,通过树的形式形象而明确的给出了分类的具体结果。
最后对三中模型的优缺点进行对比分析,本文认为各自特点鲜明,且相互补充,而且聚类结果和实际情况相吻合。
关键字:SAS 聚类分析 距离 VARCLUS FASTCLUS CLUSTER TREE
目 录
摘 要 ································ ······························1 一、研究目的 ································ ···························1 二、采用方法 ································ ···························1 三、理论知识 ································ ···························1 3.1 SAS 简介 ······························ ··························1 3.2 聚类分析定义 ······························ ······················1 3.3 聚类方法分类 ······························ ······················1 3.4 距离的相关定义 ······························ ····················2 3.5 相似系数 ······························ ··························3 3.6 类间距离定义 ······························ ······················3 3.7 聚类分析一般步骤 ······························ ·················3 四、数据的预处理 ································ ·······················4 五、具体模型 ································ ···························4 5.1 变量聚类分析 ······························ ·······················4 5.1.1 用VARCLUS过程实现变量间聚类分析 ·····························4 5.1.2 编写程序 ······························ ························4 5.1.3 输出结果 ······························ ························4 5.1.4 结果分析 ······························ ························7 5.2 FASTCLUS 变量间聚类分析 ······························ ··········7 5.2.1 用 FASTCLUS 进行变量间聚类分析 ································7 5.2.2 编写程序 ······························ ························7 5.2.3 输出结果 ······························ ························8 5.2.4 结果分析 ······························ ························8 5.3 CLUSTER 树法变量间聚类分析 ······························ ·······8 5.3.1 CLUSTER 过程简介 ······························ ···············8 5.3.2 编写程序 ······························ ·······················8 5.3.3 输出结果 ······························ ·······················9 5.3.4 结果分析 ······························ ·······················10 5.4 三种方法的对比分析 ······························ ·············10 六、参考文献 ································ ·························11 七、附录 ································ ····························11 7.1 题目原始数据 ······························ ·················12 7.2 5.2.2 程序的输出结果 ······························ ···········13
一、研究目的
本题的数据为 1984年欧洲22个国家在7个项目上的女子记录, m100,m200,m400,m800,m1500,m3000,marashon,分别表示 100 米,200 米,400,米,800 米,1500米,3000米,马拉松7个项目,前三项单位为秒,后四项为分钟,根据 sas 统计软件对这些国家的成绩进行分类。并且说明分为几类比较合理。最后用聚类分析对对这些数据的若干统计量进行相关分析,最后根据分析给出相关结果。
二、采用方法
SAS 中的聚类分析,先把原始数据导入到 SAS 数据库,然后通过 SAS 的相关命令编写相关的程序,得出数据的分析结果。
三、理论知识
3.1 SAS 简介
SAS 是是美国 SAS 软件研究所研制的一套大型集成应用软件系统,具有完备的数据存取、数据管理、数据分析和数据展现功能。尤其是创业产品—统计分析系统部分,由于其具有强大的数据分析能力,在数据处理和统计分析领域,被誉为国际上的标准软件和最权威的优秀统计软件包,广泛应用于政府行政管理、科研、教育、生产和金融等不同领域,发挥着重要的作用。SAS系统中提供的主要分析功能包括统计分析、经济计量分析、时间序列分析、决策分析、因子分析、聚类分析、判别分析等等。此外 SAS还提供了各类概率分析函数、分位数函数、样本统计函数和随机数生成函数,用户能方便地实现特殊统计要求。 3.2 聚类分析定义
聚类分析(Cluster Analysis)是物以类聚的一种统计分析方法。用于对事物类别的面貌尚不清楚,甚至在事前连总共有几类都不能确定的情况下进行分类的场合。聚类分析可分为对变量聚类(如在儿童的生长发育研究中,把以形态学为主的指标归于一类,以机能为主的指标归于另一类等)和对样品聚类(如解剖学上依据骨骼的形状和大小等,不仅可以区别样品是人还是猿,还可以区别性别、年龄等)。
3.3 聚类方法分类
1、系统聚类法 :先将n个元素(样品或变量)看成n类,然后将性质最接近(或相似程度最大)的2类合并为一个新类,得到 n-1类,再从中找出最接近的2类加以合并变成了n-2类,如此下去,最后所有的元素全聚在一类之中。
2、分解法 :其程序与系统聚类相反。首先所有的元素均在一类,然后用某种最优准则将它分成2类,再用同样准则将这2类各自试图分裂为2类,从中选1个使目标函数较好者,这样由2类变成了3类。如此下去,一直分裂到每类中只有1个元素为止,有时即使是同一种聚类方法,因聚类形式(即距离的定义方法)不同而有不同的停止规则。
3、动态聚类法:开始将n个元素粗糙地分成若干类,然后用某种最优准则进行调整,一次又一次地调整,直至不能调整了为止。
4、有序样品的聚类:n个样品按某种因素(时间或年龄或地层深度等)排成次序,要求必须是次序相邻的样品才能聚在一类。
5、图论法:从几何角度来考虑分类问题,即应用图论的观点把 n 个样品看
成 m 维空间的 n个点,点与点之间用用直线连接,从而构成 m维空间的点的连接图,在应用图论的观点将样本在 m维空间做最小支撑树,最终达到分类的目的。 聚类分析实质上是寻找一种能客观反映元素之间亲疏关系的统计量,然后根据这种统计量把元素分成若干类。常用的聚类统计量有距离系数和相似系数2类。距离系数一般用于对样品分类,而相似系数一般用于对变量聚类。距离的定义很多,如极端距离、明考斯基距离、欧氏距离、切比雪夫距离等。相似系数有相关系数、夹角余弦、列联系数等。
3.4 距离的相关定义
用样品点之间的距离来衡量各样品之间的相似性程度(或靠近程度)。设
d xi,xj
是样品
xi,xj
之间的距离,一般要求它满足下列条件:
1 d xi,xj 0,且d xi,xj 0 xi xj;
3 d xi,xj d xi,xk d xk,xj . 在聚类分析中,有些距离不满足 3),我们在广义的角度上仍称它为距离。其他还有加入法、有重叠的类、模糊聚类等。常用的距离有如下几种:
欧氏距离
2 d xi,xj d xj,xi ;
2
d xi,xj xik xjk
k 1
绝对距离
p
1
2
d xi,xj xik xjk
k 1
p
Minkowski 距离
m
d xi,xj xik xjk
k 1
Chebyshev距离
d xi,xj maxxik xjk
1 k p
p
1
m
方差加权距离
p xik xjk
d xi,xj 2
sk 1k
_
1n1n 2
其中x xik,sk x xk . ik
ni 1n 1i 1
_
2
2
12
马氏距离
d xi,xj xi xj S
T
1
x x i
j
12
其中S是由样品x1,x2,…xj,…,xn算得的协方差矩阵:
__
1n1n x xi,s xi x xi x ni 1n 1i 1 _
T
3.5 相似系数
当对p 个指标变量进行聚类时,用相似系数来衡量变量之间的相似程度(或关联程度)。一般地,若C 表示变量x ,x 之间的相似系数,应满足:
1 C 1且C 1
2 C 1 x cx c 0
3 C C
C 的绝对值越接近于1,说明变量x ,x 的关联越大。 3.6 类间距离定义
为简单起见,以i,j 分别表示样品xi,xj,以 dij 简记 i,j 之间的距离
d xi,xj 。Gp, Gq分别表示两个类,设它们分别含有np,nq个样品。若类Gp中有样品x1,x2,…,xnp,则其均值
1
xp
np
_
x
i 1
np
i
称为类Gp的重心。类Gp与 Gq 之间的距离记为 Dpq,有多种多样定义方式。
最短距离:
Dpq mindij
i Gp,j Gq
最长距离:
Dpq maxdij
i Gp,j Gq
类平均距离:
Dpq 重心距离:
__
Dpq d xp,xq
1npnq
i Gpj Gq
d
ij
离差平方和距离:
T____nn pq2
Dpq xp xq xp xq
np nq
3.7 聚类分析一般步骤
聚类分析法的步骤如下:
Step1 n 个样品开始时作为 n个类,计算两两之间的距离,构成一个对称距离矩 阵:
0 d21
D 0
... dn1
d120...dn2
...d1n ...d2n ......
...0
此时,Dpq=dpq;
Step2 选择 D(0)中的非对角线上的最小元素,设这个最小元素是Dpq。此时,Gp={xp},Gq={xq}。将Gp,Gq 合并成一个新类Gr={Gp,Gq}。在D(0)中消去Gp 和Gq 所对应的行与列,并加入有新类 Gr 与剩下的其它未聚合的类间的距离所组成的一行和一列,得到一个新的距离矩阵 D(1),它是n-1阶方阵;
Step3从D(1)出发重复Step2的作法得 D(2),再由D(2)出发重复上述步骤,直到 n个样品聚为1个大类为止。
四、数据的预处理
先打开p281欧洲.xls,选取相关的数据,然后新建一个文件,命名为:input_data,由于本数据中的单位不统一,因此本来应该要对数据进行归一化,但是考虑到即使不归一化也不会影响到聚类结果,因此没有进行归一化处理。打开 SAS,在文件菜单下拉找到import ,按照提示导入数据并命名为:input_data,保存在默认的 work 文件夹里。最后存储,由于数据本来不需要作相关的预处理。这样,我们在做进一步的数据处理和输入的时候可以直接调用。
五、具体模型
5.1变量聚类分析
5.1.1 用 VARCLUS过程实现变量间聚类分析 VARCLUS 过程用来对变量进行聚类分析,即对数据集中的指标变量进行聚类。VARCLUS 过程将若干数值型变量最终归入互补相交的类,加入或形成层级式的类别。而这些类别则有类变量的线性组合来代替,一般为第一主成分或中心分量,称之为类分量。
5.1.2 编写程序
proc varclus data=work.data;
var m100 m200 m400 m800 m1500 m3000 marathon; run;
proc varclus centroid;
var m100 m200 m400 m800 m1500 m3000 marathon; run;
proc varclus hi maxc= 5;
var m100 m200 m400 m800 m1500 m3000 marathon; run;quit;
程序说明:
第一个 varclus 分量后没有任何选项,其聚类方法为主成分聚类法 第二个 varclus 分量后有 centroid,使用中心分量聚类法。
第三个 varclus 分量后加入了 hi(要求在不同水平上的聚类保持相同的系统结构) maxc= 5 要求从1类聚类到 5类 输出结果
这里是重心分量法思想进行主成分聚类的第一步,把 7个变量聚成一类,
能解释的方差为 5.297209,占总的方差的75.67%,并预告这一类将被分裂。
1分成 2类 ,此时能解释的方差为 6.100647,占总的方差的 0.8715
。
以上输出是每个指标与类充分之间相关系数的平方。其中 next closest 表示类中某个指标与相邻类的成分之间的相关系数的平方,称为 R-squared with next closest ,该值越小,说明分类越合理,1-R**2Ratio 的比值由同一行的数据求得,此值越小,表明分类越合理。由这列可以看出分成 2类基本上不合理。
以上输出是从标准化变量预测类成分的标准回归系数,若设 Cluster1、Cluster2分别为第一类和第二类成分,用 C1和 C2表示:
即:
C1= M100*0.267351+M200*0.269620+M400*0.271665+M800*0.247223
C2=M1500*0.371520+M3000*0.374217+MARATHON*0.345163
类结构相当于因子分析中的因子模型,即每个标准化变量可以表示成全部类成分的
线性组合。
如: M100=0.957928C1+0.689261C2
MARATHON=0.576240C1+0.868983C2
类内相关是类成分之间的相关系数,此时仍然没有达到临界值,因此 cluster2 将被继续分裂,中间过程与上面的类似,因此不在分析与叙述,下面给出最终的结果:
根据标准化系数,得知类C1 由 m100、m200和m400 组成,C2由m3000 组成,C3由marathon组成,C4由m800组成,C5 由m1500组成。
5.1.4 结果分析
根据变量间聚类分析的结果,可以把这7个分量m100,m200,m400,m800, m1500,m3000,marashon分成5组,其中m100,m200和m400分成一组,属于短跑类型;而另外四个变量各成一类,属于中长跑,基本符合实际情况。
5.2 FASTCLUS变量间聚类分析
5.2.1 用 FASTCLUS 进行变量间聚类分析
FASTCLUS过程叫做动态聚类过程,也较快速聚类。它是在一个变量或即个变量的欧式距离基础上对数据进行分类,这些类之间互补相交。此过程主要用与大数据集的聚类,不过对于本题给出的数据也可以应用此方法。
5.2.2 编写程序
proc fastclus data=work.Inputdata maxc=5 out= work.Inputdata; id nation_area; run;quit;
proc print data= work.Inputdata; run;
程序说明:用fastclus 快速聚类,数据源为:work.Inputdata,分成5类,输出结果保存在 work.Inputdata 数据集里。
5.2.3 输出结果
本程序产生一系列中间分析过程,这里不在分析。这里仅仅给出仅仅给出 work.Inputdata ,其余见附录7.2。
5.2.4 结果分析
由输出结果可知:1 类中有挪威,葡萄牙,爱尔兰,西德,英国;2 类中有西班牙,罗马尼亚,波兰,以色列,奥地利5个国家,这些国家或地区的气侯和地理位置相近,生活习惯也基本相似,因此运动员的素质基本上相同,分在一类也与实际相符合。3 类由瑞士,瑞典,荷兰,意大利,丹麦,比利时,芬兰,法国,东德。9个国家组成,这9个国家基本上都是传统的世界强国,因此这些国家分为一类很符合实际。而她们的成绩也正说明了这一点。4 类仅有土耳其一国;5 类由多卢森堡和希腊组成,实力较差,此实至名归。总的来说实力由强到弱的类的顺序为 3,1,2,5,4。
5.3 CLUSTER树法变量间聚类分析 5.3.1 CLUSTER过程简介
Cluster 过程也叫距离过程聚类,此过程产生一个输出集,tree 过程用这个数据集画出聚类图,其基本思想是把样品各自看成一类,然后将距离最短的两类合并,并计算新类与其他类的距离,在按最小距离合并,每次缩小一类,直至所有样品都成为一类,则聚类过程停止。
5.3.2 编写程序
proc cluster data=work.Inputdata method=single;
var m100 m200 m400 m800 m1500 m3000 marathon ; id nation_area; proc tree; run;
程序说明:用 ward 离差平方和法(ward's Mininum-Variance Method)进行 系统聚类
5.3.3输出结果
5.3.4 结果分析
该系统聚类过程和 fastclus 聚类分析的结果由着异曲同工的效果,只是分类更加细致,结果分析不在赘述。 5.4 三种方法的对比分析
VARCLUS 方法是对变量内之间的联系进行聚类,而FASTCLUS 和 CLUSTER 方法都是对变量间的关系进行分类的。因而第一种方法和后两种方法没有可比性,他们拥有不同的输出结果,且各有个的优点,且相互互补,方法二和方法三所要求的输出结果都是一致的,都是表示变量间的聚类问题。而方法二聚体的是可以事先要求程序分成几类,而方法三是程序自己选择最优的分类数,使得每一类里的元素之间的距离最短。方法二的缺点是事先确定分组数,而这个数目不一定适合题目的要求,且要求数据有较多的数据源,对于小数据比较敏感,结果不一定符合实际。而方法三对较少的数据比较方便,而对大数据集却不使用。
具体到本题,方法一、二、三所得出的结果基本上与实际情况相符合。而且分类效果较好。
六、参考文献
[1] 黄燕,SAS统计分析及应用. 北京:机械工业出版社,2006.1 [2] 李喜春,生物统计学 第二版. 北京:科学出版社,2000
7.1 题目原始数据
NATION_AREA M100 挪威 11.58 瑞士 11.45 瑞典 11.16 土耳其 11.98 西班牙 11.8 罗马尼亚 11.44 葡萄牙 11.81 波兰 11.13 荷兰 11.25 卢森堡 12.03 意大利 11.29 以色列 11.45 爱尔兰 11.43 丹麦 11.42 奥地利 11.43 比利时 11.41 法国 11.15 芬兰 11.13 东德 10.81 西德 11.01 英国 11 希腊
11.79
M200
23.31 23.31 22.82 24.44 23.98 23.46 24.22 22.21 22.81 24.96 23 23.57 23.51 23.52 23.09 23.04 22.59 22.39 21.71 22.39 22.13 24.08
七、附录
M400
M800
53.12 2.03 53.11 2.02 51.79 2.02 56.45 2.15 53.59 2.05 51.2 1.92 54.3 2.09 49.29 1.95 52.38 1.99 56.1 2.07 52.01 1.96 54.9 2.1 53.24 2.05 53.6 2.03 50.62 1.99 52 2 51.73 2 50.14 2.03 48.16 1.93 49.75 1.95 50.46 1.98 54.93
2.07
M1500
4.01 4.07 4.12 4.37 4.14 3.96 4.16 3.99 4.06 4.38 3.98 4.25 4.11 4.18 4.22 4.14 4.14 4.1 3.96 4.03 4.03 4.35
M3000
8.53 8.77 8.84 9.38 9.02 8.53 8.84 8.97 9.01 9.64 8.63 9.37 8.89 8.71 9.34 8.88 8.98 8.92 8.75 8.59 8.62 9.87
MARATHON 145.48 153.42 154.48 201.08 162.6 165.45 151.2 160.82 152.48 174.68 151.82 160.48 149.38 151.75 159.37 157.85 155.27 154.23 157.68 148.53 149.72 182.2
7.2 5.2.2 程序的输出结果