princomp 与pca的区别与联系

来源:互联网 发布:json.parse 无效 编辑:程序博客网 时间:2024/06/03 05:57

在网上下到一个程序:

里面有个函数是princomp  可能是因为matlab 版本的问题:

我的matlab(14a) 只能支持pca,但是要把princomp  转成pca 貌似还是需要一点小技巧的:

参考博客:http://www.cnblogs.com/haore147/p/3630002.html

princomp  的用法为:
[COEFF,SCORE,latent,tsquare] = princomp(X)

我们以

 X=[ 7    26     6    60
     1    29    15    52
    11    56     8    20
    11    31     8    47
     7    52     6    33
    11    55     9    22
     3    71    17     6
     1    31    22    44
     2    54    18    22
    21    47     4    26
     1    40    23    34
    11    66     9    12
    10    68     8    12]

因为后面的主要是使用了score ,所以我们的目的是找出来怎么样 利用pca 函数算出来score

在晚上找出来的计算方法:

COEFF(T)为特征向量矩阵
SCORE(Y)为得分矩阵
LATENT(R)为特征值矩阵
X的方差协方差矩阵为S,则

S=cov(x)

那么S 的结果为:

S=[

   34.6026   20.9231  -31.0513  -24.1667
   20.9231  242.1410  -13.8782 -253.4167
  -31.0513  -13.8782   41.0256    3.1667
  -24.1667 -253.4167    3.1667  280.1667

]
T*R*T'=S, T'*S*T=R
Y=T'*X

[U,mu,vars]=pca(X)  我们得到的结果是:

U =


    0.1289    0.5651    0.2445   -0.0000
    0.1453    0.4630   -0.1598   -0.0000
    0.3097   -0.0673    0.1482   -0.0000
    0.1418    0.3611    0.2336   -0.0000
    0.3035    0.1325    0.1598   -0.0000
    0.3000   -0.0418    0.1283   -0.0000
    0.4139   -0.2805   -0.3149    0.0000
    0.1384    0.3390   -0.3772    0.0000
    0.3007   -0.0152   -0.3150    0.0000
    0.2236    0.0005    0.4952   -0.0000
    0.1959    0.1787   -0.4359    0.0000
    0.3738   -0.2076    0.0979    0.0000
    0.3939   -0.2079    0.1040         0

此处的U 即使 princomp 里面的 score 。

但是我们发现其实 score 的值与PCA 求出来的U 的值不是一样的。

score =

 
  36.8218 -6.8709 -4.5909 0.3967
 
  29.6073 4.6109 -2.2476 -0.3958
 
  -12.9818 -4.2049 0.9022 -1.1261
 
  23.7147 -6.6341 1.8547 -0.3786
 
  -0.5532 -4.4617 -6.0874 0.1424
 
  -10.8125 -3.6466 0.9130 -0.1350
 
  -32.5882 8.9798 -1.6063 0.0818
 
  22.6064 10.7259 3.2365 0.3243
 
  -9.2626 8.9854 -0.0169 -0.5437
 
  -3.2840 -14.1573 7.0465 0.3405
 
  9.2200 12.3861 3.4283 0.4352
 
  -25.5849 -2.7817 -0.3867 0.4468
 
  -26.9032 -2.9310 -2.4455 0.4116
 

我就把U暂时代替score。

score 与 U 之间有什么关系. 需要进一步探究。





0 0
原创粉丝点击