为什么 PCA 公式中有一个常数分量在执行 PCA 分析时,我很惊讶地看到保存的公式中有一个常数分量。 例如,将 1st 2 Principal Components 保存在以下标准化数据集(居中和缩放数据)上,
| 标准化(居中 + 缩放)数据 |
| 长度 | 宽度 | P长度 | 宽度 |
| 0.27 | 0.19 | -0.36 | -0.44 |
| -0.30 | -1.14 | -0.36 | -0.44 |
| -0.88 | -0.61 | -0.94 | -0.44 |
| -1.16 | -0.87 | 0.22 | -0.44 |
| -0.02 | 0.46 | -0.36 | -0.44 |
| 1.13 | 1.26 | 1.38 | 1.48 |
| -1.16 | -0.07 | -0.36 | 0.52 |
| -0.02 | -0.07 | 0.22 | -0.44 |
| -1.74 | -1.41 | -0.36 | -0.44 |
| -0.30 | -0.87 | 0.22 | -1.40 |
| 1.13 | 0.72 | 0.22 | -0.44 |
| -0.59 | -0.07 | 0.80 | -0.44 |
| -0.59 | -1.14 | -0.36 | -1.40 |
| -2.02 | -1.14 | -2.11 | -1.40 |
| 2.28 | 1.52 | -1.52 | -0.44 |
| 1.99 | 2.59 | 0.22 | 1.48 |
| 1.13 | 1.26 | -0.94 | 1.48 |
| 0.27 | 0.19 | -0.36 | 0.52 |
| 1.99 | 0.99 | 1.38 | 0.52 |
| 0.27 | 0.99 | 0.22 | 0.52 |
| 1.13 | -0.07 | 1.38 | -0.44 |
| 0.27 | 0.72 | 0.22 | 1.48 |
| -1.16 | 0.46 | -2.69 | -0.44 |
| 0.27 | -0.34 | 1.38 | 2.43 |
| -0.59 | -0.07 | 2.55 | -0.44 |
| -0.02 | -1.14 | 0.80 | -0.44 |
| -0.02 | -0.07 | 0.80 | 1.48 |
| 0.56 | 0.19 | 0.22 | -0.44 |
| 0.56 | -0.07 | -0.36 | -0.44 |
| -0.88 | -0.61 | 0.80 | -0.44 |
| -0.59 | -0.87 | 0.80 | -0.44 |
| 1.13 | -0.07 | 0.22 | 1.48 |
| 0.56 | 1.79 | 0.22 | -1.40 |
| 1.42 | 2.06 | -0.36 | -0.44 |
| -0.30 | -0.87 | 0.22 | -0.44 |
| -0.02 | -0.61 | -1.52 | -0.44 |
| 1.42 | 0.19 | -0.94 | -0.44 |
| -0.30 | 0.46 | -0.36 | -1.40 |
| -1.74 | -1.14 | -0.94 | -0.44 |
| 0.27 | -0.07 | 0.22 | -0.44 |
| -0.02 | 0.19 | -0.94 | 0.52 |
| -1.45 | -3.01 | -0.94 | 0.52 |
| -1.74 | -0.61 | -0.94 | -0.44 |
| -0.02 | 0.19 | 0.80 | 3.39 |
| 0.27 | 0.99 | 2.55 | 1.48 |
| -0.59 | -1.14 | -0.36 | 0.52 |
| 0.27 | 0.99 | 0.80 | -0.44 |
| -1.16 | -0.61 | -0.36 | -0.44 |
| 0.84 | 0.72 | 0.22 | -0.44 |
| -0.02 | -0.34 | -0.36 | -0.44 |
公式如下:
Prin1: 0.59834170442161 * :SLength + 0.569834108206745 * :SWidth + 0.371661472844918 *
:PLength + 0.39892861952586 * :PWidth + 2.15154543958667e-16
Prin2:-0.331623960696996 * :SLength + -0.436415344018397 * :SWidth + 0.620670317712319
* :PLength + 0.54252700661609 * :PWidth + (-1.4778627619204e-16)
尽管这两个常数分量几乎接近 0(顺便说一句,我在其他一些情况下看到常数 >> 0),但我只是不明白为什么它们会成为公式的一部分,因为 Prin1 和 Prin2 应该是只是第一个和第二个特征向量与数据之间的乘积。
在matlab中,具体计算如下:
[USV] = svd (cov(X));
Z2 = X * U(:,1:2) ;
Prin1 = Z2(:,1);
Prin2 = Z2(:,2);
期待您的解释,并在此先感谢您!
回复:为什么 PCA 公式中有一个常数分量使用您提供的数据,我使用 Distributions 查看并得到以下结果:

这足以产生舍入误差。 同样,即使标准差恰好为 1,您也可能会得到一个非常接近于零的常数项。 缩放是防止一切都成为特征向量和数据的乘积的原因。 您不仅在使用数据,还在使用缩放数据(每次 JMP 都会进行缩放,因为如您的数据所示,您并不总是知道标准偏差 = 1)。 估计有时可能是一场混乱的游戏。
回复:为什么 PCA 公式中有一个常数分量如前所述,数据是标准化的(居中并按比例缩放),因此,它的平均值为 0,标准偏差为 1。 我确实尝试了“未缩放”选项,确实常数项消失了。
但是,考虑到主要成分是从特征向量和数据的乘积中得出的,我仍然无法理解它。 非常感谢您的回复。
回复:为什么 PCA 公式中有一个常数分量您提供的数据没有均值 0 和标准差 1。 就像 PC 中的常数一样,它们很接近,但它们并不完全是 0 和 1。 仅此一项就可以为您提供 PC 中的常数项。
即使均值和标准差恰好为 1,由于舍入误差和正在使用的估计过程,您可能会得到一个非常接近 0 的常数项。 无论您的输入数据如何,JMP 都会缩放您的变量,除非您告诉它不要这样做。
如果您绝对不想要常数项,请转到红色弹出菜单并选择形成 PC“未缩放”变量。 通常不建议这样做,但这会给您提供没有固定期限的 PC。