% by dynamic
% see also http://wwwmatlabskycom
% contact me matlabsky@gmailcom
% 2009-7-12 22:23:22
%
Matlab自带有主成分析的函数:所有函数使用说明和举例参加http://wwwmatlabskycom/thread-1213-1-1html
另外这里有些pca的Matlab源程序,你可以参考下http://wwwmatlabskycom/viewthreadphptid=668&highlight=pca
对于使用matlab做主成分分析,我认为比较复杂,而使用SPSS软件求解的话,相对要简单得多,你完全可以用SPSS软件来求解,那时间不会超过2小时。如果你真的想用matlab的话,
对于主成份分析。我给你一个不错的关于主成分和因子分析的博客吧。
http://hibaiducom/quantumyang/blog/item/1d01c315a6a20001b9127bbbhtml
http://hibaiducom/quantumyang/blog/item/06e4a33025b3f5a6d0a2d383html
通常的使用主成分分析的建模步骤:
第一步:选取了8个与城市经济实力密切相关的指标;
第二步:对指标进行无量纲化处理(或归一化处理)。根据不同情况采用不同的公式标准化。
第三步:进行主成分分析。
1采用四次方最大法(Quartimax)进行旋转。
2第一主成分的特征根值,方差贡献率,累计方差贡献率。
第四步:确定权重由分析的主要个指标,建立权重。
第五步:计算综合评价值。
因素分析的主要目的还是简化题目的结构,把多数单个的题目进行归类,归为少数几个因子,所以在spss里面因素分析在降维菜单下。因此,因素分析最主要的还是要用最少的维度来贡献最多的变异,这应该才是最主要的标准。即便贡献率超过85%,也要看:第一,是否产生了过多的维度,维度过多因素分析就意义不大了;第二,是否有些维度的贡献率偏低,贡献率偏低的话不要也罢。
事实上对于做研究,40%的累积贡献率已经算是可以接受,50%以上就可以作为实际应用的标准了。倒是85%显得过于严苛。当然如果能达到这个水平且维度少,每个维度的贡献率又都比较高,那就很理想。
spss做因素分析选取主成分个数的标准一般就是两个:第一是特征值,大于1的提取出来,这只是个大概;第二是参考碎石图,看看碎石图拐点出现的位置,看看图从什么地方开始趋于平缓。综合这两点,然后再看看累积贡献率是否合适,就可以完成成份的选取。
[COEFF,SCORE,latent,tsquare] = princomp(X)
解释:
X: 就是原始数据,每列是一个变量,每行是一个样本。
coeff:就是那个U转化矩阵
score:最后得出的主成分的值,每一列表示一个主成分(按第一主成分到第n主成分个排列)。
latant:是各主成分对应的特征向量。
tsquare:是Hotelling's T-squared统计量。
以下全属个人看法,首先我认为,楼主对主成分分析还没有一个清楚的认知,导致所给的图形就不是最终判断分析的结果。在多元统计分析中,主成分分析是依靠因子分析的结果来进行的。
请饶在下唐突,不过确实,楼主的给因子载荷矩阵图是旋转前的因子载荷阵。在因子分析中,因子旋转是非常关键的一步措施,目的就是要使得每个变量仅在一个公共因子上有较大的载荷度。说白了就是让指标在主要成分上一分为二。
楼主做的分析有5类主成分,11个变量指标,最终的分析结果是5类关键因子,分别对5类主成分起关键作用。按楼上的回答是错误的,怎么样也是5组关键因子……
从未旋转的图很明显发现,虽然想要把指标分两类相当容易,一类是正值,一类是负值。但是,载荷度高意味着数值较大(不是绝对值),楼主可以自己分析一下,你给的载荷阵中的正值从0-07几不等,把这样的一类指标都归结为对主成分起关键作用是不合理的。负值中同样存在这样的道理,把-01—-07都归结为对主成分载荷小的指标也太过武断。正常的旋转过后的因子载荷阵会出现某几个因子载荷在08以上,这是最终要寻找的结果。
所以楼主希望有个正确结果,先做因子旋转吧,把旋转过后的因子载荷矩阵发上来,本人很乐意效劳。
顺便提一下因子旋转的操作……其实都在一起……
在factor
analynis对话框下点击rotation选项,选择因子旋转的方式,一般都是最大方差法,选择varimax,并选择display栏中的rotated
solution复选框,单击continue,返回主界面。ok~
主成分分析和因子分析的区别
1、因子分析中是把变量表示成各因子的线性组合,而主成分分析中则是把主成分表示成个变量的线性组合。
2、主成分分析的重点在于解释个变量的总方差,而因子分析则把重点放在解释各变量之间的协方差。
3、主成分分析中不需要有假设(assumptions),因子分析则需要一些假设。因子分析的假设包括:各个共同因子之间不相关,特殊因子(specific factor)之间也不相关,共同因子和特殊因子之间也不相关。
4、主成分分析中,当给定的协方差矩阵或者相关矩阵的特征值是唯一的时候,的主成分一般是独特的;而因子分析中因子不是独特的,可以旋转得到不到的因子。
5、在因子分析中,因子个数需要分析者指定(spss根据一定的条件自动设定,只要是特征值大于1的因子进入分析),而指定的因子数量不同而结果不同。在主成分分析中,成分的数量是一定的,一般有几个变量就有几个主成分。
和主成分分析相比,由于因子分析可以使用旋转技术帮助解释因子,在解释方面更加有优势。大致说来,当需要寻找潜在的因子,并对这些因子进行解释的时候,更加倾向于使用因子分析,并且借助旋转技术帮助更好解释。而如果想把现有的变量变成少数几个新的变量(新的变量几乎带有原来所有变量的信息)来进入后续的分析,则可以使用主成分分析。当然,这中情况也可以使用因子得分做到。所以这中区分不是绝对的。
总的来说,主成分分析主要是作为一种探索性的技术,在分析者进行多元数据分析之前,用主成分分析来分析数据,让自己对数据有一个大致的了解是非常重要的。主成分分析一般很少单独使用,通常用做以下用途:
a 了解数据(screening the data);
b 和cluster analysis一起使用;
c 和判别分析一起使用,比如当变量很多,个案数不多,直接使用判别分析可能无解,这时候可以使用主成份发对变量简化(reduce dimensionality);
d 在多元回归中,主成分分析可以帮助判断是否存在共线性(条件指数),还可以用来处理共线性。
在算法上,主成分分析和因子分析很类似,不过,在因子分析中所采用的协方差矩阵的对角元素不在是变量的方差,而是和变量对应的共同度(变量方差中被各因子所解释的部分。)。
欢迎分享,转载请注明来源:品搜搜测评网