system: [SYSTEM]

user: 3. 聚类分析 3.1. 指标选择与数据来源 在选择指标时，应充分考虑到所需数据的真实性及可获得性，同时应考虑各地区经济发展指标的相关性及全面性 [ 1 ]。本文通过结合云南省的实际情况，综合考虑云南省16个地区的经济发展现状及影响因素，最终选定了15个反映云南省各地区经济发展综合情况的指标，作为本文选定的变量，为之后聚类分析提供可靠的数据支撑。具体变量如表1所示： Table 1 Indicator system tabl 变量 所表示的含义及单位 变量 所表示的含义及单位 X1 地区生产总值(亿元) X9 职工平均工资(万元/人) X2 人均GDP (元/人) X10 农村居民人均纯收入(元/人) X3 第一产业产值(亿元) X11 居民消费(亿元) X4 第二产业产值(亿元) X12 政府消费(亿元) X5 第三产业产值(亿元) X13 城乡居民储蓄存款额(万元/人) X6 固定资产投资(亿元) X14 进出口总额(亿元) X7 公共财产收支总额(亿元) X15 旅游总收入(亿元) X8 社会消费品零售总额(亿元) 表1. 指标体系表 本文使用的所有数据均来源于《2017年云南省统计年鉴》 [ 2 ]，原始数据见附录。 3.2. 采用类平均法进行聚类分析 类平均法有两种定义，一种定义方法是把类与类之间的距离定义为所有样品对之间的平均距离；另一种定义方法是类与类之间的平方距离为样品对之间平方距离的平均值；本文采用第二种定义方法，即 D K L 2 = 1 n K n L ∑ i ∈ G K ， j ∈ G L d i j 2 (1) 类平均法可以较好地利用所有样品之间的信息 [ 3 ]。 利用SAS程序进行类平方法聚类，因为样本数据单位不同，在聚类之前需要对各个变量数据作标准化变化。 SAS程序如下： PROC IMPORT OUT= WORK.test DATAFILE= C:\Users\DELL\Desktop\2016年云南各地区经济指标.xls DBMS=EXCEL REPLACE; RANGE=Sheet1$ GETNAMES=YES; MIXED=NO; SCANTEXT=YES; USEDATE=YES; SCANTIME=YES; RUN; proc cluster data=Work.Test method=ave std; id region; proc tree horizontal; id region; run; 聚类结果如下： 图3. 类平均法相关特征值矩阵 图3表示类平均法相关特征值矩阵，第一列代表协方差矩阵的特征值，第二列代表从上到下相邻两个特征值之差，第三列代表方差比，第四列代表方差累积比。 由于事先对样本数据进行了标准化处理，因此全部样本标准差的平方根为1。观察值之间的均方根距离为5.477226，代表变量之间也是较远距离的。 图4代表类平均法的聚类过程，从NCL可以看出16个变量一共聚类了15次。按照距离的远近，第一次聚类是普洱和文山聚为一类，因为两者之间标准化均方根距离最小，只有0.11。以此类推，最后一次聚类是昆明和CL2聚成一个大类。 图4. 类平均法聚类过程 类平均法最终得到图5：类平均法树形图。若在坐标区间(0.70， 0.75)内切一刀，则将云南省16个地区分成四类。 图5. 类平均法树形图 第一类：昆明。 第二类：曲靖、红河、玉溪。 第三类：保山、临沧、普洱、文山、楚雄、昭通、大理、丽江、西双版纳、德宏、怒江。 第四类：迪庆。 3.3. 采用离差平方和法进行聚类分析 类中各样品到类重心的平方欧式距离之和称为(类内)离差平方和，设 G K 和 G L 合并成新类 G M ，则 G K ， G L 和 G M 的离差平方和分别是： W K = ∑ i ∈ G K ( x i − x ¯ K ) ′ ( x i − x ¯ K ) (2) W L = ∑ i ∈ G L ( x i − x ¯ L ) ′ ( x i − x ¯ L ) (3) W M = ∑ i ∈ G M ( x i − x ¯ M ) ′ ( x i − x ¯ M ) (4) 对固定的类内样品数，它们反映了各自类内样品的分散程度； G K 和 G L 之间的平方距离为： D K L 2 = W M − W K − W L (5) 这种系统聚类法称为离差平方和法或Ward方法(Ward’s method) [ 3 ]。 利用SAS程序进行离差平方和法聚类，因为样本数据单位不同，在聚类之前需要对各个变量数据作标准化变化。 SAS程序如下： PROC IMPORT OUT= WORK.test DATAFILE= C:\Users\DELL\Desktop\2016年云南各地区经济指标.xls DBMS=EXCEL REPLACE; RANGE=Sheet1$ GETNAMES=YES; MIXED=NO; SCANTEXT=YES; USEDATE=YES; SCANTIME=YES; RUN; proc cluster data=Work.Test method=war std nosquare; id region; proc tree horizontal; id region; run; 聚类结果如下： 图6代表离差平方和法的相关特征值矩阵，我们可以发现与离差平方和法的相关特征值矩阵结果一致，由此可以验证程序算法正确。 图7代表离差平方和法的聚类过程，从NCL可以看出16个变量一共聚类了15次。其聚类过程与类平均法聚类过程一致。 图6. 离差平方和法相关特征值矩阵 图7. 离差平方和法聚类过程 在分成4类之前的并类过程中，RSQ的减少使逐渐进行的，改变不大。RSQ分成4类时，RSQ = 0.820，而下一次合并后分成3类时，RSQ下降较多，此时，RSQ = 0.739。通过分析RSQ统计量可知此时可以分成4类。同理，当RSQ分成3类时，RSQ = 0.739，而下一次合并后分成2类时，RSQ下降较多，此时，RSQ = 0.624。通过分析RSQ统计量可知此时也可以分成3类。 下面根据离差平方和法树形图，分别对这两种分类方式进行讨论。 最终得到图8离差平方和法树形图。 若在坐标区间(3.5， 4)内切一刀，则分成三类，它们分别是： 第一类：昆明。 第二类：曲靖、红河、大理、玉溪。 第三类：保山、临沧、昭通、普洱、文山、楚雄、丽江、西双版纳、德宏、怒江、迪庆。 离差平方和法这种聚类方法与类平均法的聚类结果大体上相一致。区别是，类平均法将玉溪与保山、临沧、昭通、普洱、文山、楚雄、丽江、西双版纳、德宏、怒江划分为了一类。将迪庆归为第四类。相比而言，类平均法的聚类方法要更加精准一些。 若在坐标区间(2.5， 3)内切一刀，则分为四类，它们分别是： 第一类：昆明。 第二类：曲靖、红河、大理、玉溪。 第三类：保山、临沧、昭通、普洱、文山、楚雄、丽江、西双版纳、德宏。 第四类：怒江、迪庆。 理想的聚类结果应该是类与类之间的特征明显不同而类内的特征彼此接近。根据我们之前对云南省各地区生产总值和居民消费的相关分析，与前两种聚类方式相比，这种聚类方式明显更贴近实际情况，更加吻合现实的经济意义。 图8. 离差平方和法树形图 3.4. 采用K均值法进行聚类分析 K均值法的基本步骤为： 1) 选择K个样本作为初始凝聚点，或者将所有样品分成k个初始类，然后将这k个类的重心(均值)作为初始凝聚点。 2) 对所有的样品逐个归类，将每个样品归入凝聚点离它最近的那个类，该类的凝聚点更新为这一类目前的均值，直至所有样品归类。 3) 重复步骤(2)，直至所有的样品都不能再分配为止 [ 3 ]。 接下来对这组数据采用K均值法聚类，根据之前的类平均法和离差平方和法的聚类结果，指定K均值法所允许的最大分类个数为4类，即“maxc = 4”。在聚类前同样对数据进行标准化变换。 SAS程序如下： PROC IMPORT OUT= WORK.test DATAFILE= C:\Users\DELL\Desktop\2016年云南各地区经济指标.xls DBMS=EXCEL REPLACE; RANGE=Sheet1$ GETNAMES=YES; MIXED=NO; SCANTEXT=YES; USEDATE=YES; SCANTIME=YES; RUN; proc standard data=Work.Test mean=0 std=1 out=stan; proc fastclus data=stan maxc=5 drift list; var x1-x15; id region; run; 聚类结果如下： 图9代表k均值法的初始凝聚点，最大聚类为4类，最大迭代为1次。将15个指标分为4个初始类，然后将这4个类的均值作为其初始凝聚点。输出结果如图9所示。 图9. 离差平方和法树形图 在图10聚类汇总信息图中，可以看到每一类的具体信息。例如，聚类2中共有10个观测值，RMS (Root Mean Square，简称均值平方根)的标准差为0.4868，从该聚类种子到其余观测的最大距离为2.8919。距离聚类2最近的类是聚类4，二者之间的距离为聚类质心间的距离，即为2.5832。 图10. 聚类汇总 图11变量的统计量信息图则给出了变量相关的统计量。观察可以发现，由于事先对变量进行了标准化处理，所以所有指标变量的Total STD (总标准差)均为1。对于变量x1来说，其Within STD (类内合并标准差)为0.35147，R-Square (相关系数)为0.901177，拟合效果较好，RSQ/(1-RSQ) (类间方差同类内方差比)为9.119058。 根据图表可以看出，大部分变量的拟合效果良好，但也有少部分变量拟合效果较差，如x10、x2。 最终其F统计量值为15.89。 图11. 变量的统计量 图12给出了各变量在每一类的均值，例如，对于变量x1来说，其在聚类1中的均值为3.347167385，在聚类2中的均值为0.004784370，在聚类3中的均值为−0.762285617，在聚类4中的均值为−0.170254784。 图12. 各变量类内均值 图13给出了各变量在每一类中的标准差，例如，对于变量x1来说，其在聚类2中的标准差为0.401227668，在聚类4中的标准差为0.105670245。因为聚类1只有昆明市一个变量，聚类3中只有迪庆一个变量。所以在聚类2、3中并未输出其标准差。 图13. 各变量的类内标准差 由图14聚类列表我们可以看到每一个地区所属的具体类别，以及其与种子的距离。例如，对于昆明市来说，在k均值法聚类中划分为第一类，其与种子的距离为0。 图14. 聚类列表 最终由k均值法得到的聚类结果和之前的类平均法、离差平方和法的结果相比有很大区别。K均值法聚类结果如下： 第一类：昆明。 第二类：曲靖、玉溪、保山、昭通、普洱、临沧、楚雄、红河、文山、大理。 第三类：迪庆。 第四类：丽江、西双版纳、德宏、怒江。 此程序中初始凝聚点的选择对于异常点很敏感，聚类后异常点很有可能单个地自成一类，例如昆明和迪庆，可能由于这两个地区城镇居民的消费结构与其他地区相比有一定的特殊性。