O'Reillyの「Machine Learning For Hackers」は、各主成分が分散の割合を表すと述べています。以下のページの関連部分を引用しました(8章、207ページ)。別の専門家に話すと、彼らはそれがパーセンテージであることに同意しました。
ただし、24個のコンポーネントの合計は133.2095%になります。それはどうしてですか?
PCAを使用できると確信しましたが、Rでそれを行うにはどうすればよいですか?繰り返しますが、これはRが輝く場所です。PCA全体を1行のコードで実行できます。princomp関数を使用してPCAを実行します。
pca <- princomp(date.stock.matrix[,2:ncol(date.stock.matrix)])
Rにpcaと入力するだけで、主要なコンポーネントの簡単な要約が表示されます。
Call: princomp(x = date.stock.matrix[, 2:ncol(date.stock.matrix)]) Standard deviations: Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 29.1001249 20.4403404 12.6726924 11.4636450 8.4963820 8.1969345 5.5438308 Comp.8 Comp.9 Comp.10 Comp.11 Comp.12 Comp.13 Comp.14 5.1300931 4.7786752 4.2575099 3.3050931 2.6197715 2.4986181 2.1746125 Comp.15 Comp.16 Comp.17 Comp.18 Comp.19 Comp.20 Comp.21 1.9469475 1.8706240 1.6984043 1.6344116 1.2327471 1.1280913 0.9877634 Comp.22 Comp.23 Comp.24 0.8583681 0.7390626 0.4347983 24 variables and 2366 observations.
この要約では、標準偏差は、さまざまな主成分によってデータセットの分散がどの程度考慮されるかを示しています。Comp.1と呼ばれる最初のコンポーネントは分散の29%を占め、次のコンポーネントは20%を占めます。最後に、最後のコンポーネントであるComp.24は、分散の1%未満を占めています。これは、最初の主成分を見るだけでデータについて多くのことを学べることを示唆しています。
[コードとデータはgithubにあります。]
R
ソフトウェア自体を参照するために「バグ」を取りました。そのエラーを見つけることは良いキャッチでした(PCAで実際に何が起こっているのかを知ることは、あなたがそれがやりがいのあることを発見したことを望みます)!
Standard deviations
は少しずれていると思います。標準偏差は実際には標準偏差であるため、各コンポーネントが表す分散の量を確認するには、それらを平方する必要があります。最初のコンポーネントは100 × 29.1001249 2を表します全分散の 2%。