為什麼 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。