O'Reilly의 "해커를위한 기계 학습"에 따르면 각 주요 구성 요소는 분산의 백분율을 나타냅니다. 아래 페이지의 관련 부분을 인용했습니다 (8 장, 207 페이지). 다른 전문가와 이야기하면서, 그들은 그것이 백분율이라고 동의했습니다.
그러나 24 개 구성 요소의 합계는 133.2095 %입니다. 어떻게 그렇게 될수 있니?
우리가 PCA를 사용할 수 있다고 확신 한 후에 R에서 어떻게 할 수 있습니까? 여기서도 R이 빛을 발하는 곳입니다. PCA 전체를 한 줄의 코드로 수행 할 수 있습니다. princomp 함수를 사용하여 PCA를 실행합니다.
pca <- princomp(date.stock.matrix[,2:ncol(date.stock.matrix)])
pca를 R에 입력하면 주요 구성 요소에 대한 간단한 요약을 볼 수 있습니다.
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 %입니다.