主成分分析方法只有一个主成分可以做主成分分析方法吗

进行维数约减(Dimensionality Reduction),目前最常用的算法是主成分分析法 (Principal Componet Analysis, PCA)。
使用主成分分析法进行数据的降维处理,具体的原理和过程是怎么样的呢?
下面让我一一道来。
1 信息损失最少例如这样一些二维数据:
我们想要将数据降到一维,到底是图中的红线好呢还是绿线好呢?
降维就意味着信息的丢失,我们需要做的,就是尽可能将这样的信息损失降低。
我们可以很直观地看到,数据点和直线的距离就在降维的过程中丢失掉了。
显然,绿线丢失的数据要比红线多。
所以,我们可以判断,使用红线相比绿线会更好。
我们也注意到,投影到红线上的蓝点,离散的程度大于投影到绿线上的蓝点,这也从另一个角度说明投影到红线丢失的信息相对更少。
这个离散的程度,我们使用蓝点之间的方差进行衡量:
为了方便计算,我们将所有的特征都减去该特征的均值,并依然用 a&sub>i&/sub> 来表示,所以蓝点之间的方差可以记为:
2 特征不相关上面是二维降为一维的情况,只需要找到使得方差最大化的一个向量就可以了:
但是对于更高的维度,应该如何处理呢?例如三维降为二维。
当然我们可以首先找到一个使得投影方差最大方向,然后在这个基础上,找到和这个方向不相关的另外一个使得投影方差最大的方向。
所谓的不相关,就是指第二个方向向量和第一个方向向量正交,体现在二维平面上就是垂直的关系:
我们先找到了使得投影方差最大方向,其方向向量为 u&sup>(1)&/sup> ,然后找到了和它垂直的投影方差最大的方向,其方向向量为
u&sup>(2)&/sup> 。
这里两个方向的相关程度,我们使用协方差进行衡量:
a, b 均已减去特征的均值。
当协方差 Cov(a,b) = 0 的时候,两个特征向量正交,也就是两个特征不相关。
3 PCA的推导过程假设我们的训练数据有 m 行数据,有 n 个特征维度,那么矩阵 X 是一个 m × n 的矩阵,可以表达为:
X 的协方差矩阵 C 可以通过以下公式得到:
那么 C 为一个 n × n 的矩阵:
可以直观地看到,协方差矩阵 C 是一个对称矩阵,C&sub>ij&/sub> = C&sub>ji&/sub> ,对角线是各个特征的方差。
因为矩阵 C 是一个实对称矩阵,所以 C 也具备一些实对称矩阵的特征:
C 的不同特征值对应的特征向量是正交的;
C 的特征值都是实数,特征向量都是实向量;
C 可对角化,且相似对角阵上的元素即为矩阵本身特征值。根据这些性质,我们可以得到 n 个线性无关的非零特征向量 e&sub>1&/sub>, e&sub>2&/sub>, … , e&sub>n&/sub> ,这些特征向量构成的特征矩阵 E = ( e&sub>1&/sub>
e&sub>2&/sub> …
e&sub>n&/sub> )
Λ 是一个对角矩阵,除了对角线有值,其他位置(空白处)都是 0 。
对于特征矩阵 X ,因为可能存在大量的冗余数据,我们将它转换到另外一个特征空间,得到新的特征矩阵 Z:
我们希望这个特征空间中各个特征的彼此是线性无关的,也就是说希望各个特征向量是正交关系。
那么在新的特征空间中,其协方差矩阵应该是一个对角矩阵:
对角线是方差,其他位置(空白处)是协方差。协方差为 0 ,代表着两个向量正交。
假设特征空间转换的过程可以表达为 Z = XU ,矩阵 D 代入该表达式可以得到:
也就是说 U = E ,U 就是矩阵 C 特征向量所组成的矩阵。矩阵 D 对角线上每个值就是矩阵 C 的特征值。
如果我们把 D 中的特征值按照从大到小,将特征向量从左到右进行排序,然后取其中前 k 个,经过压缩转换(Z = XU),就得到了我们降维之后的数据矩阵 Z :
X 是 m × n 的矩阵, U 是 n × k 的矩阵,Z 是 m × k 的矩阵。
4 PCA的计算过程第一步:首先对特征进行归一化处理。
第二步:计算协方差矩阵。
第三步:计算协方差矩阵的特征向量并按照特征大从大到小排序。
第四步:提取特征向量矩阵的前 k 列。
第五步:通过矩阵乘法计算得到新的特征 Z 。其中计算的公式为:
至此我们算是完成了降维。
5 特征数 k 的选择不过有时候,降维的效果可能并不好。要么可能维度压缩不多,内存占用和计算速度依然没有改善,要么可能维度压缩太过,信息丢失太大。
这其实取决于特征数 k 的选择。
因为矩阵 U 中每个特征向量是相互正交的,矩阵 U 也是一个正交矩阵,所以有 UU&sup>T&/sup> = E , E 为单位矩阵。
经过如下推导,我们可以反压缩得到矩阵 X:
因为保留的特征数 k 小于 m,所以这个反压缩得到的结果是不等于 X 的。
例如一维还原到二维,最终反压缩得到的结果是:
这是因为特征转换的过程中,丢失了一部分的信息。
所以使用 X&sub>approx&/sub>
进行标记更加合适:
有了 X&sub>approx&/sub> ,其实我们就能计算信息丢失率:
如果损失小于 1%,那么我们可以说保留了 99% 的差异性。
当然,差异性的百分比还有另外一个获得,那就是前 k 个特征值之和除以所有的特征值之和。
因为我们已经对特征值进行了降序排序,所以前面 k 个特征应该能够比较好的代表全部的特征。
注意,这个特征值是指对角矩阵对角线上的数值:
如果对于每个特征值,我们使用 S&sub>ii&/sub> 进行标记,那么公式就是:
大于 k 小于 m 部分的特征值,就是丢失的数据,所以信息丢失率也可以通过下面的公式计算:
我们需要做的,是设置一个差异性保留的百分比,然后从小到大对 k 进行遍历,差异性满足条件,k 就是我们要的结果。
例如计算得到的数据差异性百分比和 k 的关系如下:
k = 1 :60%
k = 2 :77%
k = 3 :88%
k = 4 :93%
k = 5 :97%
k = 6 :99%如果我们要保留 90% 的数据,那么 k 的取值应该是 4 ;
如果我们要保留 99% 的数据,那么 k 的取值应该是 6 。
6 关于PCA的注意事项注意一:如果使用了PCA对训练集的数据进行了处理,那么对于验证集和测试集也需要进行相对应的处理。
我们在处理训练集的过程中得到了特征的均值 μ 和方差 σ ,以及特征向量
U ,我们需要使用这些参数先对数据进行归一化处理,然后转换到新的特征空间。
注意二:在使用PCA进行压缩之前,先使用原数据进行训练,这样我们才能对比压缩前后的效果。
如果不是占用内存空间太大,或者算法运行速度过慢,其实没有必要进行压缩。
注意三:不要使用PCA来避免过度拟合。
因为通过这样的方式皮避免度拟合,不仅效果很差,并且会丢失部分数据。
文章提前发布在公众号:止一之路
该问题目前已经被锁定, 无法添加新回复PCA的介绍,实例及绘图
&&&&多元统计分析中普遍存在的困难中,有一个困难是多元数据的可视化。matlab的plot可以显示两个变量之间的关系,plot3和surf可以显示三维的不同。但是当有多于3个变量时,要可视化变量之间的关系就很困难了。
&&&&幸运的是,在一组多变量的数据中,很多变量常常是一起变动的。一个原因是很多变量是同一个驱动影响的的结果。在很多系统中,只有少数几个这样的驱动,但是多余的仪器使我们测量了很多的系统变量。当这种情况发生的时候,你需要处理的就是冗余的信息。而你可以通过用一个简单的新变量代替这组变量来简化此问题。
&&&&主成分分析是一个定量的严格的可以起到简化作用的方法。它产生一组叫做主成分的新变量,每一个主成分是原始变量的线性组合。所有主成分是相互正交的,从而不存在冗余的信息。所有主成分形成了原始数据空间的一组正交基。
&&&&但是有无数种方式来创建一组正交基,那主成分正交基有什么特殊之处呢?
&&&&第一主成分是数据空间的一个轴。当你把各观察值投影到这个轴时,结果会形成一个新变量,这个变量的方差是所有可选的轴中最大的。
&&&&第二主成分是空间的另一个轴,它垂直于第一个轴。投影数据到这个轴上将得到另一组变量,此变量的方差是所有可选的轴中最大的。
&&&&最后得到的所有主成分个数是与原始变量相同的,但是通常前几个主成分方差的和占到了原始数据总方差的80%以上。通过绘制这组新变量,研究者常常会更深入的了解产生原始数据的驱动力。
&&&&在matlab中,可以使用princomp函数来找到主成分,通过使用此函数,你需要用到测量的原始数据。然而,如果你缺少这些数据,但是有这些数据的样本自相关或协方差矩阵,你可以通过使用pcacov函数来做主成分分析。
主成分分析的实例
&&&&考虑一个例子,它使用了衡量美国329个城市生活质量的9个指标:气候、住房、健康、犯罪率、交通、教育、艺术、娱乐和经济。对于各指标,越高表示越好,如高的犯罪指标表示低的犯罪率。
&&&&先从cities.mat中加载数据
&& load cities
Name Size Bytes Class Attributes
categories 9x14 252 char
names 329x43 28294 char
ratings 329x9 23688 double
&&&&cities.mat中包含了3个变量:
categories--一个包含各指标名字的字符串矩阵
names--一个包含329个城市名字的字符串矩阵
ratings--329行9列的数据矩阵
&&&&为快速对ratings数据有个直观的印象,可以使用盒图绘制出数据来
boxplot(ratings,'orientation','horizontal','labels',categories)
&&&&可以注意到大体上艺术和住房的指标要比犯罪和气候的指标有更大的变异性。
&&&&通常你会考虑绘制各对原始变量,但这将有36对变量图。而主成分分析或许会降低你需要考虑的变量个数。
有时对原始数据计算主成分是可以的,这在各变量是相同的单位时是很合适的。但是当变量单位不同或不同列数据的方差相差很大时,先对数据做标准化是更好的。
&&&&可以通过除以各列标准差来标准化数据,如下
stdr = std(ratings);
sr = ratings./repmat(stdr,329,1);
&&&&这样就为找主成分做好准备了。
[coefs,scores,variances,t2] = princomp(sr);
&&&&下面各部分解释了princomp函数的输出。
Component Coeffcients
&&&&coefs包含了产生主成分的原始变量线性组合的系数,它常被称为loadings。它是9X9的矩阵,前三个主成分的系数向量为
&& c3 = coefs(:,1:3)
0.8 0.6900
0.6 0.2082
0.5 0.0073
0.3 -0.1851
0.6 -0.1464
0.4 -0.2297
0.8 0.0265
0.5 0.0509
0.3 -0.6073
&&&&可以看到在第一主成分中最大的系数是第三个和第七个,即健康和艺术。此主成分的所有系数都是正的。
&&&&主成分通常是单位长且正交的
I = c3'*c3
1.0 -0.0000
-0.0 -0.0000
-0.0 1.0000
Component Scores
&&&&scores包含了原始数据在被主成分定义的新坐标系统中的坐标,它是和原始数据矩阵同大小的。
&&&&绘制scores的前两列可以展示原始数据投影到前两个主成分的新数据。princomp函数计算的scores具有零均值。
plot(scores(:,1),scores(:,2),'+')
xlabel('1st Principal Component')
ylabel('2nd Principal Component')
&&&&注意到上图中右边的离群点。函数gname可以用于标出这些离群点,调用gname时传入一个string矩阵,它包含了各点的标签,如下
gname(names)
&&&&移动鼠标在右半部分的点点击,当你点击各点的时候,在点上会标记names中对应的字符串,如下
&&&&从上面的标记,发现这些离散点是美国一些人口比较多的城市,它们明显与其他数据不同,所以它们可能需要被分离开。为移除这些数据,首先识别这些数据的行,方法如下
1.关闭上面的figure
2.重绘plot
plot(scores(:,1),scores(:,2),'+')
xlabel('1st Principal Component');
ylabel('2nd Principal Component');
3.运行gname函数,如输入参数
4.标记离散点,标记自动为这些数据的行数
&&&&然后创建一个包含这些点的变量
metro = [43 65 179 213 234 270 314];
names(metro,:)
Boston, MA
Chicago, IL
Los Angeles, Long Beach, CA
New York, NY
Philadelphia, PA-NJ
San Francisco, CA
Washington, DC-MD-VA
&&&&然后移除这些行
nsubset(metro,:) = [];
rsubset(metro,:) = [];
size(rsubset)
Component Variances
&&&&variances是一个包含了主成分方差的向量,scores的每一列的方差即为variances对应的项
variances =
&&&&你可以很容易的计算所有差异性占到百分比
percent_explained = 100*variances/sum(variances)
percent_explained =
&&&&使用pareto函数可以以图的方式显示此百分比
pareto(percent_explained)
xlabel('Principal Component')
ylabel('Variance Explained (%)')
&&&&显示的figure中可以看到第一主成分明显比第二主成分要高很多,但它只解释了不到40%的方差,所以需要使用更多的成分。可以看到前三个主成分解释了三分之二的方差,所以这三个成分可以作为一个理想的方式来降低维数。
Hotelling's T2
&&&&t2是一个衡量各观测值离数据中心距离的统计量,这是一个找出数据中极值点的有效分析方法。
[st2, index] = sort(t2,'descend'); % Sort in descending order.
extreme = index(1)
names(extreme,:)
New York, NY
&&&&这个极值点是不奇怪的,因为Vew York的ratings是离美国城镇平均值是最远的。
结果可视化
&&&&使用biplot函数可以帮助我们可视化各变量的主成分的系数和各观察值的主成分scores。如下,
biplot(coefs(:,1:2), 'scores',scores(:,1:2),...
'varlabels',categories);
axis([-.26 1 -.51 .51]);
&&&&上图中,9个变量以向量的形式呈现出来,向量的方向和长度表示了各变量对两个主成分的贡献。例如,对于第一主成分,对所有9个变量的系数都是正值。对于第 二主成分,变量教育、健康、艺术和交通是正的贡献,其他5个是负的贡献。这表明此成分在不同城市间是有区别的:大的值的变量、小的值的变量和负值的变量。
&&&&上图中变量标签有时候会很拥挤,可以在绘图时在varlabels参数中忽略一些,或在figure的编辑模式下选中并移动它们。可以使用Tools下的Data Cursors功能查看图中的信息
&&&&biplot函数也可以用于绘制三维的信息
biplot(coefs(:,1:3), 'scores',scores(:,1:3),...
'obslabels',names);
axis([-.26 1 -.51 .51 -.61 .81]);
view([30 40]);
最近看了些主成分分析,混迹Matlab论坛,翻了n多帖子,对princomp函数有了些了解。
在此只讲一些个人理解,并没有用术语,只求通俗。
贡献率:每一维数据对于区分整个数据的贡献,贡献率最大的显然是主成分,第二大的是次主成分......
[coef,score,latent,t2] = princomp(x);(个人观点):
x:为要输入的n维原始数据。带入这个matlab自带函数,将会生成新的n维加工后的数据(即score)。此数据与之前的n维原始数据一一对应。
score:生成的n维加工后的数据存在score里。它是对原始数据进行的分析,进而在新的坐标系下获得的数据。他将这n维数据按贡献率由大到小排列。(即在改变坐标系的情况下,又对n维数据排序)
latent:是一维列向量,每一个数据是对应score里相应维的贡献率,因为数据有n维所以列向量有n个数据。由大到小排列(因为score也是按贡献率由大到小排列)。
coef:是系数矩阵。通过cofe可以知道x是怎样转换成score的。
则模型为从原始数据出发:score= bsxfun(@minus,x,mean(x,1))*coef;(作用:可以把测试数据通过此方法转变为新的坐标系)逆变换:x= bsxfun(@plus,score*inv(coef),mean(x,1))例子:
上图是通过自带函数绘制,当贡献率累加至95%,以后的维数会不在显示,最多只显示10维。
下面用自己编写的表示:
之前的错误认识:
1.认为主成分分析中latent显示的贡献值是原始数据的,其实是加工后的数据的。解释:对原始数据既然选择PCA方法,那么计算机认为原始数据每维之间可能存在关联,你想去掉关联、降低维数。所以采用这种方法的。所以计算机并不关心原始数据的贡献值,因为你不会去用了,用的是加工后的数据(这也是为什么当把输入数据每一维的顺序改变后,score、latent不受影响的原因)。
2.认为PCA分析后自动降维,不对。PCA后会有贡献值,是输入者根据自己想要的贡献值进行维数的改变,进而生成数据。(一般大家会取贡献值在85%以上,要求高一点95%)。
3.PCA分析,只根据输入数据的特征进行主成分分析,与输出有多少类型,每个数据对应哪个类型无关。如果样本已经分好类型,那PCA后势必对结果的准确性有一定影响,我认为对于此类数据的PCA,就是在降维与准确性间找一个平衡点的问题,让数据即不会维数多而使运算复杂,又有较高的分辨率。
阅读(...) 评论() &主成分分析
在实际问题中,我们经常会遇到研究多个变量的问题,而且在多数情况下,多个变量之间常常存在一定的相关性。由于变量个数较多再加上变量之间的相关性,势必增加了分析问题的复杂性。如何从多个变量中综合为少数几个代表性变量,既能够代表原始变量的绝大多数信息,又互不相关,并且在新的综合变量基础上,可以进一步的统计分析,这时就需要进行主成分分析。
第一节&&& 主成分分析的原理及模型
一、主成分分析的基本思想与数学模型
(一)主成分分析的基本思想
主成分分析是采取一种数学降维的方法,找出几个综合变量来代替原来众多的变量,使这些综合变量能尽可能地代表原来变量的信息量,而且彼此之间互不相关。这种将把多个变量化为少数几个互相无关的综合变量的统计分析方法就叫做主成分分析或主分量分析。
主成分分析所要做的就是设法将原来众多具有一定相关性的变量,重新组合为一组新的相互无关的综合变量来代替原来变量。通常,数学上的处理方法就是将原来的变量做线性组合,作为新的综合变量,但是这种组合如果不加以限制,则可以有很多,应该如何选择呢?如果将选取的第一个线性组合即第一个综合变量记为F1,自然希望它尽可能多地反映原来变量的信息,这里“信息”用方差Var(F1)来测量,即希望越大,表示F1包含的信息越多。因此在所有的线性组合中所选取的应该是方差最大的,故称为第一主成分。如果第一主成分不足以代表原来个变量的信息,再考虑选取即第二个线性组合F2,为了有效地反映原来信息,已有的信息就不需要再出现在中,用数学语言表达就是要求,称为第二主成分,依此类推可以构造出第三、四……第P个主成分。
(二)主成分分析的数学模型
对于一个样本资料,观测p个变量X1,X2.......Xp,n个样品的数据资料阵为:
主成分分析就是将P个观测变量综合成为P个新的变量(综合变量),即
要求模型满足以下条件:
于是,称为第一主成分F1,为第二主成分F2,依此类推,有p第个主成分。主成分又叫主分量。这里我们称a(ij)为主成分系数。
二、主成分分析的几何解释
假设有n个样品,每个样品有二个变量,即在二维空间中讨论主成分的几何意义。设n个样品在二维空间中的分布大致为一个椭园,如下图所示:
主成分几何解释图
将坐标系进行正交旋转一个角度theta,使其椭圆长轴方向y1取坐标,在椭圆短轴方向y2取坐标,旋转公式为
经过旋转变换后,得到下图的新坐标:
主成分几何解释图
新坐标y1,y2有如下性质:
(1)n个点的坐标y1和y2的相关几乎为零。
(2)二维平面上的n个点的方差大部分都归结为y1轴上,而y2轴上的方差较小。
y1和y2称为原始变量x1和x2的综合变量。由于n个点在y1轴上的方差最大,因而将二维空间的点用在y1轴上的一维综合变量来代替,所损失的信息量最小,由此称轴y1为第一主成分,y1轴与y2轴正交,有较小的方差,称它为第二主成分。
三、主成分分析的应用
主成分概念首先是由Karl parson 在1901年引进,但当时只对非随机变量来讨论的。1933年Hotelling将这个概念推广到随机变量。特别是近年来,随着计算机软件的应用,使得主成分分析的应用也越来越广泛。
其中,主成分分析可以用于系统评估。系统评估是指对系统营运状态做出评估,而评估一个系统的营运状态往往需要综合考察许多营运变量,例如对某一类企业的经济效益作评估,影响经济效益的变量很多,很难直接比较其优劣,所以解决评估问题的焦点是希望客观、科学地将一个多变量问题综合成一个单变量形式,也就是说只有在一维空间中才能使排序评估成为可能,这正符合主成分分析的基本思想。在经济统计研究中,除了经济效益的综合评价研究外,对不同地区经济发展水平的评价研究,不同地区经济发展竞争力的评价研究,人民生活水平、生活质量的评价研究,等等都可以用主成分分析方法进行研究。
另外,主成分分析除了用于系统评估研究领域外,还可以与回归分析结合,进行主成分回归分析,以及利用主成分分析进行挑选变量,选择变量子集合的研究。
第二节&&& 主成分的导出及主成分分析的步骤
一、主成分的导出
根据主成分分析的数学模型的定义,要进行主成分分析,就需要根据原始数据,以及模型的三个条件的要求,如何求出主成分系数,以便得到主成分模型。这就是导出主成分所要解决的问题。
1、根据主成分数学模型的条件要求主成分之间互不相关,为此主成分之间的协差阵应该是一个对角阵。即,对于主成分,
2、设原始数据的协方差阵为V,如果原始数据进行了标准化处理后则协方差阵等于相关矩阵,即有,
3、再由主成分数学模型条件和正交矩阵的性质,若能够满足条件,最好要求为正交矩阵,即满足:
于是,将原始数据的协方差代入主成分的协差阵公式得
展开等式两边,根据矩阵相等的性质,这里只根据第一列得出的方程为:
为了得到该齐次方程的解,要求其系数矩阵行列式为0,即
显然,lambda(i)为相关系数矩阵的特征值,向量a(j)为其特征向量。
综上所述,根据证明有,主成分分析中的主成分协方差应该是对角矩阵,其对角线上的元素恰好是原始数据相关矩阵的特征值,而主成分系数矩阵的元素则是原始数据相关矩阵特征值相应的特征向量。矩阵是一个正交矩阵。
二、主成分分析的计算步骤
样本观测数据矩阵为:
第一步:对原始数据进行标准化处理。
第二步:计算样本相关系数矩阵。
为方便,假定原始数据标准化后仍用X表示,则经标准化处理后的数据的相关系数为:&
第三步:用雅克比方法求相关系数矩阵的特征值和相应的特征向量。
第四步:选择重要的主成分,并写出主成分表达式。
主成分分析可以得到个主成分,但是,由于各个主成分的方差是递减的,包含的信息量也是递减的,所以实际分析时,一般不是选取个主成分,而是根据各个主成分累计贡献率的大小选取前个主成分,这里贡献率就是指某个主成分的方差占全部方差的比重,实际也就是某个特征值占全部特征值合计的比重。
贡献率越大,说明该主成分所包含的原始变量的信息越强。主成分个数的选取,主要根据主成分的累积贡献率来决定,即一般要求累计贡献率达到85%以上,这样才能保证综合变量能包括原始变量的绝大多数信息。
另外,在实际应用中,选择了重要的主成分后,还要注意主成分实际含义解释。主成分分析中一个很关键的问题是如何给主成分赋予新的意义,给出合理的解释。一般而言,这个解释是根据主成分表达式的系数结合定性分析来进行的。主成分是原来变量的线性组合,在这个线性组合中个变量的系数有大有小,有正有负,有的大小相当,因而不能简单地认为这个主成分是某个原变量的属性的作用,线性组合中各变量系数的绝对值大者表明该主成分主要综合了绝对值大的变量,有几个变量系数大小相当时,应认为这一主成分是这几个变量的总和,这几个变量综合在一起应赋予怎样的实际意义,这要结合具体实际问题和专业,给出恰当的解释,进而才能达到深刻分析的目的。
由于时间过长的原因,上面的参考文献我忘记了,貌似是来自百度文库的文章;
参考文献:
相关系数定义与说明
相关系数,或称线性相关系数、皮氏积矩相关系数(Pearson product-momentcorrelation coefficient, PPCC)等,是衡量两个之间线性相关程度的指标。它由卡尔·皮尔森(Karl
Pearson)在1880年代提出,现已广泛地应用于科学的各个领域。
相关系数计算公式
相关系数(r)的定义如右图所示,取值范围为[-1,1],r&0表示,r&0表示,|r|表示了变量之间相关程度的高低。特殊地,r=1称为完全正相关,r=-1称为完全负相关,r=0称为不相关。通常|r|大于0.8时,认为两个变量有很强的线性相关性。[2]
样本相关系数常用r表示,而总体相关系数常用ρ表示。
(1)对称性:X与Y的相关系数(rXY)和Y与X之间的相关系数(rYX)相等;
(2)相关系数与原点和尺度无关;
(3)若X与Y统计上独立,则它们之间的相关系数为零;但r=0不等于说两个变量是独立的。即并不一定意味着独立性;
(4)相关系数是线性关联或线性相依的一个度量,它不能用于描述非线性关系;
(5)相关系数只是两个变量之间线性关联的一个度量,不一定有因果关系的含义
协方差矩阵
参考文献:
统计学的基本概念
学过概率统计的孩子都知道,统计里最基本的概念就是样本的均值,方差,或者再加个标准差。首先我们给你一个含有n个样本的集合X1到Xn,依次给出这些概念的公式描述,这些高中学过数学的孩子都应该知道吧,一带而过。
很显然,均值描述的是样本集合的中间点,它告诉我们的信息是很有限的,而标准差给我们描述的则是样本集合的各个样本点到均值的距离之平均。以这两个集合为例,[0,8,12,20]和[8,9,11,12],两个集合的均值都是10,但显然两个集合差别是很大的,计算两者的标准差,前者是8.3,后者是1.8,显然后者较为集中,故其标准差小一些,标准差描述的就是这种“散布度”。之所以除以n-1而不是除以n,是因为这样能使我们以较小的样本集更好的逼近总体的标准差,即统计上所谓的“无偏估计”。而方差则仅仅是标准差的平方。
为什么需要协方差?
上面几个统计量看似已经描述的差不多了,但我们应该注意到,标准差和方差一般是用来描述一维数据的,但现实生活我们常常遇到含有多维数据的数据集,最简单的大家上学时免不了要统计多个学科的考试成绩。面对这样的数据集,我们当然可以按照每一维独立的计算其方差,但是通常我们还想了解更多,比如,一个男孩子的优秀 程度跟他受女孩子欢迎程度是否存在一些联系啊,嘿嘿~协方差就是这样一种用来度量两个随机变量关系的统计量,我们可以仿照方差的定义:
协方差的结果有什么意义呢?如果结果为正值,则说明两者是正相关的(从协方差可以引出“相关系数”的定义),也就是说一个人越优秀就越受女孩子欢迎,嘿嘿,那必须的~结果为负值就说明负相关的,越猥琐女孩子越讨厌,可能吗?如果为0,也是就是统计上说的“相互独立”。
从协方差的定义上我们也可以看出一些显而易见的性质,如:
协方差多了就是协方差矩阵
上一节提到的优秀和受欢迎的问题是典型二维问题,而协方差也只能处理二维问题,那维数多了自然就需要计算多个协方差,比如n维的数据集就需要计算多个协方差,那自然而然的我们会想到使用矩阵来组织这些数据。给出协方差矩阵的定义:
这个定义还是很容易理解的,我们可以举一个简单的三维(x,y,z)的例子,假设数据集有三个维度,则协方差矩阵为
可见,协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差。
理解协方差矩阵的关键就在于牢记它计算的是不同维度之间的协方差,而不是不同样本之间,拿到一个样本矩阵,我们最先要明确的就是一行是一个样本还是一个维度,心中明确这个整个计算过程就会顺流而下,这么一来就不会迷茫了
原始数据X,计算相关系数矩阵S(是个对称方阵),然后求S的特征值和特征向量,之后把个特征向量按照列排放,组成系数矩阵U。然后依据最少丢失信息的原则,选择K个旋转后的变量F,完成主成分分析。
本文已收录于以下专栏:
相关文章推荐
以前对PCA算法有过一段时间的研究,但没整理成文章,最近项目又打算用到PCA算法,故趁热打铁整理下PCA算法的知识。本文观点旨在抛砖引玉,不是权威,更不能尽信,只是本人的一点体会。
主成分分析(...
问题:假设在IR中我们建立的文档-词项矩阵中,有两个词项为“learn”和“study”,在传统的向量空间模型中,认为两者独立。然而从语义的角度来讲,两者是相似的,而且两者出现频率也类似,是不是可以合...
KPCA,中文名称”核主成分分析“,是对PCA算法的非线性扩展,言外之意,PCA是线性的,其对于非线性数据往往显得无能为力,例如,不同人之间的人脸图像,肯定存在非线性关系,自己做的基于ORL数据集的实...
近日,著名博客社区Tumblr被Yahoo用11亿美金收购。为什么Yahoo对Tumblr如此看重,下面是Tumblr的技术架构介绍。
本打算自己翻译一下,但发现已经有人这么做了,就直接转载好了
连接VPN后,你可能发现连外网IP也ping不通。可以用route看看路由列表。第一条默认路由是通过VPN连接网络。为了能通过本地连接访问网络,需要修改default路由
主成分分析法是一种非常适用,又相对简单的数据处理的方法。它是利用降维的方法,将数据表示的信息的主要成分提取出来,所以叫做主成分分析法。
从它的作用可以看出来,它的运用非常的广泛:
他的最新文章
讲师:李江龙
讲师:司徒正美
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 主成分分析 matlab 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信