巧用Matlab进行主成分降维

合集下载

主成分分析方法及matlab运用解释

主成分分析方法及matlab运用解释

主成分剖析方法及 matlab 运用解说主成分剖析方法在很多实质问题中 ,多个变量之间就是拥有必定的有关关系的。

所以 ,我们就会很自然地想到 ,可否在各个变量之间有关关系研究的基础上 ,用较少的新变量取代本来许多的变量 ,并且使这些较少的新变量尽可能多地保存本来许多的变量所反应的信息?事实上 ,这类想法就是能够实现的 ,这里介绍的主成分剖析方法就就是综合办理这类问题的一种强有力的方法。

一、主成分剖析的基来源理主成分剖析就是把本来多个变量化为少量几个综合指标的一种统计剖析方法,从 数学角度来瞧 ,这就是一种降维办理技术。

假设有 n 个地理样本 ,每个样本共有 p 个变量描绘 ,这样就组成了一个 n ×p 阶的地理数据矩阵 :x 11 x 12 Lx 1 p x 21 x 22 L x 2 pXL L LL x n1 x n2 Lx np(1)怎样从这么多变量的数据中抓住地理事物的内在规律性呢?要解决这一问题 ,自然要在 p 维空间中加以观察 ,这就是比较麻烦的。

为了战胜这一困难 ,就需要进行降维办理 ,即用较少的几个综合指标来取代本来许多的变量指标 ,并且使这些较少的综合指标既能尽量多地反应本来许多指标所反应的信息 ,同时它们之间又就是相互独立的。

那么 ,这些综合指标 (即新变量 )应怎样选用呢?明显 ,其最简单的形式就就是取本来变量指标的线性组合 ,适合调整组合系数 ,使新的变量指标之间互相独立且代表性最好。

假如记本来的变 量指 标为 x 1,x 2, ,x p , 它们 的综 合指标 —— 新变 量指 标为 z 1,z 2, ,zm(m ≤ p)。

则z 1l 11x 1 l 12 x 2 L , l 1 p x pz 2 l 21x1 l 22 x 2 L , l 2 p x p .........................................z m l m1x 1 l m2 x 2 L , l mp xp (2)在 (2)式中 ,系数 l ij 由以下原则来决定 : (1)z i 与 z j (i ≠j ;i,j=1,2, ,m)互相没关 ;(2)z 1 就是 x 1,x 2, ,x p 的全部线性组合中方差最大者;z 2就是与 z 1 不有关的x ,x, ,x的所有线性组合中方差最大者 ;;zm 就是与 z ,z , z都不有关1 2 pp 的所有线性组合中方差最大者。

随机森林matlab降维,七种降维方法

随机森林matlab降维,七种降维方法

随机森林matlab降维,七种降维⽅法之前介绍过关于降维和特征选择,这⾥对⼏种降维⽅法进⾏介绍,与之前的⽅法⼤致相同。

1 缺失值⽐例该⽅法的是基于包含太多缺失值的数据列包含有⽤信息的可能性较少。

因此,可以将数据列缺失值⼤于某个阈值的列去掉。

阈值越⾼,降维⽅法更为积极,即降维越少。

该⽅法⽰意图如下:关于缺失值阈值的确定,使⽤的⽅法就是实验不同的值,上图中的⽂字描述写明了过程1)从0.1到0.9实验阈值,每步长0.12)计算特征的缺失率,去除⾼于阈值的特征3)⽤训练数据训练模型,测试数据对模型性能进⾏评测4)选择性能最好时对应的阈值2 低⽅差滤波该⽅法假设数据列变化⾮常⼩的列包含的信息量少。

因此,所有的数据列⽅差⼩的列被移除。

需要注意的⼀点是:⽅差与数据范围相关的,因此在采⽤该⽅法前需要对数据做归⼀化处理。

算法⽰意图如下:3 ⾼相关滤波⾼相关滤波认为当两列数据变化趋势相似时,它们包含的信息也显⽰。

这样,使⽤相似列中的⼀列就可以满⾜机器学习模型。

对于数值列之间的相似性通过计算相关系数来表⽰,对于名词类列的相关系数可以通过计算⽪尔逊卡⽅值来表⽰。

相关系数⼤于某个阈值的两列只保留⼀列。

同样要注意的是:相关系数对范围敏感,所以在计算之前也需要对数据进⾏归⼀化处理。

