SPSS聚类分析实战:系统聚类与K-均值聚类详解
SPSS聚类分析实战:系统聚类与K-均值聚类详解
SPSS中的系统聚类分析功能位于【分析】—【分类】—【系统聚类】菜单中。系统聚类主要有两种类型:对样本进行聚类的Q型聚类和对变量进行聚类的R型聚类。在【系统聚类分析】—【聚类】框下可以选择【个案】(Q型聚类)或【变量】(R型聚类)。
如果参与聚类分析的变量存在数量级上的差异,需要在SPSS中通过【系统聚类分析】—方法(M)—【系统聚类分析:方法】—【转换值】—【标准化】选项中选择消除数量级差的方法,并指定处理是针对变量还是针对样本的。
SPSS提供了多种系统聚类方法,常用的是组间平均链接和组内平均链接。这些方法可以在【系统聚类分析】—方法(M)—【系统聚类分析:方法】—【聚类方法】选项中选择。同时,SPSS还提供了多种个体距离的计算方式,常用的是Euclidean距离、平方Euclidean距离和Pearson相关性,这些选项位于【系统聚类分析】—方法(M)—【系统聚类分析:方法】—【测量】—【区间】中。
确定分类数的方法有两种:
- 通过观察每次合并的类与类之间的距离。在SPSS中,可以通过【图形】—【旧对话框】—【散点/点状】绘制聚合系数随分类数的变化曲线,类似于因子分析中的碎石图,选择曲线开始变得平缓的点作为分类数。
- 从实用角度出发选择合适的分类数。如果确定分类数,可以在SPSS中通过【系统聚类分析】—统计量(S)—【系统聚类分析:统计】—【聚类成员】选项中选择【单一方案】并输入方案数目,或选择【方案范围】。同时,在【系统聚类分析】—保存(A)—【系统聚类分析:保存】—【聚类成员】选项下作同样选择。此时聚类分析的结果将以变量名为clun_m(如clu2_1)的新变量存入SPSS数据编辑窗口中。
SPSS中的快速聚类法(K-均值聚类法)位于【分析】--【分类】--【K-平均值聚类】菜单中。首先需要指定聚类数目K,在【K-平均值聚类分析】—【聚类数】框中输入聚类数目,该数应小于样本数。然后SPSS会根据样本数据的实际情况选择k个有代表性的样本数据作为初始类中心。初始类中心也可以由用户自行指定,需要指定K组样本数据作为初始类中心点。
K-均值聚类分析中的方差分析可以检验聚类效果,SPSS中通过在【K-平均值聚类分析】— 选项(O) —【统计量】选项中勾选【ANOVA表】来完成。同时,通过在【K-平均值聚类分析】— 保存(S) 菜单下勾选【聚类成员】,可以将聚类分析的结果以变量名为QCL_m(如QCL_1)的新变量存入SPSS数据编辑窗口中。
接下来,我们通过一个实际案例进行SPSS实战训练。案例数据为“地区三大产业产值.sav”,给出了31个省、直辖市、自治区的三大产业的生产产值数据,即样品数n=31,变量数p=3。我们将对这31个地区的三大产业发展水平进行系统聚类分析,其中个体距离采用平方欧式距离,类间距离采用平均组间链接距离。
系统聚类分析实现步骤
未确定类数前
- 打开对话框:[Analyze]→[Classify]→[Hierarchical Cluster Analysis]
- 将‘第一产业’、‘第二产业’、‘第三产业’添加进Variables中,将‘Region’添加进Label Cases by中。
- 在[Statistics]对话框中选择‘Range of solutions’,并将Minimum number of clusters输入‘4’,Maximum number of clusters输入‘5’;
- 在[Plots]对话框中勾选中‘Dendrogram’;
- 在[Method]对话框中选择‘Between-groups linkage’的Cluster Method;
- 在[Save]对话框中的‘Range of solutions’,并将Minimum number of clusters输入‘4’,Maximum number of clusters输入‘5’,将输出结果保存到数据集中。
系统聚类分析结果分析
系统聚类分析凝聚状态表
A. 个体距离(指平方欧式距离)
B. 个体与小类的距离(指 组内平局链锁距离)
C. 小类与小类的距离(指组间平均链锁距离)
- 第1步: 29 样本和 30 样本聚成一小类,它们的个体距离(欧式距离的平方)是 109.714 ,这个小类将在下面第 4 步用到。
- 第7步: 7样本 和 22样本 聚成一小类,它们的距离是 19828.887,形成的小类将在下面第13步中用到。
- 第9步:5 样本和 24 样本聚成一小类,它们的个体距离(欧式距离的平方)是 33688.611 ,这个小类将在下面第 20 步用到。
冰柱图
如果分为五类,分类情况是:
- 第一类为:北京、天津、山西、内蒙古、吉林、江西、广西、海南、重庆、贵州、云南、西藏、陕西、甘肃、青海、宁夏、新疆
- 第二类为:河北、辽宁、黑龙江、安徽、福建、河南、湖北、湖南、四川
- 第三类为:上海
- 第四类为:江苏、山东、广东
- 第五类为:浙江
树状图
结论:如果分为四类,分类情况是:
- 第一类为: 北京、天津、山西、内蒙古、吉林、江西、广西、海南、重庆、贵州、云南、西藏、陕西、甘肃、青海、宁夏、新疆;
- 第二类为:河北、辽宁、黑龙江、上海、安徽、福建、河南、湖北、湖南、四川;
- 第三类为:江苏、山东、广东;
- 第四类为:浙江;
聚合系数(y轴)与分类数(x轴)的碎石图:
结论:第4类以后,变化的趋势开始趋于平稳,所以,考虑分为4类。
确定类数后(将聚类结果确定为4类)
- 打开对话框:[Analyze]→[Classify]→[Hierarchical Cluster Analysis]
- 将‘第一产业’、‘第二产业’、‘第三产业’添加进Variables中,将‘Region’添加进Label Cases by中。
- 在[Statistics]对话框中选择‘Single of solutions’,并输入‘4’;
- 在[Save]对话框中的‘Single of solutions’,并输入‘4’,将输出结果保存到数据集中。
分类结果
- 分为4类。
- 第一类:{北京、天津、山西、内蒙古、吉林、江西、广西、海南、重庆、贵州、云南、西藏、陕西、甘肃、青海、宁夏、新疆}
- 第二类:{河北、辽宁、黑龙江、上海、安徽、福建、河南、湖北、湖南、四川}
- 第三类:{江苏、山东、广东}
- 第四类:{浙江}
接下来,我们对同一数据集进行K-均值聚类分析,要求分成3类,初始类中心点由SPSS自行指定。
K-均值聚类分析实现步骤
- 打开对话框:[Analyze]→[Classify]→[K-Means Cluster Analysis]
- 将“第一产业”、“第二产业”、“第三产业”添加到【Variables】中,将“Region”添加进【Label Cases by】中,并将Number of Clusters更改为3。
- 在[Save New Variable]对话框中勾选“Cluster membership”和“Distance from cluster center”,将聚类成员和与聚类中心的距离保存到数据集中。
- 在[Options]选项对话框中选择“Initial cluster centers”和“ANOVA table”两个结果。
结果分析
起始聚集中心
每个类的起始类中心的数据(三维坐标)
- 第一类:(1004.92,3991.97,2922.23)
- 第二类:(31.31,20.24,39.63)
- 第三类:(790.60,2084.33,1381.08)
迭代历程
第1次迭代后,3个类的中心点分别偏移了407.484、647.918、369.044,第1类中心点偏移较大;第2次迭代后,2个类的中心点偏移均小于指定的判定标准(SPSS默认为0.02),聚类分析结束。
最终聚集中心
每个类的最终类中心的数据(坐标)
- 第一类:(1079.00,3696.37,2651.72)
- 第二类:(246.94,483.05,438.52)
- 第三类:(675.80,1753.43,1264.80)
- 第二类为最优。
方差分析表
因为各个因子对应的p值=0.000,p值 <α=0.05,所以各因子的均值在类中的差异显著。
K-均值聚类分析类成员情况
第一类包含3个地区;第二类包含17个地区;第三类包含11个地区。
K-均值聚类分析分类结果
结论:分为3类。
- 第一类:{江苏、山东、广东}
- 第二类:{北京、天津、山西、内蒙古、吉林、江西、广西、海南、重庆、贵州、云南、西藏、陕西、甘肃、青海、宁夏、新疆}
- 第三类:{河北、辽宁、黑龙江、上海、浙江、安徽、福建、河南、湖北、湖南、四川}