Describe 레만투_주성분분석 here R에는 princomp와 prcomp 두 가지 주성분분석 함수가 있다. 사용법이나 결과가 거의 비슷하지만 내부 알고리듬이 다르다. princomp는 교과서에 많이 나오는 방법처럼 공분산행렬의 고유벡터를 구하는 방법을 사용하고, prcomp는 자료 행렬을 특이값 분해(SVD:Singular Value Decomposition)하는 방법을 사용한다. 보통 prcomp를 더 선호하며 princomp는 S-Plus와 호환을 위해 존재한다. USArrests 자료를 사용해보자. 미국의 각 주별로 도시인구비율(UrbanPop)과 인구 10만명 중 살인(Murder), 폭력(Assault), 강간(Rape) 혐의로 체포된 사람의 수에 대한 자료이다. 아래에서 scale 옵션을 TRUE로 한 이유는 도시인구비율과 체포된 사람 수가 서로 단위가 다르기 때문이다. princomp에서는 상관행렬의 PCA를 구한다. {{{ > p1 = prcomp(USArrests, scale=TRUE) > p2 = princomp(USArrests, cor=TRUE) }}} prcomp의 경우 print 함수는 변환행렬, summary 함수는 주성분별 정보를 보여준다. {{{ > print(p1) Standard deviations: [1] 1.5748783 0.9948694 0.5971291 0.4164494 Rotation: PC1 PC2 PC3 PC4 Murder -0.5358995 0.4181809 -0.3412327 0.64922780 Assault -0.5831836 0.1879856 -0.2681484 -0.74340748 UrbanPop -0.2781909 -0.8728062 -0.3780158 0.13387773 Rape -0.5434321 -0.1673186 0.8177779 0.08902432 }}} {{{ > summary(p1) Importance of components: PC1 PC2 PC3 PC4 Standard deviation 1.57 0.995 0.5971 0.4164 Proportion of Variance 0.62 0.247 0.0891 0.0434 Cumulative Proportion 0.62 0.868 0.9566 1.0000 }}} biplot 함수는 PC1과 PC2를 축으로 하는 2차원 평면에 원래 자료를 투영시켜서 보여준다. 아래 명령은 이 글 맨 위의 그림을 그린다. {{{ > biplot(p1) > #plot 함수는 scree plot을 그려준다. > plot(p1) }}} ---- 설명 감사합니다 많은 도움이 됩니다 안동대 정보통계학과 정현복 입니다. -- 정현복 2016-11-11 21:03:22