4 随机森林/组合树 (Random Forests)⼀种常⽤的降维⽅法是对⽬标属性产⽣许多巨⼤的树,然后根据对每个属性的统计结果找到信息量最⼤的特征⼦集。

例如,我们能够对⼀个⾮常巨⼤的数据集⽣成⾮常层次⾮常浅的树,每颗树只训练⼀⼩部分属性。

如果⼀个属性经常成为最佳分裂属性,那么它很有可能是需要保留的信息特征。

对随机森林数据属性的统计评分会向我们揭⽰与其它属性相⽐,哪个属性才是预测能⼒最好的属性。

关于随机森林计算特征重要性的解释,之前的⼀篇介绍过。

5 P CA6 反向特征消除即backward特征选择,⾸先采⽤全部特征进⾏训练,然后每次去除⼀个特征,选取去除⼀个特征后效果最好的特征集,不断迭代这个过程。

主成分分析matlab理论+实验

主成分分析matlab理论+实验
x2
x1
若将该坐标系按逆时针方向旋转某个角度θ变成新坐标系,变 换公式为
Y1 X 1 cos X 2 sin Y2 X 1 sin X 2 cos
y2 x2
y1
x1
记x1,x2,…,xP为原变量指标,z1,z2,…,zm(m<p)为新
变量指标
z1 a11 x1 a12 x2 L a1 p x p z2 a21 x1 a22 x2 L a2 p x p ............ z a x a x L a x m1 1 m2 2 mp p m
七. 主成分分析的应用
1. 综合评价 进行综合评价时,如何选择评价指标以及对这些指标进 行综合评价?一般做法是通过对各指标加权的办法。 由于主成分分析能从选定的指标体系中归纳出大部分信 息,根据主成分提供的信息进行综合评价,不失为一个可行 的选择。
利用主成分进行综合评价时,对主成分进行加权综合, 权数根据其方差贡献率确定 。
例5-3 用Matlab自带数据进行主成分分析,数据文件. hald文件包含影响温度的4个因素,保存在ingredients变量 中。代码见5.3.m
第一步:考虑变量之间相关性 load hald %载入Matlab 自带的数据文件 corrcoef(ingredients) % 自变量相关系数矩阵 ans = 1.0000 0.2286 -0.8241 -0.2454 0.2286 1.0000 -0.1392 -0.9730 -0.8241 -0.1392 1.0000 0.0295 -0.2454 -0.9730 0.0295 1.0000 第二步:主成分分析 [pc,score,latent,tsquare]=princomp(ingredients)

稳健主成分 matlab

稳健主成分 matlab

稳健主成分 matlab稳健主成分分析(Robust Principal Component Analysis, RPCA)是一种用于处理含有异常值或噪声的数据的降维方法。

它能够通过将数据拆分为一个低秩矩阵和一个稀疏矩阵的组合来提取出数据的主要特征。

在MATLAB中,可以使用`robrpca`函数来进行稳健主成分分析。

该函数的基本语法如下:```matlab[L, S] = robrpca(X, lambda, maxIter, tol)```其中,`X`是输入的数据矩阵,`lambda`是一个正则化参数,`maxIter`是最大迭代次数,`tol`是收敛阈值。

函数的输出是一个低秩矩阵`L`和一个稀疏矩阵`S`,分别表示数据矩阵的主要成分和异常值。

以下是一个使用`robrpca`函数进行稳健主成分分析的示例:```matlab% 生成含有异常值的数据X = randn(100, 50);X(10, 10) = 10; % 添加一个异常值% 进行稳健主成分分析[L, S] = robrpca(X, 1, 100, 1e-6);% 显示结果subplot(1, 2, 1);imagesc(L);title('Low-rank Matrix');subplot(1, 2, 2);imagesc(S);title('Sparse Matrix');```该示例中,首先生成一个大小为100x50的随机数据矩阵,并在其中添加一个异常值。

然后使用`robrpca`函数对数据进行稳健主成分分析,并将结果分别显示在两个子图中。

需要注意的是,稳健主成分分析方法的运行时间可能较长,特别是在处理大规模数据时。

因此,在实际应用中,可能需要适当调整`maxIter`和`tol`参数的值来平衡运行时间和结果精度。

主成分分析及matlab程序

