当前位置:首页 > Matlab统计工具箱1
'MarkerSize',20) 实例 2
Although the estimates are the same, the use of a covariance matrix rather than raw data doesn't let you request scores or significance level: [Lambda,Psi,T] = factoran(cov(X),2,'xtype','cov') [Lambda,Psi,T] = factoran(corrcoef(X),2,'xtype','cov') 实例 3
斜交旋转Use promax rotation:
[Lambda,Psi,T,stats,F] = factoran(X,2,'rotate','promax',... 'powerpm',4); inv(T'*T) % Est'd corr of F, % no longer eye(2) Lambda*inv(T'*T)*Lambda'+diag(Psi) % Est'd corr of X Plot the unrotated variables with oblique axes superimposed. invT = inv(T)
Lambda0 = Lambda*invT
line([-invT(1,1) invT(1,1) NaN -invT(2,1) invT(2,1)], ... [-invT(1,2) invT(1,2) NaN -invT(2,2) invT(2,2)], ... 'Color','r','linewidth',2) hold on
biplot(Lambda0,... 'LineWidth',2,... 'MarkerSize',20)
xlabel('Loadings for unrotated Factor 1')
ylabel('Loadings for unrotated Factor 2') 13
聚类分析
Hierarchical Clustering cluster clusterdata cophenet inconsistent linkage pdist pdist2
Construct agglomerative clusters from linkages Construct agglomerative clusters from data Cophenetic correlation coefficient Inconsistency coefficient
Create agglomerative hierarchical cluster tree Pairwise distance between pairs of objects Pairwise distance between two sets of observations
squareform Format distance matrix
系统聚类法是聚类分析中应用最为广泛的一种方法.它的基本原理是:首先将一定数量的样品(或指标)各自看成一类,然后根据样品(或指标)的亲疏程度,将亲疏程度最高的两类合并,然后重复进行,直到所有的样品都合成一类.衡量亲疏程度的指标有两类:距离、相似系数.
1.常用距离 1)欧氏距离
假设有两个n维样本x1?(x11,x12,?,x1n)和x2?(x21,x22,?,x2n),则它们的欧氏距离为
d(x1,x2)??(xj?1n1j?x2j)2
2)标准化欧氏距离
假设有两个n维样本x1?(x11,x12,?,x1n)和x2?(x21,x22,?,x2n),则它们的标准化欧氏距离为
sd(x1,x2)?(x1?x2)D?1(x1?x2)T
22其中:D表示n个样本的方差矩阵,D?diagonal(?12,?2,?,?n),?2j表示第j列
的方差.
3)马氏距离
假设共有n个指标,第i个指标共测得m个数据(要求m?n):
14
?xi1??x11???xx??xi??i2?, X?(x1,x2,?,xn)??12???????x??x1m?im?x21x21?x2m?xn1???xn2?
?????xnn?于是,我们得到m?n阶的数据矩阵X?(x1,x2,?,xn),每一行是一个样本数据.m?n阶数据矩阵X的n?n阶协方差矩阵记做Cov(X).
两个n维样本x1?(x11,x12,?,x1n)和x2?(x21,x22,?,x2n)的马氏距离如下:
mahal(x1,x2)?(x1?x2)(Cov(X))?1(x1?x2)T
马氏距离考虑了各个指标量纲的标准化,是对其它几种距离的改进.马氏距离不仅排除了量纲的影响,而且合理考虑了指标的相关性.
4)布洛克距离
两个n维样本x1?(x11,x12,?,x1n)和x2?(x21,x22,?,x2n)的布洛克距离如下:
b(x1,x2)??|x1j?x2j|
j?1n5)闵可夫斯基距离
两个n维样本x1?(x11,x12,?,x1n)和x2?(x21,x22,?,x2n)的闵可夫斯基距离如下:
1p??p? m(x1,x2)??|x?x|2j??1j??j?1?n注:p?1时是布洛克距离;p?2时是欧氏距离. 6)余弦距离
T??xx?? 12d(x1,x2)?1??TT?xxxx1122??这是受相似性几何原理启发而产生的一种标准,在识别图像和文字时,常用夹角余弦为标准.
7)相似距离
15
d(x1,x2)?1?(x1?x1)(x2?x2)T(x1?x1)(x1?x1)T(x2?x2)(x2?x2)T
2.MATLAB中常用的计算距离的函数
假设我们有m?n阶数据矩阵x?(x1,x2,?,xn),每一行是一个样本数据. 在MATLAB中计算样本点之间距离的内部函数为
y=pdist(x) 计算样本点之间的欧氏距离 y=pdist(x,'seuclid') 计算样本点之间的标准化欧氏距离 y=pdist(x,'mahal') 计算样本点之间的马氏距离 y=pdist(x,'cityblock') 计算样本点之间的布洛克距离
y=pdist(x,'minkowski') 计算样本点之间的闵可夫斯基距离 y=pdist(x,'minkowski',p) 计算样本点之间的参数为p的闵可夫斯
基距离
y=pdist(x,'cosine') 计算样本点之间的余弦距离 y=pdist(x,'correlation') 计算样本点之间的相似距离
另外,内部函数yy=squareform(y)表示将样本点之间的距离用矩阵的形式输出.
3.常用的聚类方法
常用的聚类方法主要有以下几种:最短距离法、最长距离法、中间距离法、重心法、平方和递增法等等.
4. 创建系统聚类树
假设已经得到样本点之间的距离y,可以用linkage函数创建系统聚类树,格式为z=linkage(y).
其中:z为一个包含聚类树信息的(m-1)×3的矩阵.例如: z=
2.000 5.000 0.2 3.000 4.000 1.28
则z的第一行表示第2、第5样本点连接为一个类,它们距离为0.2;则z的第二行表示第3、第4样本点连接为一个类,它们距离为1.28.
在MATLAB中创建系统聚类树的函数为
z=linkage(y) 表示用最短距离法创建系统聚类树 z=linkage(y,'complete') 表示用最长距离法创建系统聚类树 z=linkage(y,'average') 表示用平均距离法创建系统聚类树 z=linkage(y,'centroid') 表示用重心距离法创建系统聚类树 16
共分享92篇相关文档