R软件系统聚类分析剖析

时间:2022-07-27 05:47:00

导语:R软件系统聚类分析剖析一文来源于网友上传,不代表本站观点,若需要原创文章可咨询客服老师,欢迎参考。

R软件系统聚类分析剖析

提要多元统计聚类方法已被广泛应用于自然科学和社会科学的各个领域,而在现实处理多元数据聚类分析中,离不开统计软件的支持;R软件由于其免费、开源、强大的统计分析及其完美的作图功能已得到越来越多人的关注与应用;本文结合实例介绍了R软件在多元统计系统分析中的应用。

关键词:R软件;系统聚类分析;多元统计

引言

多元统计分析是统计学的一个重要分支,也称多变量统计分析;在现实生活中,受多种指标共同作用和影响的现象大量存在,多元统计分析就是研究多个随机变量之间相互依赖关系及其内在统计规律的重要学科,其中最常用聚类分析方法,由于多元统计聚类分析方法一般涉及复杂的数学理论,一般无法用手工计算,必须有计算机和统计软件的支持。

在统计软件方面,常用的统计软件有SPSS、SAS、STAT、R、S-PLUS,等等。R软件是一个自由、免费、开源的软件,是一个具有强大统计分析功能和优秀统计制图功能的统计软件,现已是国内外众多统计学者喜爱的数据分析工具。本文结合实例介绍R软件在多元统计聚类分析中的应用。

一、系统聚类分析

聚类分析又称群分析,它是研究(样品或指标)分类问题的一种多元统计方法,所谓类,通俗地说,就是指相似元素的集合。在社会经济领域中存在着大量分类问题,比如若对某些大城市的物价指数进行考察,而物价指数很多,有农用生产物价指数、服务项目价指数、食品消费物价指数、建材零售价格指数等等。由于要考察的物价指数很多,通常先对这些物价指数进行分类。总之,需要分类的问题很多,因此聚类分析这个有用的工具越来越受到人们的重视,它在许多领域中都得到了广泛的应用。

聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等;最常用最成功的聚类分析为系统聚类法,系统聚类法的基本思想为先将n个样品各自看成一类,然后规定样品之间的“距离”和类与类之间的距离。选择距离最近的两类合并成一个新类,计算新类和其他类(各当前类)的距离,再将距离最近的两类合并。这样,每次合并减少一类,直至所有的样品都归成一类为止。

系统聚类法的基本步骤:

1、计算n个样品两两间的距离。

2、构造n个类,每个类只包含一个样品。

3、合并距离最近的两类为一新类。

4、计算新类与各当前类的距离。

5、重复步骤3、4,合并距离最近的两类为新类,直到所有的类并为一类为止。

6、画聚类谱系图。

7、决定类的个数和类。

系统聚类方法:1、最短距离法;2、最长距离法;3、中间距离法;4、重心法;5、类平均法;6、离差平方和法(Ward法)。

二、基于R语言的系统聚类分析程序

R软件及其相关包提供了各种聚类方法,主要是系统聚类方法、快速聚类方法、模糊聚类方法,常用的是系统聚类方法。

R软件实现系统聚类的程序如下:

hclust(d,method="complete",members=NULL)

其中,d是由“dist”构成的距离结构,具体包括绝对值距离、欧氏距离、切比雪夫距离、马氏距离、兰氏距离等,默认为欧氏距离;method包括类平均法average、重心法centroid、中间距离法median、最长距离法complete、最短距离法single、离差平方和法ward等,默认是最长距离法complete。

三、应用举例

表1是山东省2008年各市居民家庭平均每人全年消费性支出,利用所给数据对各市进行系统聚类。(表1)

R语言程序如下:

>X<-read.delim("clipboard",header=T)

>row.names(X)<-c("济南","青岛","淄博","枣庄","东营","烟台","潍坊","济宁","泰安","威海","日照","莱芜","临沂","德州","聊城","滨州","菏泽")

>d<-dist(scale(X))

>hc1<-hclust(d,"single")#最短距离法

>hc2<-hclust(d,"complete")#最长距离法

>hc3<-hclust(d,"median")#中间距离法

>hc4<-hclust(d,"ward")#Ward法

>opar<-par(mfrow=c(2,2))

>plot(hc1,hang=-1);plot(hc2,hang=-1)

>plot(hc3,hang=-1);plot(hc4,hang=-1)

输出结果(图1)

结果分析

由图1可以看出,不同方法的分类大体一样,结合山东省具体实际情况,最长距离法分类效果较好。

在系统聚类分析中,利用R软件是最方便、最简单、最易学的,而且根据不同的情况,可以自己修改别人的程序,比较方便;可以在处理多元数据聚类分析中,利用R软件具有很大的优势。