主成分分析及matlab程序
从数学角度来看,主成分分析是一种降维 处理技术。
举例:
某人要做一件上衣要测量很多尺寸,如身长、 袖长、胸围、腰围、肩宽、肩厚等十几项指标, 但某服装厂要生产一批新型服装绝不可能把尺寸 的型号分得过多 ,而是从多种指标中综合成几 个少数的综合指标,做为分类的型号,利用主成 分分析将十几项指标综合成3项指标,一项是反 映长度的指标,一项是反映胖瘦的指标,一项是 反映特体的指标。
2195.7 1408 422.61 4797 1011.8 119.0
5381.72 2699 1639.8 8250 656.5 114.0
1606.15 1314 382.59 5105 556.0 118.4
364.17 1814 198.35 5340 232.1 113.5
3534.00 1261 822.54 4645 902.3 118.5
111.6 1396.35
116.4 554.97
111.3 64.33
117.0 1431.81
117.2 324.72
118.1 716.65
114.9
5.57
117.0 600.98
116.5 468.79
116.3 105.80
115.3 114.40
116.7 428.76
1.将原始数据标准化。 2.建立指标之间的相关系数阵R如下:
正交化特征向量(通常用Jacobi法求特征向量):
a11
a12
1
=
a21
,
2
=
a22
,
a
p1
a
p
2
a1p
,
p
=
a2
p
,
a

主成分分析和MATLAB应用

主成分分析和MATLAB应用

主成分分析类型:一种处理高维数据的方法。

降维思想:在实际问题的研究中,往往会涉及众多有关的变量。

但是,变量太多不但会增加计算的复杂性,而且也会给合理地分析问题和解释问题带来困难。

一般说来,虽然每个变量都提供了一定的信息,但其重要性有所不同,而在很多情况下,变量间有一定的相关性,从而使得这些变量所提供的信息在一定程度上有所重叠。

因而人们希望对这些变量加以“改造”,用为数极少的互补相关的新变量来反映原变量所提供的绝大部分信息,通过对新变量的分析达到解决问题的目的。

一、总体主成分1.1 定义设 X 1,X 2,…,X p 为某实际问题所涉及的 p 个随机变量。

记 X=(X 1,X 2,…,Xp)T ,其协方差矩阵为()[(())(())],T ij p p E X E X X E X σ⨯∑==--它是一个 p 阶非负定矩阵。

设1111112212221122221122Tp p Tp pT pp p p pp p Y l X l X l X l X Y l X l X l X l X Y l X l X l X l X⎧==+++⎪==+++⎪⎨⎪⎪==+++⎩(1) 则有()(),1,2,...,,(,)(,),1,2,...,.T T i i i i TT T i j ijij Var Y Var l X l l i p Cov Y Y Cov l X l X l l j p ==∑===∑= (2)第 i 个主成分: 一般地,在约束条件1T i i l l =及(,)0,1,2,..., 1.T i k i k Cov Y Y l l k i =∑==-下,求 l i 使 Var(Y i )达到最大,由此 l i 所确定的T i i Y l X =称为 X 1,X 2,…,X p 的第 i 个主成分。

1.2 总体主成分的计算设 ∑是12(,,...,)T p X X X X =的协方差矩阵,∑的特征值及相应的正交单位化特征向量分别为120p λλλ≥≥≥≥及12,,...,,p e e e则 X 的第 i 个主成分为1122,1,2,...,,T i i i i ip p Y e X e X e X e X i p ==+++= (3)此时(),1,2,...,,(,)0,.Ti i i i Ti k i k Var Y e e i p Cov Y Y e e i k λ⎧=∑==⎪⎨=∑=≠⎪⎩ 记 12(,,...,)T p Y Y Y Y = 为主成分向量,则 Y=P T X ,其中12(,,...,)p P e e e =,且12()()(,,...,),T T p Cov Y Cov P X P P Diag λλλ==∑=Λ=定义第 i 个主成分的贡献率:1ipii λλ=∑;前m 个主成分累计贡献率:11mii pii λλ==∑∑,它表明前 m 个主成分Y 1,Y 2,…,Y m 综合提供 X 1,X 2,…,X p 中信息的能力。

matlab主成分分析

matlab主成分分析主成分分析(PrincipalComponentAnalysis,PCA)是一种用来降低复杂数据集的维度的常用统计工具。

它的主要目的是把一组可能相关的变量(比如一组测量的实验数据)降维到一个更低维的表示中,从而找出数据中有意义的规律。

