PCA는 Principal Component Analysis 는 다변량 분석으로, 많은 변수에 포함되어 있는 정보를 적은 수의 변수로 나타내고 싶을 때 사용하는 방법으로 주로 종합적인 지표를 만들 때 사용하는 방법이다.
다차원 데이터를 저차원으로 압축하거나 데이터 간의 상관 관계를 파악할 때 사용합니다.
주성분은 데이터의 분산이 최대가 되는 방향을 나타내도록 생성된 변수이다.
주성분의 분산은 고유값으로 eigenvalue로 고유값이 클수록 원래의 변수의 특징을 잘 표현한다라고 할 수 있습니다.
■ SAS CODE
data scores;
input student_id $ korean math english science social;
datalines;
1 80 85 90 95 75
2 70 75 80 85 90
3 90 95 80 85 70
4 60 65 70 75 80
5 85 90 95 90 75
6 75 80 85 80 90
7 95 90 85 80 75
8 80 85 70 75 80
9 90 95 80 85 90
10 70 75 90 95 80
;
proc princomp data=scores outstat=pcstats out=pcscores;
var korean math english science social;
run;
proc print data=pcscores noobs;
var student_id PC1-PC5;
run;
데이터는 10명의 학생 데이터로 국어, 수학, 영어, 과학, 사회 점수를 입력한 것 입니다.
주성분 분석은 'PROC PRINCOMP' 문을 사용합니다.
VAR option: 주성분 분석에 사용할 변수 지정
PROC PRINT: 주성분 분석 결과를 출력
PCSCORES option: 주성분 변수를 출력합니다.
PROC PRINCOMP 문은 통해서 Eigenvalues of the Correlration Matrix(상관행렬의 고유값 측정치) 가 출력됩니다.
고유값이 크다라는 것은 변동이 크다라는 것을 의미하므로 Eigenvalue가 높을수록 변수가 데이터를 잘 설명한다라고 할 수 있습니다.
Cumulative 를 보면 4번째 고유값까지 0.9948로 전체 변동의 99%를 설명한라는 것을 알 수 있습니다.
3번째 고유값까지 0.9581로, 이 역시 전체 변동의 95%를 설명한다라는 의미로 상당히 높은 설명력을 가진 것을 알 수 있습니다.
이걸 시각화한 그래프를 Scree Plot 으로 Ellobw (꺾인점)이 4에서 그래프가 꺾이는 것을 확인할 수 있습니다.
즉, 주성분 수를 4개로 하는 것이 가장 효율적임을 알 수 있습니다.
(3개 역시 고유값이 95%로 효율적임을 의미할 수 있습니다.)
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!