【数据分析】多元统计分析之聚类分析及R实现
一、 聚类分析的概念和类型
(1) 概念
聚类分析法(cluster analysis)是研究物以类聚的一种现代统计分析方法。过去人们主要靠经验和专业知识作定性分类处理,很少利用数学方法,定性分类更难以实现准确分类。为了克服定性分类的不足,多元统计分析逐渐引进数值分析类。聚类分析方法有系统聚类法,快速聚类法,模糊聚类法等。本文我们暂且讨论前两种系统聚类和K-means聚类。
(2) 我们通常根据对象将聚类分析分为两类:一类是对样品进行分类处理,叫Q型;另一类是对变量进行分类处理,叫R型。本文我们以R型为例。
二、 系统聚类法的基本思想及步骤
(1) 我们常用的一种方法是在样本距离的基础上定义类与类的距离。首先将N个样本分成N类,每个样本自成一类,然后每次将具有最小距离的两项合并,合并后重新计算类与类的距离,这个过程一直持续到将所有的样品归为一类为止,并把整个过程化成一张图。
(2) 在聚类分析中可以用很多种距离法来定义计算,本文我们介绍两种常用的距离法最短距离法和离差平方和法(Ward法)。(常用欧式距离计算)
a、 最短距离法用D(p,q)=min{d}来刻画p.q两类之间最临近的距离,若p类与q类合并为s类,则r类与其他类s的距离为D(r,s)=min{d(p,s),d(q,s)}
b、 离差平方和法。该方法来源于方差分析,如果分类正确,同类样品的离差平方和应当较小,类与类的离差平方和应该较大。具体做法为先将n个样本各自成一类,然后每次缩小一类,每缩小一类,离差平方和就要增大,选择使方差增加最小的两类合并,直到所有的样品归为一类为止。
(3) 系统聚类法的基本步骤
a、 计算N个样品之间的距离,记为D;
b、 构造N个类,每个类只包含一个样品;
c、 合并距离最近的两类为一个新类;
d、 计算新类与当前各类的距离,若类个数为1,则画出聚类图,否则重新计算转到(3)
e、 画出聚类图。
(4) R语言实现过程(本文以31个城市2007年的生活消费表为例)
y=read.table(“clipboard”,header=T) #载入源数据
plot(y) #做出两两变量之间的图像关系
Library(mvstats) #调用mvstats包
H.clust(y,”euclidean”,”ward”,plot=T) #ward法
H.clust(y,”euclidean”,”single”,plot=T) #最短距离法
三、 Kmeans聚类法的原理及步骤
(1)Kmeans聚类法的原理
a、kmeans算法以K为参数,把n个对象分成k个聚类,以使聚类内有较高的相似度。首先,随机的选择K个对象,每个对象初始的代表了一个簇的平均值或中心。
b、对剩余的对象,根据其与各个聚类中心的距离将其赋给最近的簇。然后重新计算每个簇的平均值作为聚类的中心进行聚类.
C、 这个过程不断重复。
(2) R语言实现及模拟分析
x1=matrix(rnorm(1000,0,0.3),ncol=10) #模拟正态随机数矩阵x1
x2=matrix(rnorm(1000,1,0.3),ncol=10) #模拟正态随机数矩阵x2
x=rbind(x1,x2) #合并x1,x2
cl=kmeans(x,2) #kmeans聚类
pc1=rep(“1”,100)
pc2=rep(“2”,100)
help(plot)
help(rep)
pch1=rep(“1”,100)
pch2=rep(“2”,100)
plot(x,pch=c(pch1,pch2),cex=0.8)
points(cl$centers,col=’red’,pch=”*”,cex=3)
从聚类的结果看,kmeans聚类方法可以准确的把均值0和均值1的两类数据聚类开。其中的*是两个类的中心。
数据人网作者:薛丽丹
暨南大学统计学研究生,数据人网编辑,热爱数据分析和数据科学。
严禁修改,可以转载,请注明出自数据人网和原文链接。
今日数据人网精选推荐:
《教你如何用R进行数据挖掘》
《多元统计分析之因子分析及R实现》
点击【阅读原文】,查看更多。
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!