主成分分析可以从大量变量中选择出主导变量,可以用来剔除噪声,消除数据间的相关性,提取隐藏变量,简化数据集,以及建立统计模型。

Matlab一种常用的计算机科学编程语言,拥有强大的数学和图形处理功能,能够解决各种复杂的计算问题。

Matlab内置函数和第三方工具箱可以被用来实现主成分分析。

Matlab 中原生的主成分分析实现可以分为两步:一是数据准备,二是主成分分析。

数据准备是主成分分析过程中非常重要的一步,可以使用Matlab 中的函数实现。

主要包括提取变量、清洗数据和数据标准化三个部分。

提取变量可以通过从原始数据中选择需要的变量来实现,即将原始数据拟合到需要的维度中;清洗数据是指将原始数据中含有错误或者不可信的数据剔除;数据标准化则是指将原始数据的连续型变量转换成统一的数值范围,以便于分析。

主成分分析是从输入数据中学习到一组新的变量,这些变量能够说明输入数据中大部分的变量变化。

Matlab中主成分分析可以通过调用标准统计工具箱(Statistics and Machine Learning Toolbox)中的pca函数来实现,该函数能够从原始数据中抽取有意义的变量。

通过pca函数,可以在输入数据中学习到有意义的变量,并得到它们的系数和贡献率,以此说明主成分分析后数据的变化程度。

主成分分析的应用非常广泛,涉及到很多不同的领域。

如在统计学中用以进行常规数据分析,在计算机视觉中用来进行图像分析,在生物学中用于基因表达等。

Matlab供了强大的数学和图形处理能力,能够满足上述应用领域的需求,使用者可以通过原生函数和第三方工具箱快捷的实现主成分分析。

当然,主成分分析也有一些缺点,如把复杂的变量降维可能会损失一些原始数据的信息,也存在隐藏的偏差,因而也会影响分析的准确性。

matlab pca函数详解 -回复

matlab pca函数详解-回复PCA (Principal Component Analysis)是一种常用的降维技术,它通过线性变换将原始数据转换为一组新的无关变量,称为主成分。

本文将详细介绍Matlab中的PCA函数,并逐步解释其使用方法和原理。

一、PCA函数介绍在Matlab中,pca函数用于执行PCA操作。

其语法如下:[coeff,score,latent,tsquared,explained,mu] = pca(X)其中,X表示输入的数据矩阵。

接下来,让我们逐个解释每个输出变量的含义和用法。

1. coeff:主成分系数矩阵coeff是一个大小为[p,p]的矩阵,其中p是原始数据矩阵X的列数。

每一列是一个主成分向量,按照特征值降序排列。

通过将数据投影到主成分系数矩阵的列向量上,可以得到降维后的数据。

2. score:主成分得分矩阵score是一个大小为[n,p]的矩阵,其中n是原始数据矩阵X的行数。

它表示每个样本在每个主成分上的得分。

得分可以用于可视化和分类等任务。

3. latent:主成分的特征值向量latent是一个长度为p的向量,其中存储了每个主成分的特征值。

特征值可以用来评估每个主成分的重要性。

4. tsquared:每个样本的Hotelling T平方统计量tsquared是一个大小为[n,1]的矩阵,其中存储了每个样本在投影空间中的Hotelling T平方统计量。

该统计量可以用于检测异常值。

5. explained:方差解释百分比向量explained是一个长度为p的向量,其中存储了每个主成分解释的方差百分比。

它可以帮助我们选择保留多少主成分。

通常,我们选择解释方差百分比大于某个阈值的主成分。

6. mu:每个特征的均值向量mu是一个长度为p的向量,其中存储了每个特征的均值。

在PCA执行之前,数据会被减去均值,以确保每个特征的均值为零。

二、使用PCA函数进行降维现在,我们将在一个实例数据集上使用PCA函数进行降维,并逐步解释每个步骤的细节。

Matlab主成分分析:详解+实例

主成分分析(PCA)中我们的目标是找到 一个能使个体差异达到最大的变量线性 组合。
主成分分析
总结:
主 原始变量 目标

X1, , Xm
主成分
Z1, ,Zp

线性组合

Z1, , Zp 互不相关
析 的
信息不重合 按‘重要性’排序
求解主 成分

