1. 引言
集群数据(Clustered data)是一种典型的复杂数据,常出现在遗传学、计算机科学等领域,此类数据表现在样本内部之间具有某种潜在联系,例如:
,群组之间具有共同特征,构成多个群体的数据集。集群数据主要特征为数据样本众多,同一群内的个体存在较强关联性,不同群体关联性未知,群内样本数目未必相同。不同学者对集群数据研究侧重点不同。Daniel等[1]对小样本集群数据比较了多层线性模型(MLM)、广义估计方程(GEE)、固定效应模型(FEM)等不同统计方法来解决聚类效应问题,研究表明,固定效应模型在处理小样本集群数据中表现较佳,但其并未对固定效应模型应用于大样本数据集群。BINGQING [2]针对具有集群数据的竞争风险问题,并且通过引入边际模型的方法,解决了集群数据中竞争风险问题的建模和推断,该方法更准确地估计累计发生率函数,并考虑了集群内的相关性。忽略了集群之间的相关性。Chang Hyung Lee和Douglas G [3]对于cluseff在集群健壮分析中检查集群异质性的严重性,集群异质性可能会导致大小失真和无法假设,借用决策树对集群数据强大的分析能力,展示使用cluseff的方法以减少集群异质性大小失真问题。但其上述研究只对集群数据内聚类关系和数据之间的异质性考虑,缺乏集群数据中群与群之间存在着某种内在联系。
聚类分析广泛应用于生物信息学的基因分组、交通领域中的车辆识别、无人机多工况聚类识别等领域。聚类顾名思义是把具有相似特征的样本放在同一类别中,不同类别之间差异较大。人们提出了许多数据聚类的算法,像K-means算法[4]、CLARAN、DBSCAN等,所有这些算法都试图解决大规模数据库的数据聚类问题[5]。进一步说明集群数据在聚类分析中群与群之间关系不能忽略。
因子分析模型是一种借助于公共因子来解释多维观测变量之间相关性的重要统计模型[6]。因子分析模型求解的方法有主成分法、主因子法、极大似然估计法等。本文采用主成分法估计参数生成集群数据样本。在因子分析模型中Julian [7]证明了忽略集群结构会产生较大偏差,因此在处理集群数据内部关系时不能忽略。
在集群数据下如何对因子分析模型产生的数据群进行聚类,尚未有相关文献。因此,本文构建了集群数据下的因子分析模型,通过主成分分析法分别估计了各个子群的参数,产生各个群的样本,从而对含有样本的群进行聚类,群之间的聚类相对困难,群聚类经典的方法有:最短距离法、最长距离法、中间距离法、重心法、类平均法和Ward方法等,但他们都有其自身方法的不足。相对于集群数据的数据量庞大问题,单纯的使用某种方法会使得偏差过大,聚类效果欠佳等问题,本文提出单个群用均值中心代表群,使用K-means聚类算法进行群聚类,使用轮廓系数评价聚类结果优劣。
2. 聚类算法
2.1. K-Means聚类算法
K-means算法是一种无监督学习,同时也是基于划分的聚类算法[8]。该算法以其高效简洁的方式应用广泛。常采用欧氏距离作为样本数据间相似度的指标,即距离越远,相似度越低,距离越近,相似度越高。该算法实施之前需要预先指定聚类数目K以及K个初始聚类中心。根据样本之间的相似度,通过不断迭代更新聚类中心位置,当簇的误差平方和SSE不再变化时,聚类结束,得到最终结果。
给定集群数据
,其中
,集群数据样本众多,且样本内部关系相对复杂,很难对集群数据之间群
进行聚类。因此我们提出在单个群选出具有典型代表性向量
,通过使用K-means聚类选出向量
。对于每个群向量
,采用Minkowskini距离进行聚类判断准则,从而达到不同关联性之间的群达到聚类效果。
Figure 1. Clustering flow chart of K-means algorithm
图1. K-means算法聚类流程图
Minkowskini距离表达式如下:
(1)
其中当q = 2时,二阶Minkowskini距离
称为欧式距离。
单个群确定聚类中心
到各样本点
距离平方和:
. (2)
其中
是第g个群的类别中心。聚类目标是使距离平方和
最小。
K-means算法流程如图1。
根据K-means算法流程图1可知,首先在进行K-means聚类之前要对集群数据筛选特征向量,我们以每个子群的p个指标的均值作为特征向量,因此得出G个特征向量,每个特征向量可表示为
。
在G个特征向量中任选K (K < G)个聚类质心,利用欧式距离分别计算剩余特征向量点到聚类质心的距离,并将其分配到距离最近的簇内。根据特征向量所属簇是否发生改变决定是否重新更新簇内质心,最终结束K-means聚类。因此我们是通过对逐个群使用K-means算法得到各个群的聚类中心
,使用
构造类与类之间的聚类。
2.2. 集群数据群聚类数确定
K-means聚类算法存在缺点是初始聚类中心是随机的,且聚类数目K是人为设定,选取良好的聚类个数K,能使得聚类更加精确。
假设
为各群类别中心,根据K值和误差平方和SSE变化曲线,最终可确定好K的取值。
类内总平方和的表达式为:
其中K是群聚类个数,G是集群数据群个数,
是第
个簇的聚类中心,SSE表示各个簇使用欧式距离和的总簇内总平方和。
3. 集群数据理论模型
3.1. 集群数据下的因子分析模型
经典的因子分析模型矩阵形式为:
(3)
类比因子分析模型构建集群数据下的因子分析模型,假设存在G个群,每个群中有
个个体,则集群数据集可表示为
。其中每个个体为
,则因子分析模型分量形式表示为
,
(4)
其中,
为p维均值向量,
为第g个群对应的
维因子载荷矩阵。
表示第g个群中第i个个体的m维公共因子(
)。
表示第g个群中第i个个体的特殊因子。且
,通常假定:
1)
,
。
2) 第g个群对应的公共因子
和特殊因子
之间不相关,即
。
因此第g个群中的所有样本用矩阵的形式表示为:
,
(5)
将所有集群的因子分析模型表达式以对角矩阵的形式展开,其矩阵形式变为(1)的矩阵形式,即
其中
,
.
3.2. 参数聚类的构建
由于
为不可观测的公共因子,
是未知的因子载荷阵,普通的最小二乘方法难以实现对参数的估计,本文利用主成分分析法估计
和
。即通过计算
的特征值和特征向量来估计因子载荷矩阵
和公共因子
。然后每个集群下的参数
和
转化为单个
维样本进行聚类,从而对集群进行分类。首先考虑单个群的因子分析模型中的参数
和
,其矩阵形式如(3)所示。其协方差矩阵的特征值为
且
是按大小排列的,
为最大特征值,也是第一主成分的方差,其对应的正交特征向量记为
。如果
足够大,且特殊因子的方差可以忽略,则可以通过用
前k个特征值以及特征向量构成一个特征空间来代替
的列空间,即用
。剩余的部分由
补全,其中
为特殊因子的方差,
,利用谱分解的方法,将协方差矩阵拆为
(6)
其中
的特征值,记
,
为对应的正交特征向量,记
,由于本文中
,则基于主成分法的参数估计量为:
(7)
同时来利用最小二乘思想就可估计出公共因子
的估计量:
(8)
因此,对每个子群的协方差进行上述步骤即可获得集群数据因子分析模型所有未知参数的参数估计,通过参数得到各个群的样本。
4. 集群数据聚类模拟
4.1. 集群数据群生成
通过蒙特卡洛的方法产生模拟的集群数据集。首先考虑单个子群的因子模型构建,对模型单个群的数据群生成,生成每个群
样本。由于每个子群的群样本个数未必相同,于是让样本个数服从
的均匀分布,并假设j共有6个变量,故因子载荷矩阵
为6 × 2阶的,初始参数设置如下:
,
为保证公共因子对不同的子群满足不同的正态分布,故公共因子F满足均值、方差各不相同的正态分布,假定此次我们选取40个数据群,其中群内参数
,
,
,
为6 × 1维的向量,每一个分量均服从均值为0,方差为1的正态分布,即
。在本文中我们分别选取40个群进行聚类,其中集群数据群内个数未必相同。而且集群内部的群内相关性设为:
,其中,
,
这样便产生了单个子群的所有数据集,重复上述过程便可产生多个均值方差各异的子群的模拟数据集。
4.2. 集群数据群聚类
利用主成分法产生不同集群数据下的样本,对每个群样本总体求均值获得单个群的聚类中心,以聚类中心进行K-means聚类。本次选取40个群进行聚类,使用SSE寻找最优的K值,见图2所示,与主成分法中碎石图类似,选取拐点处为最佳聚类数,即K = 4时进行K-means聚类最佳。从K-means聚类结果来看,4个类的群样本数分别为8、6、12、14。对各个群聚类结果可视化,如图3所示。
Figure 2. Sum of squares within a group
图2. 组内平方和图
Figure 3. Visualization of K-means clustering results
图3. K均值聚类结果可视化图
从图3可以看出各个类别之间差异较大,类别内部关联性较强,因此当K = 4时,聚类结果较好。
5. 实例分析
实例源自1963年到1992年调查香烟销售的相关数据,该数据可通过调用R语言中的Ecdat包加载使用,具体为:Cigar = Ecdat::Cigar,此项调查是由Baltagi等[9]以美国46个州作为观测群调查有关香烟消费的数据。该类数据总共由1380个观测个体构成,且每个州有30个样本观测值,每个观测样本有6个指标,指标变量如表1所示。
Table 1. Description of indicator variables
表1. 指标变量说明
变量名 |
定义 |
State |
香烟数据所在州 |
Prince |
香烟的零售价格 |
Pop |
当地的人口数量 |
Pop16 |
当地年龄大于16岁的人口 |
Ndi |
居民可支配收入 |
Sales |
香烟人均销售量 |
Pimin |
每包香烟的最低价格 |
对各个州指标的均值中心进行K-means聚类,进而达到对州的聚类。我们利用类内总平方和SSE的变化趋势判断对各个州分几类更好,由总类内平方和图4可知,在K = 4处时出现拐点,在K = 4之后类内平方和SSE逐渐放缓。据此建立K = 4的聚类。为更加全面评价聚类结果的好坏,我们使用轮廓系数图和轮廓平均系数作为评价标准,如图2所示,由图5可知,轮廓系数平均值为0.31,且各类中样本的轮廓系数大于0,说明该数据群分为4类的效果较好。
通过以上方法对各州进行聚类可视化,具体聚类结果如图6所示。
Figure 4. SSE trend chart
图4. SSE变化趋势图
Figure 5. Contour coefficient diagram
图5. 轮廓系数图
利用K-means聚类图的可视化,在46个州中,其中州5、14、16、23、33、39、44这七个州聚为一类;州7、10、22、24、29、31、40、48、50九个州居委一类;州1、3、4、8、11、13、16、17、19、20、25、27、28、32、35、37、41、42、45、46、49、51共22个州聚为一类;州9、15、18、21、26、30、47八个州聚为一类。
Figure 6. Cluster data clustering
图6. 集群数据聚类图
从上面聚类图我们可以得出美国46个州政府香烟销售聚类的一个情况的,图中46个州共分为4类。Baltagi [10]利用异质系数模型对各州香烟价格变化进行了研究,但缺乏考虑州之间香烟价格相似度问题。在因子分析模型的集群数据群聚类中,在对各州聚类时,不仅研究了州之间的关联性,还对州内部之间的关系进行了考虑。为表明聚类效果较好,我们分别用聚类评价指标轮廓系数和CH法进行聚类评价。
6. 总结和展望
本文对因子分析模型下集群数据群进行聚类研究,利用机器学习中的K-means算法结合统计学方法,对其集群数据群进行聚类。数值模拟验证了模型和聚类算法的有效性。实例表明,聚类中借鉴样本聚类平均法的思想,估出单个群的K-means聚类中心,通过各个群的聚类中心对群进行聚类,达到群与群之间聚类。该群聚类思想为未来相同模型不同参数下的模型聚类提供了研究思路。