R型聚类分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Tianweidadada/article/details/82560436

R型聚类分析是聚类分析的一种,一般对指标进行分类。

在实际工作中,为了避免漏掉某些重要因素,往往在一开始选取指标的时候尽可能考虑所有的相关因素,而这样做的结果,则是变量过多,变量间的相关度较高,给统计分析与建模带来极大不便,因此人们希望能够研究变量间的相似关系,按照变量的相似关系把他们聚合成若干类,进而找出影响系统的主要因素,引入了R型聚类方法。

举例:

服装标准制定中的变量聚类法:

以下表格是女子14个部位的测量资料,各部位的相关系数表,其中,x1为上身长,x2位手臂长,x3为胸围,x4为颈围,x5为总肩宽,x6为总胸宽,x7为后背宽,x8为前腰节高,x9为后腰节高,x10为全身长,x11为身高,x12为下身长,x13为腰围,x14为臀围。

clc,clear
a = [
        1 0 0 0 0 0 0 0 0 0 0 0 0 0
        0.366 1 0 0 0 0 0 0 0 0 0 0 0 0
        0.242 0.233 1 0 0 0 0 0 0 0 0 0 0 0
        0.28 0.194 0.59 1 0 0 0 0 0 0 0 0 0 0
        0.36 0.324 0.476 0.435 1 0 0 0 0 0 0 0 0 0 
        0.282 0.262 0.483 0.47 0.452 1 0 0 0 0 0 0 0 0
        0.245 0.265 0.54 0.478 0.535 0.663 1 0 0 0 0 0 0 0
        0.448 0.345 0.452 0.404 0.431 0.322 0.266 1 0 0 0 0 0 0
        0.486 0.367 0.365 0.357 0.429 0.283 0.287 0.82 1 0 0 0 0 0
        0.648 0.662 0.216 0.032  0.429 0.283 0.263 0.527 0.547 1 0 0 0 0
        0.689 0.671 0.243 0.313 0.43 0.302 0.294 0.52  0.558 0.957 1 0 0 0
        0.486 0.636 0.174 0.243 0.375 0.296 0.255 0.403 0.417  0.857 0.852 1 0 0
        0.133 0.153 0.732 0.477 0.339 0.392 0.446  0.266 0.241 0.054 0.099 0.055 1 0
        0.376 0.252 0.676 0.581 0.441 0.447 0.44 0.424 0.372 0.363 0.376 0.321 0.672 1
        ]
d=1-abs(a);  %进行数据变换,把相关系数转化为距离 系数越大 代表距离越近
d=tril(d);   %提出d矩阵的下三角部分
b=nonzeros(d); %去掉d中的0元素
b=b';  %化成行向量
z=linkage(b,'complete');  %按最长距离法聚类
y=cluster(z,'maxclust',2);%把变量划分成两类,注:也可3类,底下记得修改
ind1=find(y==1);  %显示第一类对应的变量编号
ind2=find(y==2);  %显示第二类对应的变量编号
ind1=ind1';
ind2=ind2';
h=dendrogram(z);  %画聚类图
ind1,ind2
set(h,'Color','k','LineWidth',2.0);%把聚类图线的颜色修改成黑色,线宽加粗

猜你喜欢

转载自blog.csdn.net/Tianweidadada/article/details/82560436