Z1, , Zp
想 Var(Z1) Var(Z2 ) Var(Zp )
r
i r 2(z j , xi ),
j1
这里r(z j , xi )表示zj 与 xi 的相关系数。
主成分分析
1 2 0
例1 设 x [ x1, x2 , x3 ]T 且 R 2 5 0
0 0 0
则可算得1 5.8284,2 0.1716,如果我们仅取第
一个主成分,由于其累积贡献率已经达到97.14%, 似乎很理想了,但如果进一步计算主成分对原变量的
c1 x1+ c2 x2+… +cp xp
我们希望选择适当的权重能更好地区分学生的 成绩. 每个学生都对应一个这样的综合成绩, 记 为s1, s2,…, sn , n为学生人数. 如果这些值很分散, 表明区分好, 即是说, 需要寻找这样的加权, 能使 s1, s2,…, sn 尽可能的分散, 下面来看的统计定义.
x5:交通和通讯,
x6:娱乐教育文化服务,
x7:居住,
x8:杂项商品和服务.
对居民消费数据做主成分分析.
聚类分析
聚类分析
聚类分析
计算的Matlab程序如下:
clc,clear load czjm1999.txt
%把原始数据保存在纯文本文件czjm1999.txt中

MATLAB中的矩阵分解与降维技术

MATLAB中的矩阵分解与降维技术随着科学技术的不断发展和数据规模的急剧增加,如何高效地处理和分析大规模数据已成为一个迫切需要解决的问题。

矩阵分解与降维技术在这一领域发挥着重要的作用。

本文将探讨MATLAB中的矩阵分解与降维技术,并介绍其应用于数据处理与分析中的具体实例。

1. 矩阵分解与降维技术简介矩阵分解与降维技术是一种将高维数据转化为低维数据的方法,通过将原始数据投影到一个更低维度的空间中,从而减小数据量的同时保留了数据的关键特征。

矩阵分解与降维技术的主要目标是找到一个能较好地近似原始数据的低维子空间,并且在降维过程中尽量保持数据的信息。

2. 主成分分析(PCA)主成分分析(Principal Component Analysis,PCA)是一种常用的矩阵分解与降维技术,通过线性变换将原始数据映射到一个新的空间中。

在这个新的空间中,数据的维度被降低,并且尽量保留了原始数据的方差。

PCA的核心思想是寻找数据中方差最大的方向作为新的坐标轴,从而使得映射后的数据在这个方向上的方差最大化。

在MATLAB中,使用PCA进行数据降维非常简单。

首先,我们需要导入数据到MATLAB环境中,然后使用PCA函数进行降维处理。

具体的语法如下所示:```[coeff,score,latent] = pca(data);```其中,data表示原始数据矩阵,coeff是相关系数矩阵,score是降维后的数据矩阵,latent是主成分的方差。

3. 奇异值分解(SVD)奇异值分解(Singular Value Decomposition,SVD)是一种将矩阵分解为奇异值和两个酉矩阵的技术,常用于降维、矩阵压缩和数据恢复等领域。

SVD可以对任意大小和形状的矩阵进行分解,并且具有较好的数学性质。

在MATLAB中,使用SVD进行矩阵分解与降维同样非常简单。

我们可以使用svd函数对矩阵进行分解,并得到奇异值、左奇异向量和右奇异向量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

巧用Matlab实现主成分分析 1.概述 Matlab语言是当今国际上科学界 (尤其是自动控制领域) 最具影响力、也是最有活力的软件。它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、与其他程序和语言的便捷接口的功能。Matlab 语言在各国高校与研究单位起着重大的作用。主成分分析是把原来多个变量划为少数几个综合指标的一种统计分析方法,从数学角度来看,这是一种降维处理技术。

1.1主成分分析计算步骤PCA ① 计算相关系数矩阵



pppppprrrrrrrrrR

212222111211

(1) 在(3.5.3)式中,rij(i,j=1,2,…,p)为原变量的xi与xj之间的相关系数,其计算公式为



