聚类分析
出于将认识的对象按照一些特征进行分类的必要,聚类分析(cluster analyses)作为一种定量方法,将从数据分析的角度,给出一个更准确、细致的分类工具。
1 相似性的刻画
因为要对对象在数量的角度进行分类,所以要引入相似性的概念。相似的东西会被归为一类,这是自然的思想。如果对于一群有待分类的样本点需用$p$个变量描述,则每个样本点可以看成是$R^p$空间中的一个点。因此,很自然地想到可以用距离来度量样本点间的相似程度。
1.1 样本间的相似性度量
记$\Omega$是样本点集,距离$d(x,y)$是$\Omega\times\Omega\rightarrow R^+$的一个函数,满足条件:
-
$d(x,y)\ge0,x,y\in\Omega$;
-
$d(x,y)=0$ 当且仅当 $x=y$;
-
$d(x,y)=d(y,x)$;
-
$d(x,y)\le d(y,z)+d(x,z),x,y,z\in\Omega$.
即我们所知的正则性、对称性和三角不等式。在聚类分析中,对于定量变量最常用的是Minkowski距离。
而其中最常用的是欧式距离。其优点是当坐标轴正交旋转时,欧氏距离保持不变。
要注意采用Minkowski距离时,要采用相同量纲的变量,否则若测量值变异范围悬殊时,建议先进行数据标准化。此外,还应避免变量的多重相关性。其造成的信息重叠会片面强调某些变量的重要性。由于这些缺点的存在,一个改进的距离就是马氏距离,定义如下:
$$
d( x,y ) =\sqrt{( x-y ) ^T\Sigma ^{-1}( x-y )}
$$
x,y来自p维总体Z的样本观测值,$\Sigma$是Z的协方差矩阵。实际中$\Sigma$往往不知道,需要用样本协方差估计。马氏距离对所有线性变换是不变的,因此不受量纲影响。
1.2 类与类间的相似性度量
如果有两个样本类$G_1,G_2$,可以用下面的方法测量距离:
-
最短距离法:
$$
D( G_1,G_2) =\underset{\begin{array}{c}
x_i\in G_1\
y_j\in G_2\
\end{array}}{\min}{ d( x_i,y_j)}
$$ -
最长距离法:
即上面的min改成max.
-
重心法:
$$
D(G_1,G_2) =d(\bar{x},\bar{y})
$$ -
类平均法
-
离差平方和法
2 系统聚类法
2.1 系统聚类法的功能和特点
生成聚类图的步骤:设$\Omega={w_1,w_2,…,w_n}$,
-
计算n个样本点两两之间的距离${d_{ij}}$,记为矩阵$D=(d_{ij})_{n\times n}$;
-
首先构造n 个类,每一个类中只包含一个样本点,每一类的平台高度均为零;
-
合并距离最近的两类为新类,并且以这两类间的距离值作为聚类图中的平台高度;
-
计算新类与当前各类的距离,若类的个数已经等于1,转入步骤5,否则,回到步骤3;
-
画聚类图;
-
决定类的个数和类。
1 | clc,clear |
3 变量聚类法
如果在选取指标时,太过细致导致变量多而重叠度(相关度)过高,会给建模与数据分析带来很多不便。因此,人们常常希望能研究变量间的相似关系,按照变量的相似关系把它们聚合成若干类,进而找出影响系统的主要因素,比如主因子法等。
3.1 变量相似性度量
在对变量进行聚类分析时,首先要确定变量的相似性度量,常用的变量相似性度量有两种:
-
相关系数
-
夹角余弦
3.2 变量聚类法
类似于样本集合聚类分析中最常用的最短距离法、最长距离法等,变量聚类法采用了与系统聚类法相同的思路和过程。在变量聚类问题中,常用的有最大系数法、最小系数法等。
通过这样的操作就可以把一些距离近的变量归为一类,从而达到降维的效果。
4 案例分析
下表是1999 年中国省、自治区的城市规模结构特征的一些数据,以latex的代码形式呈现,要对其使用聚类分析来分类。
\begin{table}[htbp]
\centering
\caption{Add caption}
\begin{tabular}{cccccc}
省、自治区 & 城市规模 (万人) & 城市首位度 & 城市指数 & 基尼系数 & 城市规模中位 值(万人) \
京津冀 & 699.70 & 1.4371 & 0.9364 & 0.7804 & 10.880 \
山西 & 179.46 & 1.8982 & 1.0006 & 0.5870 & 11.780 \
内蒙古 & 111.13 & 1.4180 & 0.6772 & 0.5158 & 17.775 \
辽宁 & 389.60 & 1.9182 & 0.8541 & 0.5762 & 26.320 \
吉林 & 211.34 & 1.7880 & 1.0798 & 0.4569 & 19.705 \
黑龙江 & 259.00 & 2.3059 & 0.3417 & 0.5076 & 23.480 \
苏沪 & 923.19 & 3.7350 & 2.0572 & 0.6208 & 22.160 \
浙江 & 139.29 & 1.8712 & 0.8858 & 0.4536 & 12.670 \
安徽 & 102.78 & 1.2333 & 0.5326 & 0.3798 & 27.375 \
福建 & 108.50 & 1.7291 & 0.9325 & 0.4687 & 11.120 \
江西 & 129.20 & 3.2454 & 1.1935 & 0.4519 & 17.080 \
山东 & 173.35 & 1.0018 & 0.4296 & 0.4503 & 21.215 \
河南 & 151.54 & 1.4927 & 0.6775 & 0.4738 & 13.940 \
湖北 & 434.46 & 7.1328 & 2.4413 & 0.5282 & 19.190 \
湖南 & 139.29 & 2.3501 & 0.8360 & 0.4890 & 14.250 \
广东 & 336.54 & 3.5407 & 1.3863 & 0.4020 & 22.195 \
广西 & 96.12 & 1.2288 & 0.6382 & 0.5000 & 14.340 \
海南 & 45.43 & 2.1915 & 0.8648 & 0.4136 & 8.730 \
川渝 & 365.01 & 1.6801 & 1.1486 & 0.5720 & 18.615 \
云南 & 146.00 & 6.6333 & 2.3785 & 0.5359 & 12.250 \
贵州 & 136.22 & 2.8279 & 1.2918 & 0.5984 & 10.470 \
西藏 & 11.79 & 4.1514 & 1.1798 & 0.6118 & 7.315 \
陕西 & 244.04 & 5.1194 & 1.9682 & 0.6287 & 17.800 \
甘肃 & 145.49 & 4.7515 & 1.9366 & 0.5806 & 11.650 \
青海 & 61.36 & 8.2695 & 0.8598 & 0.8098 & 7.420 \
宁夏 & 47.60 & 1.5078 & 0.9587 & 0.4843 & 9.730 \
新疆 & 128.67 & 3.8535 & 1.6216 & 0.4901 & 14.470 \
\end{tabular}%
\label{tab:addlabel}%
\end{table}%
计算的MATLAB程序如下:
1 | %% 数据处理 |
得到的聚类树如下:
可以看到采用欧氏距离后产生的聚类树,宏观可以分成三类。