什么是聚类分析?
聚类分析(cluster analysis)是把研究对象(样本或变量)分组成为由类似的对象组成多个类的一种统计方法。聚类分析根据对象不同氛围两类:
- Q型聚类分析:对样本进行聚类
- R型聚类分析:对变量进行聚类
一般情况下,使用Q型聚类分析法。
如何量化相似性?
相似性度量一般分为两种:
- 距离:常用来度量样本
- 相似系数:常用来度量变量
样本变量
分类:
- 间隔尺度变量:连续型变量
- 名义尺度变量:类别变量
- 有序尺度变量:优劣变量
距离
- Minkowski距离,即明氏距离
- 兰氏距离,canberra
- 马氏距离
- 斜交空间距离
以上几种距离一般要求变量是间隔适度的,如果是名义或有序尺度变量的情况,则要用其它距离定义。
相似系数
- 夹角余弦
- 相关系数
系统聚类法
系统聚类法是聚类分析方法中最常用的一种,其基本思想是:开始将n个样品各自作为一类,并规定样品之间的距离和类与类之间的距离,然后将距离最近的两类合并成一个新类,计算新类与其他类之间的距离;重复,直至所有的样品合并为一类。
八种聚类分析法:- 最短距离法,single linkage method
- 最长距离法,complete linkage method
- 中间距离法,median method
- 类平均法,average linkage method
- 重心法,centroid hierarchical method
- 离差平方和法,ward method
操作
rdist(x,method = "euclidean", diag=FALSE, upper=FALSE, p=2) #距离阵
x为数据矩阵,数据框.method为计算方法,包括"euclidean","maximum","manhattan","canberra","binary","minkowski".diag为是否包含对角线元素.upper为是否需要上三角.p为Minkowski距离的幂次.
rhclust(d, method="complete",...) #系统聚类函数
d为距离阵. d <- dist(x)method为系统聚类方法,包括"ward","single","complete","average","mcquitty","median",or"centroid".