nknkjkjikinkjkjikiijxxxxxxxxr11221)()(

))((

(2) 因为R是实对称矩阵(即rij=rji),所以只需计算上三角元素或下三角元素即可。 ② 计算特征值与特征向量 首先解特征方程0RI,通常用雅可比法(Jacobi)求出特征值),,2,1(pii

,并使其按大小顺序排列,即0,21p;然后分别求

出对应于特征值i的特征向量),,2,1(piei。这里要求ie=1,即112pjije,其中ije表示向量ie的第j个分量。 ③ 计算主成分贡献率及累计贡献率 主成分iz的贡献率为 累计贡献率为 一般取累计贡献率达85—95%的特征值m,,,21所对应的第一、第

二,…,第m(m≤p)个主成分。

④ 计算主成分载荷 其计算公式为 ),,2,1,(),(pjiexzplijijiij

(3)

得到各主成分的载荷以后,还可以按照(3.5.2)式进一步计算,得到各主成分的得分



nmnnmmzzzzzzzzzZ

212222111211

(4) 2.程序结构及函数作用 在软件Matlab中实现主成分分析可以采取两种方式实现:一是通过编程来实现;二是直接调用Matlab种自带程序实现。下面主要主要介绍利用Matlab的矩阵计算功能编程实现主成分分析。

2.1程序结构 主函数 子函数

2.2函数作用 Cwstd.m——用总和标准化法标准化矩阵 Cwfac.m——计算相关系数矩阵;计算特征值和特征向量;对主成分进行排序;计算各特征值贡献率;挑选主成分(累计贡献率大于85%),输出主成分个数;计算主成分载荷

Cwscore.m——计算各主成分得分、综合得分并排序 Cwprint.m——读入数据文件;调用以上三个函数并输出结果 读者注意,在做主成分分析时一定要看清原理,两个重点,一个是选取85%,一个是matalab严格区分大小写。这是编者读完网上代码后改写的正确代码。

3.源程序

3.1 cwstd.m %cwstd.m,用总和标准化法标准化矩阵 function std=cwstd(vector) cwsum=sum(vector,1); %对列求和 [a,b]=size(vector); %矩阵大小,a为行数,b为列数

Cwprint.m Cwstd.m Cwfac.m Cwscore.m for i=1:a for j=1:b std(i,j)= vector(i,j)/cwsum(j); end end

3.2 cwfac.m %cwfac.m function result=cwfac(vector); fprintf('相关系数矩阵:\n')

std=corrcoef(vector) %计算相关系数矩阵// fprintf('特征向量(vec)及特征值(val):\n') [vec,val]=eig(std) %求特征值(val)及特征向量(vec) newval=diag(val) ; [y,i]=sort(newval) ; %对特征根进行排序,y为排序结果,i为索引 fprintf('特征根排序:\n') for z=1:length(y) newy(z)=y(length(y)+1-z); end fprintf('%g\n',newy) rate=y/sum(y); fprintf('\n贡献率:\n') newrate=newy/sum(newy) sumrate=0; newi=[]; for k=length(y):-1:1 sumrate=sumrate+rate(k); newi(length(y)+1-k)=i(k); if sumrate>0.85 break; end end %记下累积贡献率大85%的特征值的序号放入newi中 fprintf('主成分数:%g\n\n',length(newi)); fprintf('主成分载荷:\n') for p=1:length(newi) for q=1:length(y) result(q,p)=sqrt(newval(newi(p)))*vec(q,newi(p)); end end %计算载荷 disp(result) 3.3 cwscore.m %cwscore.m,计算得分 function score=cwscore(vector1,vector2); sco=vector1*vector2; csum=sum(sco,2); [newcsum,i]=sort(-1*csum); [newi,j]=sort(i); fprintf('计算得分:\n') score=[sco,csum,j] %得分矩阵:sco为各主成分得分;csum为综合得分;j为排序结果

3.4 cwprint.m %cwprint.m function print=cwprint(filename,a,b); %filename为文本文件文件名,a为矩阵行数(样本数),b为矩阵列数(变量指标数) fid=fopen(filename,'r') vector=fscanf(fid,'%g',[a b]); fprintf('标准化结果如下:\n') v1=cwstd(vector) result=cwfac(v1); cwscore(v1,result);

4.程序测试

4.1原始数据 中国大陆35个大城市某年的10项社会经济统计指标数据见下表。

城 市 名 称 年底 总人口 (万人) 非农业 人口比(%) 农 业 总产值 (万元) 工业 总产值 (万元) 客运总量 (万人) 货运总量 (万吨) 地方财政 预算内收入(万元) 城乡居民年底储蓄余额 (万元)

在岗职工人数(万人)

在岗职工工资总额 (万元)

北 京 1 249.90 0.597 8 1 843 427 19 999 706 20 323 45 562 2 790 863 26 806 646 410.80 5 773 301 天 津 910.17 0.580 9 1 501 136 22 645 502 3 259 26 317 1 128 073 11 301 931 202.68 2 254 343 石 家 庄 875.40 0.233 2 2 918 680 6 885 768 2 929 1 911 352 348 7 095 875 95.60 758 877 太 原 299.92 0.656 3 236 038 2 737 750 1 937 11 895 203 277 3 943 100 88.65 654 023 呼和浩特 207.78 0.441 2 365 343 816 452 2 351 2 623 105 783 1 396 588 42.11 309 337 沈 阳 677.08 0.629 9 1 295 418 5 826 733 7 782 15 412 567 919 9 016 998 135.45 1 152 811 大 连 545.31 0.494 6 1 879 739 8 426 385 10 780 19 187 709 227 7 556 796 94.15 965 922 长 春 691.23 0.406 8 1 853 210 5 966 343 4 810 9 532 357 096 4 803 744 102.63 884 447 哈 尔 滨 927.09 0.462 7 2 663 855 4 186 123 6 720 7 520 481 443 6 450 020 172.79 1 309 151 上 海 1 313.12 0.738 4 2 069 019 54 529 098 6 406 44 485 4 318 500 25 971 200 336.84 5 605 445 南 京 537.44 0.534 1 989 199 13 072 737 14 269 11 193 664 299 5 680 472 113.81 1 357 861 杭 州 616.05 0.355 6 1 414 737 12 000 796 17 883 11 684 449 593 7 425 967 96.90 1 180 947 宁 波 538.41 0.254 7 1 428 235 10 622 866 22 215 10 298 501 723 5 246 350 62.15 824 034 合 肥 429.95 0.318 4 628 764 2 514 125 4 893 1 517 233 628 1 622 931 47.27 369 577 福 州 583.13 0.273 3 2 152 288 6 555 351 8 851 7 190 467 524 5 030 220 69.59 680 607 厦 门 128.99 0.486 5 333 374 5 751 124 3 728 2 570 418 758 2 108 331 46.93 657 484 南 昌 424.20 0.398 8 688 289 2 305 881 3 674 3 189 167 714 2 640 460 62.08 479 ,555 济 南 557.63 0.408 5 1 486 302 6 285 882 5 915 11 775 460 690 4 126 970 83.31 756 696 青 岛 702.97 0.369 3 2 382 320 11 492 036 13 408 17 038 658 435 4 978 045 103.52 961 704 郑 州 615.36 0.342 4 677 425 5 287 601 10 433 6 768 387 252 5 135 338 84.66 696 848 武 汉 740.20 0.586 9 1 211 291 7 506 085 9 793 15 442 604 658 5 748 055 149.20 1 314 766 长 沙 582.47 0.310 7 1 146 367 3 098 179 8 706 5 718 323 660 3 461 244 69.57 596 986 广 州 685.00 0.621 4 1 600 738 23 348 139 22 007 23 854 1 761 499 20 401 811 182.81 3 047 594 深 圳 119.85 0.793 1 299 662 20 368 295 8 754 4 274 1 847 908 9 519 900 91.26 1 890 338 南 宁 285.87 0.406 4 720 486 1 149 691 5 130 3 293 149 700 2 190 918 45.09 371 809 海 口 54.38 0.835 4 44 815 717 461 5 345 2 356 115 174 1 626 800 19.01 198 138 重 庆 3 072.34 0.206 7 4 168 780 8 585 525 52 441 25 124 898,912 9 090 969 223.73 1 606 804 成 都 1 003.56 0.335 1 935 590 5 894 289 40 140 19 632 561 189 7 479 684 132.89 1 200 671 贵 阳 321.50 0.455 7 362 061 2 247 934 15 703 4 143 197 908 1 787 748 55.28 419 681 昆 明 473.39 0.386 5 793 356 3 605 729 5 604 12 042 524 216 4 127 900 88.11 842 321 西 安 674.50 0.409 4 739 905 3 665 942 10 311 9 766 408 896 5 863 980 114.01 885 169 兰 州 287.59 0.544 5 259 444 2 940 884 1 832 4 749 169 540 2 641 568 65.83 550 890 西 宁 133.95 0.522 7 65 848 711 310 1 746 1 469 49 134 855 051 27.21 219 251 银 川 95.38 0.570 9 171 603 661 226 2 106 1 193 74 758 814 103 23.72 178 621 乌鲁木齐 158.92 0.824 4 78 513 1 847 241 2 668 9 041 254 870 2 365 508 55.27 517 622

相关文档
最新文档