1

我的问题很基本,但我需要帮助理解基本概念。在以下示例中,来自函数 的Mathworks文档页面princomp

load hald;
[pc,score,latent,tsquare] = princomp(ingredients);
pc,latent

我们得到以下值:

pc =

   -0.0678   -0.6460    0.5673    0.5062
   -0.6785   -0.0200   -0.5440    0.4933
    0.0290    0.7553    0.4036    0.5156
    0.7309   -0.1085   -0.4684    0.4844

latent =

  517.7969
   67.4964
   12.4054
    0.2372

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

传奇:

潜伏是一个向量,包含 X 的协方差矩阵的特征值。

pc是一个 p×p 矩阵,每一列包含一个主成分的系数。这些列按分量方差递减的顺序排列。**

score是主成分分数;也就是 X 在主成分空间中的表示。SCORE 的行对应于观察值,列对应于组件。

有人可以解释分数的值是否是使用 pc 的值以某种方式生成的,如果这是真的,执行什么样的计算?

4

1 回答 1

1

是的,它认为 ,输入矩阵的归一化版本score = norm_ingredients * pc在哪里,norm_ingredients因此其列的均值为零,即

norm_ingredients = ingredients - repmat(mean(ingredients), size(ingredients, 1), 1)
于 2014-05-11T01:22:08.233 回答