聚类分析Word文件下载.docx
《聚类分析Word文件下载.docx》由会员分享,可在线阅读,更多相关《聚类分析Word文件下载.docx(17页珍藏版)》请在冰点文库上搜索。
3.17
2.80
1.15
6
8.65
1.07
3.50
16
3.84
1.08
1.01
7
4.55
6.16
4.25
17
3.96
1.36
1.09
8
4.75
5.60
2.75
18
3.42
1.68
1.25
9
5.89
1.39
1.23
19
0.89
10
4.05
3.45
2.51
20
1.18
0.78
1.24
仅从1995年世界各国人文发展指数的排序中,选取发达国家和发展中国家各5个,观察两个重要指标:
Born出生时预期寿命(岁),Adult成人识字率(%)。
以此样本为实例样本建立判别模型,对四个待判国家进行判别分析,得出各个待判国家分别属于哪一类国家。
如下表(表5-1)所示,给出了14个国家的出生时预期寿命和成人识字率的数据统计。
表5-114个国家的出生时预期寿命和成人识字率
类别
Category
序号
Num
指标Target
国家名称Country
出生时预期寿命Born
成人识字率Adult
第一类
(发达国家)
美国
76
99
日本
79.5
瑞士
78
阿根廷
72.1
95.9
阿联酋
73.8
77.7
第二类
(发展中国家)
保加利亚
71.2
93
巴西
75.3
94.9
巴拉圭
70
91.2
格鲁吉亚
72.8
南非
62.9
80.6
待判样本
中国
68.5
79.3
罗马尼亚
69.9
96
希腊
77.6
93.8
哥伦比亚
69.3
90.3
统计某高中的30个学生的数学(Math)、物理(Physics)、化学(Chemistry)、语文(Chinese)、历史(History)、英语(English)的成绩,数据如下表(表3-2),试对此数据进行主成分分析。
表3-2某高中30名学生的各科成绩原始数据
Math
Physics
Chemistry
Chinese
History
English
88
66
68
80
89
98
65
81
84
71
48
64
74
90
77
69
85
79
62
58
73
53
67
87
92
45
86
83
59
75
72
56
38
60
57
21
22
91
23
49
24
82
25
26
54
27
28
29
30
MATLAB聚类分析
求解:
对于上述的聚类分析函数,如果单独使用cluster()或者clusterdata()函数,虽然能够得到聚类结果,但不能得到直观的图形表示,因此需要综合使用上述介绍的多个聚类分析函数。
由此编制的MATLAB程序如下:
X=[3.66,2.54,2.21;
3.34,2.27,2.12;
3.29,5.71,1.90;
6.64,1.30,1.90;
3.89,1.31,1.52;
8.65,1.07,3.50;
4.55,6.16,4.25;
4.75,5.60,2.75;
5.89,1.39,1.23;
4.05,3.45,2.51;
12.53,3.28,1.48;
3.02,1.58,1.43;
0.64,1.10,1.04;
3.66,1.32,1.17;
3.17,2.80,1.15;
3.84,1.08,1.01;
3.96,1.36,1.09;
3.42,1.68,1.25;
3.66,0.89,1.10;
1.18,0.78,1.24];
Y=pdist(X);
%计算观测量(样本)之间的距离
Z1=squareform(Y);
%Z1为方阵
Z2=linkage(Y);
%Z2为系统聚类树
H=dendrogram(Z2);
%绘制聚类谱系图(如下图4-1所示)
T=cluster(Z2,10);
%聚类分析
[N,M]=size(X);
%N,M分别为X的行数和列数
NN=1:
1:
N;
%NN为站号序列
TT=[NN'
T]%输出TT矩阵
C=cophenet(Z2,Y)%计算
相关系数
运行结果如下:
(下图4-1为20个样本的聚类冰柱图)
TT=
12
22
36
47
52
69
74
85
97
101
1110
122
138
142
153
162
172
182
192
208
C=0.8997
由上述运行结果可见:
如果消减10个监测点,则余下10个监测点,也就是分为10类。
此时监测点1、2、5、12、14、16、17、18、19为一类;
监测点10单独为一类;
监测点15单独为一类;
监测点7单独为一类;
监测点8单独为一类;
监测点3单独为一类;
监测点4、9为一类;
监测点13、20为一类;
监测点6单独为一类;
监测点11单独为一类。
图4-1聚类冰柱图
4.3.3SPSS聚类分析验证MATLAB分析结果
a.确定因变量与自变量
数据集中各个变量的含义如下表(表4-3)所示:
表4-3数据集变量定义表
b.回归分析的操作步骤
首先拉出菜单Analyze->
Classify->
HierarchicalClustering,然后出现分层聚类分析对话框。
选择Cluster的Cases选项,将Air、Surface_water、Soil添加到Variable中。
选择Method按钮,选择Interval的SquaredEuclideandistance选项。
选择Polts按钮,选中Dendrogram复选框,选择Allclusters和verticalicicleplot,点击Continue。
最终点击OK,完成分析。
c.结果分析
(1)树状聚类图
由图4-2看出,监测点1、2、5、12、14、16、17、18、19为一类;
与MATLAB的结果一致。
图4-2树状聚类图
(2)纵向冰柱图
图4-3冰柱图
(3)聚类进度表
如表4-4看出:
第一步16和19聚在一起,它们的相关系数是0.077;
第二步14和17聚在一起,它们的相关系数为0.098,…,如此类推。
其意义和聚类图相同,只是展示方式为表格形式而已。
表4-4聚类进度表
5.3.2MATLAB判别分析
在命令窗口输入下列命令行:
training=[76,79.5,78,72.1,73.8,71.2,75.3,70.0,72.8,62.9;
99.0,99.0,99.0,95.9,77.7,93.0,94.9,91.2,99.0,80.6]'
;
group=[1,1,1,1,1,2,2,2,2,2]'
sample=[68.5,69.9,77.6,69.3;
79.3,96.0,93.8,90.3]'
class=classify(sample,training,group)
class=[2,2,1,2]'
所以这四个国家分类分别为:
第二类,第二类,第一类,第二类。
5.3.3SPSS判别分析验证MATLAB分析结果
a.确定变量及数据集
数据集中各个变量的含义如下表(表5-2)所示:
表5-2数据集变量定义表
注意:
Category的Values为:
{1,第一类(发达国家)}{2,第二类(发展中国家)}
数据如下表(表5-3)所示。
表5-3数据集表
b.判别分析的操作步骤
(1)读取数据文件,打开DiscriminantAnanlysis对话框,选择分析变量为Born和Adult,分类变量Category。
(2)单击Statistics按钮,展开相应对话框,选择要求输出的统计量FunctionCoefficients:
Fisher’s,即选择Bayes判别法的分析结果。
(3)其它选项默认,然后单击OK按钮,SPSS就开始计算。
c.结果分析
本文采用Bayes判别函数就可以直接进行判别,Bayes判别函数又称为Fisher线性判别函数或分类函数。
就可以求得判别函数,如下表(表5-4)所示。
表5-4判别函数表
于是我们可以写出两种分类的判别函数式如下:
第一类(发达国家):
F1=5.444*Born-0.362*Adult-190.229
第二类(发展中国家):
F2=4.882*Born-0.214*Adult-162.825
将待判别的国家的两个变量值带入上述两个公式中,得到两个函数值,再对两个函数值进行比较,哪个值最大就可以判别该国家属于哪类国家。
计算结果如下:
中国F1=153.9784,F2=154.6218,F1<
F2;
罗马尼亚F1=155.5546,F2=157.8828,F1<
希腊F1=198.2698,F2=195.9450,F1>
哥伦比亚F1=154.3516,F2=156.1734,F1<
F2。
MATLAB主成分分析
利用
中的
命令实现。
具体操作程序如下:
Math=[88,80,76,84,76,89,85,73,84,92,67,98,87,69,88,67,66,70,78,80,89,69,89,77,85,56,67,77,60,88];
Physics=[66,76,76,89,74,70,96,53,96,76,87,83,78,87,67,89,78,87,89,73,87,66,87,68,75,87,78,99,65,67];
Chemistry=[76,76,65,89,48,88,79,67,85,79,45,76,78,75,78,76,80,56,76,57,78,74,67,67,67,77,76,78,68,59];
Chinese=[76,89,81,71,88,78,68,87,74,98,86,70,75,78,72,85,74,78,77,86,45,83,49,88,67,87,76,67,60,77];
History=[76,98,88,48,90,77,62,78,69,73,79,69,69,89,87,77,56,87,60,73,62,78,60,82,56,89,45,88,77,80];
English=[68,65,93,64,77,69,58,85,88,68,88,59,58,92,59,76,38,78,58,76,57,91,89,99,69,54,65,76,49,69];
X=[Math;
Physics;
Chemistry;
Chinese;
History;
English]'
stdr=std(X);
%求各个变量标准差
[n,m]=size(X);
sddata=X./stdr(ones(n,1),:
);
%标准差变换
[p,princ,egenvalue]=princomp(sddata);
%调用主成分分析函数
pp=p(:
1:
2);
%输出前两个主成分系数
sc=princ(:
%输出前两个主成分得分
egenvalue%输出特征根
per=100*egenvalue/sum(egenvalue);
%输出各个主成分贡献率
执行后所得到所要结果,这里是前两个主成分、主成分得分、特征根、各主成分贡献率。
即
%输出前两个主成分系数
pp=
-0.29130.5826
-0.2836-0.7792
-0.44950.1199
0.47450.1340
0.4982-0.0060
0.3991-0.1451
%输出前两个主成分得分(省略部分)
sc=
-0.12951.5313
1.12000.5402
…………
0.78211.2685
%输出特征根
egenvalue=[2.2543,1.0076,0.9705,0.7834,0.5505,0.4337]'
%输出各个主成分贡献率
per=[37.5717,16.7932,16.1747,13.0574,9.1743,7.2288]'
第一主成分贡献率为37.5717%,第二主成分贡献率为16.7932%,第三主成分贡献率为16.1747%,第四主成分贡献率为13.0574%,前四个主成分累积贡献率达83.597%。
%输出特征根图
N=[1:
6];
%6个主成分
plot(N,egenvalue,'
-r*'
)%输出特征根图(图3-1)
title('
ScreePlot'
),xlabel('
ComponentNum'
),ylabel('
Egenvalue'
)
图3-1碎石图
%输出主成分荷载图(图3-2)
plot(p1,p2,'
ro'
)%p1,p2分别为前两个主成分系数
ComponentPlot'
Component1'
Component2'
图3-2主成分荷载图
如上图所示,左面三个点是数学、物理、化学,右面的三个点是语文、英语、历史,各个点的坐标就是前两个主成分系数中的数值。
由此可知,第一个主成分主要与属于理科的学科有关,可命名为理科主成分,而第二个主成分主要与属于文科的学科有关,可命名为文科主成分。
有了对主成分的这个认识,我们就可以利用主成分的分析结果,进行进一步分析,例如可以判断不同学生的偏科倾向。
还可以根据前两个主成分得分,用其贡献率加权,即得30个学生各自的总得分:
。
并可以根据总得分的高低对学生进行综合评价。
3.3.3SPSS主成分分析验证MATLAB分析结果
a.确定变量
数据集中各个变量的含义如下表(表3-3)所示。
表3-3数据集变量定义表
b.主成分分析的操作步骤
数据如上表(表3-2)中30个学生的各科成绩。
首先拉出菜单:
Analysis->
DataReduction->
Factor,进入主对话框;
然后将Math、Physics、Chemistry、Chinese、History、English都选人Variables框中。
再点击Extraction按钮,在Method框中选择Principalcomponents,在Analyze框中选择Correlationmatrix,在Display框中勾选Screeplot,在Extract框中选择默认的抽取特征根大于1的主成分,然后点击Continue。
再点击Rotation按钮打开对话框,勾选Loadingplot(s),其他选项都选择默认值。
然后按Continue。
最终点击OK,完成主成分分析。
c.分析结果的解释
如下表(表3-4)是特征值和方差贡献度表,这里的InitialEigenvalues就是数据相关阵的特征值。
从表3-4中可以看到前四个成分特征值累积占了总方差的83.597%。
后面的特征值的贡献越来越少,由于我们选择了特征值大于1作为主成分的抽取条件,所以这里SPSS抽取了两个主成分,其特征值分别为2.254和1.008。
从特征值的碎石图(图3-3)也可以看出前两个主成分是合理的。
表3-4特征根与方差贡献度
图3-3碎石图
如下表(表3-5)可以看出,第一主成分对各个变量的解释的都很充分,而第二主成分与原始变量相关度要低一些。
与MATLAB的分析结果相符。
表3-5主成分荷载
如图3-4看出,与MATLAB分析结果一致。
图3-4主成分荷载图