聚类分析与主成分分析SAS的程序DOC.docx
《聚类分析与主成分分析SAS的程序DOC.docx》由会员分享,可在线阅读,更多相关《聚类分析与主成分分析SAS的程序DOC.docx(13页珍藏版)》请在冰豆网上搜索。
聚类分析与主成分分析SAS的程序DOC
实验三我国各地区城镇居民消费性支出的主成分分析和聚类分析
(王学民编写)
一、实验目的
1.掌握如何使用SAS软件来进行主成分分析和聚类分析;
2.看懂和理解SAS输出的结果,并学会以此来作出分析;
3.掌握对实际数据如何来进行主成分分析;
4.对同一组数据使用五种系统聚类方法及k均值法,学会对各种聚类效果的比较,获取重要经验;
5.掌握使用主成分进行聚类
二、实验内容
数据集sasuser.examp633中含有1999年全国31个省、直辖市和自治区的城镇居民家庭平均每人全年消费性支出的八个主要变量数据。
对这些数据进行主成分分析,可将这31个地区的前两个主成分得分标示于平面坐标系内,对各地区作直观的比较分析。
对同样的数据使用五种系统聚类方法及k均值法聚类,并对聚类效果作比较。
最后,对主成分的图形聚类和正规聚类的效果进行比较。
实验1
进行主成分分析,根据前两个主成分得分所作的散点图对31个地区进行比较分析。
实验2
分别使用最长距离法、中间距离法、两种类平均法、离差平方和法和k均值法进行聚类分析,并比较其聚类效果。
实验3
主成分聚类,并与上述正规的聚类方法进行比较
三、实验要求
1.用SAS软件的交互式数据分析菜单系统完成主成分分析;
2.完成五种系统聚类方法及k均值法,比较其聚类效果;
3.根据前两个主成分得分的散点图作直观的聚类,并与上述正规的聚类方法进行比较。
四、实验指导
1.进行主成分分析
在inshigt中打开数据集sasuser.examp633,见图1。
选菜单过程如下:
在图1中选分析
多元(YX)
在变量框中选x1,x2,x3,x4,x5,x6,x7,x8(见图2)
Y
选输出
选主分量分析,主分量选项(见图3)
在图4中作图中的选择(主成分个数缺省时为“自动”选项,此时只输出特征值大于1的主成分)
确定
确定
确定
图1
图2
图3
图4
得到如图5、图6所示的结果:
图5
图6
从图5可以看出,前两个和前三个主成分的累计贡献率分别达到80.6%和87.8%,第一主成分
在所有变量(除在
上的载荷稍偏小外)上都有近似相等的正载荷,反映了综合消费性支出的水平,因此第一主成分可称为综合消费性支出成分。
第二主成分
在变量
上有很高的正载荷,在变量
上有中等的正载荷,而在其余变量上有负载荷或很小的正载荷。
可以认为这个主成分度量了受地区气候影响的消费性支出(主要是衣着
,其次是医疗保健
)在所有消费性支出中占的比重(也可理解为一种消费倾向),第二主成分可称为消费倾向成分。
第三主成分很难给出明显的解释,因此我们只取前面两个主成分。
在图1中选分析
散点图(YX)
选PCR1
X;PCR2
Y;region
标签变量(见图7)
确定
随即出现如图8所示的散点图,接下来我们对该图进行设置、调整,使之符合我们的要求。
图7
图8
在图9的数据窗口中点击左上角的“31”,以使所有观测都选中
将鼠标移至观测号中,点击右键,选在图中加标签
在图8中点击左下角,出现上托菜单
刻度…
作图10中的选择
确定
作图11中的选择
确定
调整好散点图:
拉大图外围方框;图8中点击标记大小,选择6号字;下拉横坐标,左拉纵坐标;图8中点击参考线。
图9
图10
图11
图12
随即得到图12,该图是关于第一和第二主成分得分的散点图,该图对各地区的综合消费性支出和受地区气候影响的消费性支出占的比重有较直观的描述。
从图中可以看出,上海、广东和北京在最右边,城镇居民综合消费性支出是最高的;其次是浙江和天津;江西在散点图的最左边,表明综合消费性支出是最低的;北京和西藏在散点图的最上边,说明受地区气候影响的消费性支出占的比重最高;广东在最底部,表明受地区气候影响的消费性支出占的比重最低。
2.用五种系统聚类法及k均值法聚类,并比较其效果
(1)分别使用最长距离法、中间距离法、两种类平均法和离差平方和法进行聚类分析,为此编制如下的SAS程序:
procclusterdata=sasuser.examp633method=comstd;
idregion;
proctreehorizontal;
idregion;
procclusterdata=sasuser.examp633method=medstd;
idregion;
proctreehorizontal;
idregion;
procclusterdata=sasuser.examp633method=avestd;
idregion;
proctreehorizontal;
idregion;
procclusterdata=sasuser.examp633method=avenosquarestd;
idregion;
proctreehorizontal;
idregion;
procclusterdata=sasuser.examp633method=warstd;
idregion;
proctreehorizontal;
idregion;
run;
程序说明:
“proccluster”是一个聚类分析过程;“data=sasuser.examp633”规定过程分析的是sasuser逻辑库中的examp633数据集;“method=com”规定了采用的系统聚类方法是最长距离法(“method=med”是采用中间距离法;“method=ave”是采用类平均法,缺省时类之间的距离为均方距离,如使用选项“nosquare”,则类之间的距离为平均距离;“method=war”是采用离差平方和法);选项“std”规定了在聚类之前须先对各变量数据作标准化变换,缺省时是直接对原始数据进行聚类,而不作事先的标准化处理。
语句“idregion”用于识别打印输出中的观测,并以变量region的取值显示;如果缺省,则用OBn显示,其中n为观测序号。
“proctree”是一个使用由cluster过程产生的数据集来画树形图的过程;选项“horizontal”要求树形图的取向为水平方向,且树根在左边。
如果没有指明此选项,则其高度轴为垂直方向,树根在上部。
聚类树形图的输出:
图13最长距离法
图14中间距离法
图15类平均法(均方距离)
图16类平均法(平均距离)
图17离差平方和法
(2)使用k均值法进行聚类分析,编制如下的SAS程序:
procstandanddata=sasuser.examp633mean=0std=1out=stan;
procfastclusdata=stanmaxc=5driftlist;
varx1-x8;
idregion;
run;
程序说明:
“procstandand”是一个将SAS数据集中的一些或所有变量按给定的均值和标准差进行标准化变换;“data=sasuser.examp633”规定过程是对sasuser逻辑库中的examp633数据集进行;选项“mean=0std=1”规定按均值为0、标准差为1进行标准化变换;选项“out=stan”要求生成一个包含标准化值的新数据集,并命名为stan,这是一个临时数据集,属于临时库work。
“procfastclus”是一个动态聚类分析过程;“data=stan”规定对数据集stan进行;“maxc=5”指定所允许的最大分类个数为5,如果缺省,其值假定为100;“varx1-x8”指定用于聚类分析中的数值型变量。
如果缺省,则使用所有未列入其他语句中的数值型变量;选项“drift”表明使用k均值法;选项“list”要求列出各观测归属的类别。
3.主成分聚类,并与上述正规的聚类方法进行比较
从图12中直观地进行聚类,将其结果与上述正规的聚类方法进行比较。