13
다변량분석 Multivariate Data Analysis 주성분분석 Principal Component Analysis 주성분 개념 기성복 바지를 살 때 우리 몸의 치수를 모두 알아야 하는가? 그렇지 않다. 허리 둘레와 기장만(우리나라는 기장 줄 이는데 수공료가 거의 들지 않으므로 공장에서 최대한 길게 만들어 출하하고 판매점에서 10분만에 구입자의 기장 에 맞게 줄여줄 수 있으므로 허리둘레만 알면 된다) 알고 있으면 충분하다. 여기에 PCA(Principle Component Analysis: 주성분 분석)가 숨어 있다 예전에 바지를 사려면 허리 둘레, 기장 이외 엉덩이 둘레, 허벅지 둘레, 무릎 높이 등을 재어 가봉 후 맞춤형 옷을 구 입하게 되었다. 이제는 (허리둘레, 기장) 두 측정치만 가지고 기성복을 사 입어도 잘 맞는다. 이것이 가능한 것은 하 체에 대한 많은 체형 측정 변수들이 2개의 변수로 축약될 수 있고 그 변수가 다른 체형에 대한 정보의 대부분을 가 지고 있기 때문이다. 변수 정보를 축약한 변수를 주성분 변수라 하고 원 변수를 축약할 수 있는지 알아보는 것을 주 성분 분석이라 한다. 물론 기성복이 맞지 않거나 자신에게 가장 적합한 맞춤 옷을 원하는 사람은 Big & Tall 상점이나 디자이너 숖을 찾 아야 한다. 이는 체형 맞춤형 옷의 경우 다양한 측청치가 필요하지만 허리둘레와 기장만 측정하면 희생되는 정보가 발생하게 되므로(주성분변수는 원 변수 변동=정보의 80ⓒ% 정도 가짐) 모든 사람의 체형을 만족할 수는 없다. 주성분분석은 최종분석이 아니라 초기 분석이다. 예를 들어 군집분석이나 판별분석의 개채 유도기법에서 군집, 집 단, 오분류 개체에 대한 정보를 얻거나 적절한 이름 부여를 위하여 필요하다. 그러므로 다변량분석에서는 먼저 주성 분분석(주성분변수를 구하고 적절한 이름 부여)을 먼저 실시해 놓는 것이 적절하다. 이차원에 있는 3개 나무들을 직선(1차원)에 나타낼 경우 어 떤 방향에서 봐야 그들을 식별할 수 있나? 위에서 내려본다 면 나무 A가 B에 가려 식별이 불가능하고 y-축으로 투영한 다면 나무 C가 나무 A를 식별 불가능하게 할 것이다. 가장 적절한 투영방법은 눈의 위치에서 바라보는 것이다. 그러면 나무의 거리는 다소 왜곡되지만 식별 가능하다. 주성분분 석은 정보 손실을 최소화 하면서 차원(변수의 개수)을 축 약하는 방법이다. 데이터 관점 원 변수 데이터 : p 개 변수 - - 변수 간에는 상관관계가 존재, - 상관관계가 존 재한다는 것은 개체에 대한 정보가 겹친다는 것이고 완벽한 상관관계, 즉 상관계수 이면 두 변수 중 하나는 개체를 설명하는데 더 이상 필요없다. 주성분 변수 : 원 변수의 선형결합 선형계수 를 부하 loading 이라 한다. x = x 1 x 2 ! x p corr ( x i , x j ) 0 ±1 y = y 1 y 2 ! y p = l 11 l 12 ! l 1 p l 21 l 22 ! l 2 p ! ! " ! l p1 l p 2 ! l pp x 1 x 2 ! x p l ij 한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr / Page 1 13

다변량분석 Multivariate Data Analysis 주성분분석 Principal …wolfpack.hnu.ac.kr/2015_Fall/MDA/MDA_PCA_15Oct.pdf · 1) SD의 제곱이 부하값이다. 2) Proportion : 주성분변수의

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 다변량분석 Multivariate Data Analysis 주성분분석 Principal …wolfpack.hnu.ac.kr/2015_Fall/MDA/MDA_PCA_15Oct.pdf · 1) SD의 제곱이 부하값이다. 2) Proportion : 주성분변수의

다변량분석 Multivariate Data Analysis

주성분분석 Principal Component Analysis

주성분 개념

기성복 바지를 살 때 우리 몸의 치수를 모두 알아야 하는가? 그렇지 않다. 허리 둘레와 기장만(우리나라는 기장 줄이는데 수공료가 거의 들지 않으므로 공장에서 최대한 길게 만들어 출하하고 판매점에서 10분만에 구입자의 기장에 맞게 줄여줄 수 있으므로 허리둘레만 알면 된다) 알고 있으면 충분하다. 여기에 PCA(Principle Component Analysis: 주성분 분석)가 숨어 있다

예전에 바지를 사려면 허리 둘레, 기장 이외 엉덩이 둘레, 허벅지 둘레, 무릎 높이 등을 재어 가봉 후 맞춤형 옷을 구입하게 되었다. 이제는 (허리둘레, 기장) 두 측정치만 가지고 기성복을 사 입어도 잘 맞는다. 이것이 가능한 것은 하체에 대한 많은 체형 측정 변수들이 2개의 변수로 축약될 수 있고 그 변수가 다른 체형에 대한 정보의 대부분을 가지고 있기 때문이다. 변수 정보를 축약한 변수를 주성분 변수라 하고 원 변수를 축약할 수 있는지 알아보는 것을 주성분 분석이라 한다.

물론 기성복이 맞지 않거나 자신에게 가장 적합한 맞춤 옷을 원하는 사람은 Big & Tall 상점이나 디자이너 숖을 찾아야 한다. 이는 체형 맞춤형 옷의 경우 다양한 측청치가 필요하지만 허리둘레와 기장만 측정하면 희생되는 정보가 발생하게 되므로(주성분변수는 원 변수 변동=정보의 80ⓒ% 정도 가짐) 모든 사람의 체형을 만족할 수는 없다.

주성분분석은 최종분석이 아니라 초기 분석이다. 예를 들어 군집분석이나 판별분석의 개채 유도기법에서 군집, 집단, 오분류 개체에 대한 정보를 얻거나 적절한 이름 부여를 위하여 필요하다. 그러므로 다변량분석에서는 먼저 주성분분석(주성분변수를 구하고 적절한 이름 부여)을 먼저 실시해 놓는 것이 적절하다.

이차원에 있는 3개 나무들을 직선(1차원)에 나타낼 경우 어떤 방향에서 봐야 그들을 식별할 수 있나? 위에서 내려본다면 나무 A가 B에 가려 식별이 불가능하고 y-축으로 투영한다면 나무 C가 나무 A를 식별 불가능하게 할 것이다. 가장 적절한 투영방법은 눈의 위치에서 바라보는 것이다. 그러면 나무의 거리는 다소 왜곡되지만 식별 가능하다. 주성분분석은 정보 손실을 최소화 하면서 차원(변수의 개수)을 축 약하는 방법이다.

데이터 관점

원 변수 데이터 : p 개 변수 - - 변수 간에는 상관관계가 존재, - 상관관계가 존

재한다는 것은 개체에 대한 정보가 겹친다는 것이고 완벽한 상관관계, 즉 상관계수 이면 두 변수 중 하나는 개체를 설명하는데 더 이상 필요없다.

주성분 변수 : 원 변수의 선형결합

•선형계수 를 부하 loading 이라 한다.

x =

x1x2!xp

⎜⎜⎜⎜

⎟⎟⎟⎟

corr(xi , x j ) ≠ 0

±1

y =

y1y2!yp

⎜⎜⎜⎜

⎟⎟⎟⎟=

l11 l12 ! l1pl21 l22 ! l2 p! ! " !lp1 lp2 ! lpp

⎜⎜⎜⎜⎜

⎟⎟⎟⎟⎟

x1x2!xp

⎜⎜⎜⎜

⎟⎟⎟⎟

lij

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr

/ Page1 13

Page 2: 다변량분석 Multivariate Data Analysis 주성분분석 Principal …wolfpack.hnu.ac.kr/2015_Fall/MDA/MDA_PCA_15Oct.pdf · 1) SD의 제곱이 부하값이다. 2) Proportion : 주성분변수의

다변량분석 Multivariate Data Analysis

주성분분석 Principal Component Analysis

•주성변변수 들은 서로 상관관계가 없어 - 서로 개체에 대하여 가진 정보가 겹치지 않는

다는 것을 의미한다.

•주성분변수 중 원변수의 변동을 가장 많이 설명하는 변수를 제일 주성분이라 하고 으로 기호한다. 두 번째

설명력이 높은 주성분 변수를 제이 주성분변수, 라 기호한다.

활용 예

1) 우수 지원자 선발 - 데이터 스크린 (개체 판별)

지원자의 능력에 대해 측정한 15개 항목을 2~4개의 차원(주성분변수)으로 축약하여 각 주성분변수의 점수를 활용하여 우수 지원자를 선발할 수 있다.

데이터가 수집되면 일변량인 경우에는 줄기-잎 그림, 상자-수염 그림을 그려 데이터의 분포 형태나 이상치 존재 여부를 파악한다. 이변량인 경우에는 산점도를 그려 두 변수간 함수 관계와 이상치 등을 판단한다. 그럼 변수가 3개 이상인 경우 데이터를 어떻게 표현할 것인가? 3차원 그래프를 산점도로 나타내는 Bubble 그림이 있지만 해석하는데 다소 어려움이 있고 3개의 변수가 모두 고려된 관계를 설정하는데 충분하지 않다. 주성분 분석은

개 변수를 가진 데이터를 저 차원(많아야 3~4개 차원) 그래프로 나타내어 개체들의 특성이나 이상치(우수한 정도가 높음)의 존재 여부를 알아보는 방법이다.

2) 골퍼 능력 측정 - 데이터 스크린 (개체 판별)

골퍼의 능력은 하나의 척도로 평가하려면 벌어들이는 상금으로 측정할 수 있다. 골퍼 능력의 척도를 보면 드라이버 비거리, 페어웨이 안착율, 샌드 세이브, 그린 적중률, 퍼팅 수 등이다. 이 척도들을 이용하여 서로의 경쟁력을 측정한다고 한다면, 어떻게 5개의 척도를 축약한 척도를 구할 수 있을까?

3) OECD 국가 분류 - 군집분석

사회경제지표(실업률, 인구성장률, GDP, 개인 교육기간, …)를 활용한 군집분석 결과 OECD 국가들을 4개의 군집으로 나누었다고 하자, 각 군집의 특성을 파악하여 적절한 군집 이름을 붙여야 한다면, 사회경제지표들이 다수여서 몇 개의 대표 지표를 계산하여 군집의 개체를 대표지표들의 산점도로 표현한다면 쉽게 군집의 이름을 붙일 수 있을 것이다.

개체를 분류하는 경우 측정 항목(변수)이 1-2개이면 평균 혹은 산점도에 의해 가능하다. 다음 절의 예제 경우 IQ는 개체(사람) 간 차이가 거의 없으므로 몸무게 많은 그룹, 낮은 그룹으로 나눌 수 있다. 이처럼 2개 변수까지는

산점도와 평균만으로 개체 분류가 가능하나 개인 다변량 데이터 개체를 산점도 만으로는 어려움이 있으므로 주성분에 의해 개체를 분류하거나 군집 분석 결과에 대한 해석으로 주성분 분석을 사용한다.

4) 대출 신청 기업 승인여부 - 판별분석

기업의 규모(종업원 수, 매출액), 설립연도, 부채비율 등을 평가하여 대출 승인여부와 이자율을 결정하게 된다. 은행은 과거 기업의 대출 상환에 대한 정보를 활용하여 승인여부를 결정하는 판별규칙을 결정한다. 신규 대출 신청한 기업의 판별규칙의 변수 값을 적게하여 대츨 승인여부를 결정한다. 판별규칙의 예측값은 0과 1사이의 확률값으로 계산된다.

판별식을 이용하여 개체를 분류하는 분석을 판별 분석이라 한다. 판별 분석의 경우 분산-공분산 행렬의 역 행렬을 구해야 하는데 측정 변수가 너무 많으면 계산이 오래 걸린다. 이런 경우 주성분 분석 방법에 의해 변수의 수

yi corr(yi , yj ) = 0

y1y2

3≥p

3≥p

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr

/ Page2 13

Page 3: 다변량분석 Multivariate Data Analysis 주성분분석 Principal …wolfpack.hnu.ac.kr/2015_Fall/MDA/MDA_PCA_15Oct.pdf · 1) SD의 제곱이 부하값이다. 2) Proportion : 주성분변수의

다변량분석 Multivariate Data Analysis

주성분분석 Principal Component Analysis

를 줄여 만든 새로운 변수(주성분)에 의해 판별 분석을 하게 된다. 그러나 요즈음은 컴퓨터 성능의 발달로 역 행렬을 구하는데 문제가 없으므로 이 경우에는 주성분 분석을 거의 사용하지 않는다.

(5)회귀 분석

다중 회귀분석에서 설명 변수간의 상관 관계가 높으면 다중공선성(multicollinearity) 추정 회귀 계수의 분산이

커지므로 (변수들 간의 상관 관계가 높으면 계산 시 이 되므로 회귀 계수 추정치 분산

이 매우 커진다) 최소자승 추정치(OLS)를 믿을 수 없게 된다. (Gauss Markov 정리 : OLS is BLUE best linear among unbiased estimator 최소분산불편(선형)추정량)

다중공선성 문제의 경우 ①문제가 되는 설명 변수를 제외하거나 ②능형 회귀분석(Ridge Regression: 추정치의 불편성을 희생하고 최소 분산을 갖는 추정치를 구하는 방법)을 이용하여 문제를 해결하거나 ③주성분 변수를 설명 변수로 이용하여 회귀 분석을 실시한다. 주성분 변수들은 서로 독립(상관 관계가 존재하지 않는다)이라는 성질이 있는데 이 성질을 이용하게 된다. 그러나 주성분변수가 명확하게 해석되지 않는다면 회귀분석 결과 해석에 어려움이 있어 자주 사용되지는 않는다. (이론적 연구결과)

맛보기

20명 학생들의 몸무게(~N(80,10))와 IQ(~N(110,2))에서 난수생성 하여 데이터를 얻었다. 산점도를 보면 몸무게와는 달리 IQ의 변동(변수가 개체에 대해 가진 정보의 개념으로 해석)은 작다. 그러므로 IQ는 학생 개체들을 구별하는 역할이 미미하나 몸무게 변수는 학생들의 정보를 대부분 가지고 있다. 만약 2차원의 그래프를 1차원 직선으로 줄인다면 위에서 아래로 모든 점들을 내로 놓는 것이 y-축으로 투영하는 것보다 개체 구별이 용이하다. 두 변수의 변동의 크기를 비교하기 위하여 x-축과 y-축의 범위를 동일하게 설정하였다.

두 변수의 공분산 행렬 : 데이터 포맷(data.frame()함수)을 행렬 형태로 만들어야 cor()함수는 공분산행렬을 계산한다. 몸무게 분산은 73.8, IQ 분산은 4.96이고 공분산은 -4.27이다.

공분산행렬을 이용하여 고유값(Eigen value)와 그에 대응하는 고유벡터(Eigen vector) 구한 것이다. 원 변수들의 변동 합(분산합=73.8+4.96)은 고유값의 합과 동일하다. 고유벡터는 각 고유값에 대응하는 것으로 주성분 변수의 부하(선형계수) 값이다. 공분산이 음(-)이므로 몸무게와 IQ는 음의 상관관계(몸무게가 올라가면 IQ는 낮아진

1)( −X́X 0|| ≈X́X

12 )()ˆ( −ʹ= XXMSEbs

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr

/ Page3 13

Page 4: 다변량분석 Multivariate Data Analysis 주성분분석 Principal …wolfpack.hnu.ac.kr/2015_Fall/MDA/MDA_PCA_15Oct.pdf · 1) SD의 제곱이 부하값이다. 2) Proportion : 주성분변수의

다변량분석 Multivariate Data Analysis

주성분분석 Principal Component Analysis

다, 물론 유의성을 검정해여 하지만)로 인하여 각 변수의 부하값은 부호가 반대이다. 1열은 제일 주성분의 부하값이고 2열은 제이 주성분 부하값이다. 두 변수의 관계가 음이므로 부하값의 부호가 서로 반대임을 알 수 있다. 각 주성분 변수값(점수)는 다음과 같이 구한다. 일반적으로 주성분 점수는 원 변수 값을 그대로 사용하기보다는 평균을 빼

주어(W 대신 ) 점수가 평균이 0이 되도록 하여 해석이 용이하게 한다. 각 주성분의 부하값의 제곱 합은 1이고 서로 다른 주성분 부하의 곱의 합은 0이다. 그러므로 제일 주성분점수와 제이 주성분점수는 서로 독립이다.

제일 주성분 점수 :

제이 주성분 점수 :

(주의) 소프트웨어가 계산할 때는 제일 주성분의 부하가 가장 큰 값을 양이 되도록 계산한다. 그러므로 실제로는 제일 주성분 부하는 (0.998, -0.0062), 제이 주성분은 (0.0062, 0.0998)로 나타난다. 다음 R의 계산 결과를 보면 알 수 있다.

prcomp() 함수는 ds 데이터의 측정형 변수 (몸무게, IQ) 이용하여 주성분분석을 실시하여 pca 오브젝트에 저장하였다.

summary() 함수는 주성분분석 결과의 요약을 출력

pca$rotation : 주성분 분석결과 저장한 pea 오브젝트에 있는 부하값 출력

biplot() : 주성분 부하값과 주성분 점수를 산점도에 나타내는 함수

1) SD의 제곱이 부하값이다.

2) Proportion : 주성분변수의 원변수 변동 설명기여율(%)로 합은 1이다. 제일 주성분 설명비율이 94%이므로 제이 주성분(설명력 6%)을 고려하지 않아도, 2차원에서 1차원으로 축약 가능

위의 공분산 행렬로부터 구한 고유벡터와 동일하다. 물론 부호는 반대이다. 이유는 위에서 설명하였다.

W −W

y1 = −0.998*W + 0.062* IQ

y1 = −0.062*W − 0.0998* IQ

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr

/ Page4 13

1) 제일 주성분 (x-축) : 몸무게 변수의 부하값이 매우 크며 IQ는 상대적으로 매우 작다. 길이가 원변수 설명 변동설명 기여율이다.

2) 제이 주성분 : 제일 주성분에 비해 길이가 짧다. 이는 원변수 변동 설명기여율이 제일 주성분에 비해 작다는 것을 의미한다.

3) 각 주성분 변수의 이름은 원변수의 부하값 크기를 활용하므로 제일 주성분은 체력성분, 제이 주성분은 지적성분으로 이름 부여할 수 있다.

4) 12번째 관측치의 제일 주성분 점수가 가장 크고 9번째 관측치는 제이 주성분 점수가 가장 크다. (주성분 점수가 0을 중심으로 흩어져 있음 - 이는 주성분 점수를 구할 때 원변수의 평균을 빼 준 후 계산하였기 때문)

Page 5: 다변량분석 Multivariate Data Analysis 주성분분석 Principal …wolfpack.hnu.ac.kr/2015_Fall/MDA/MDA_PCA_15Oct.pdf · 1) SD의 제곱이 부하값이다. 2) Proportion : 주성분변수의

다변량분석 Multivariate Data Analysis

주성분분석 Principal Component Analysis

주성분변수 원칙

다음 원칙에 의해 주성분(principal components)을 얻는다.

(1)주성분변수 간에는 서로 상관 관계가 전혀 존재하지 않는다. (독립이다)

(2)첫 주성분은 원 데이터의 변동(분산, 정보)을 가장 많이 설명하고 계속 구해지는 2, 3, …번째 주성분은 자료의 나머지 정보들을 설명하고 크기는 점점 줄어든다.

변수가 p개인 원 변수 벡터 의 선형결합의 형태로 주성분이 구해진다.

칙 변수벡터는 이다.

주성분변수 정의 및 성질

주성분 분석은 개의 원 변수의 선형 결합의 주성분 변수를 이용하여 원 변수의 공분산 구조를 설명하는 방법이다. 공분산 구조를 설명한다는 것은 원 변수의 변동 합과 주성분 변수의 변동 합은 동일하다는 것을 의미한다. 그럼 선형 계수는 어떻게 구할 것인가?

변수 벡터 가 공분산 행렬 를 갖는다고 하자. 공분산행렬은 양-정치행렬(positive definite matrix)이다. <=> 행렬 의 고유치는 모두 양수이다.

그러므로 공분산행렬 의 고유치를 라 하고 각 고유치( )에 대응하는 고유벡터를 라 하자. 고

유벡터 가 i-번째 성분의 선형계수(부하)가 된다. 그러므로 i-번째 주성분변수는 다음과 같다.

, 그리고 주성분변수의 분산은 (자신의 고유치)

그리고 두 주성분변수의 공변량(상관계수)은 0이다. (서로 독립)

x =

x1x2!xp

⎜⎜⎜⎜

⎟⎟⎟⎟

y = Lx

y =

y1y2!yp

⎜⎜⎜⎜

⎟⎟⎟⎟=

l11 l12 ! l1pl21 l22 ! l2 p! ! " !lp1 lp2 ! lpp

⎜⎜⎜⎜⎜

⎟⎟⎟⎟⎟

x1x2!xp

⎜⎜⎜⎜

⎟⎟⎟⎟

p

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

=

px

xx

x!2

1

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

pppp

p

p

σσσ

σσσ

σσσ

... ...

...

...

21

22221

11211

Σ

Σ pλλλ ≥≥≥ ...21 iλ ie

ei

yi = (ei1 ei2... eip )

x1

x2

!xp

⎜⎜⎜⎜

⎟⎟⎟⎟

V (yi ) = ei'Σei = λi

Cov(yi , yj ) = ei'Σej = 0

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr

/ Page5 13

Page 6: 다변량분석 Multivariate Data Analysis 주성분분석 Principal …wolfpack.hnu.ac.kr/2015_Fall/MDA/MDA_PCA_15Oct.pdf · 1) SD의 제곱이 부하값이다. 2) Proportion : 주성분변수의

다변량분석 Multivariate Data Analysis

주성분분석 Principal Component Analysis

원 변수 들의 변동의 합은 고유치의 합과 동일하다. 다음의 은 대각 원소가 의 고유치인 대

각 행렬이고 는 고유치에 대응하는 고유 벡터로 구성된 직교행렬(orthogonal matrix, )이다.

.

그러므로  i-번째 주성분 가 원변수의 변동을 설명하는 비율(변동 설명 기여율)은 이다.

주성분 구하기

(1)첫 번째 주성분(first principal component)

을 만족하는 벡터 중 의 분산 을 최대화하는 을 찾은 후,

에 의해 구한 값이 첫 번째 주성분이라 한다. 는 평균 벡터이고 는 원변수 의 평균이다.

(2)두 번째 주성분(second principal component)

, (첫 번째 주성분과 독립이다. 즉 첫 번째 주성분이 설명하는 자료의 변동 부분과 겹치지 않

는다)을 만족하고 의 분산을 최대화하는 을 구하고 을 두 번째 주성분이라 한다.

(3) 세 번째 주성분(third principal component)

, , (첫 번째, 두 번째 주성분과 독립)을 만족하고 의 분산을 최대화 하는

을 구하고 을 세 번째 주성분이라 한다.

위의 방법을 반복하여 변수의 개수만큼의 주성분들( )을 구한다.

주성분은 변수의 개수만큼 존재하고 각 주성분은 서로 독립(겹치는 정보가 없다)이다. 각 주성분의 벡터가 아니라 하나의 변수임에 유의하기 바란다.

x ' = (x1 x2 ! xp ) Λ Σ

P P 'P = I

∑∑==

=Λ=ʹΛ=ʹΛ=Σ=p

ii

p

ii trPPtrPPtrtrxVar

11

)()()()()( λ

yi λi / λkk∑

11'1 =aa 1a )('1 µ−xa )('( 1 µ−xaV 1a y1 = a1

' (x − µ)

µ =

µ1µ2

µp

⎜⎜⎜⎜

⎟⎟⎟⎟

iµ ix

12'2 =aa 02

'1 =aa

)('2 µ−xa 2a )('22 µ−= xay

13'3 =aa 03

'1 =aa 03

'2 =aa )('3 µ−xa

3a )('33 µ−= xay

pyyy , , , 21 !

( )1

'

'2

'1

2

1

×−

⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜

=

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

=p

pp

x

a

a

a

y

yy

y µ!!

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr

/ Page6 13

Page 7: 다변량분석 Multivariate Data Analysis 주성분분석 Principal …wolfpack.hnu.ac.kr/2015_Fall/MDA/MDA_PCA_15Oct.pdf · 1) SD의 제곱이 부하값이다. 2) Proportion : 주성분변수의

다변량분석 Multivariate Data Analysis

주성분분석 Principal Component Analysis

(4)주성분 계수 벡터 를 어떻게 구할 것인가?

변수 벡터의 공분산 행렬 (혹은 상관계수 행렬 R)의 고유치 에 대응하는 고유 벡터

은 앞에서 언급한 주성분 조건을 만족한다. 즉, 이다.

선형계수 는 선형계수라고 하고 주성분분석에서는 부하 loading 값이라 한다.

모집단의 분산-공분산 행렬 는 알 수 없으므로 이에 대한 추정치로 표본 분산-공분산 행렬 을 이용한다. 표

본 분산-공분산 행렬 로부터 고유치를 구하고 그에 대응하는 고유 벡터를 구하여 이를 주성분의 추정치로 사용하면 된다.

고유값의 의미

다음은 원변수를 이변량 정규분포 에서 생성한 데이터이다. 네모 상자의 밑변이 x-축 변

수, 옆 면이 y-축 변수이다. 공분산행렬로부터 구한 고유값은 (9.7, 3.2)이고 제일 주성분의 부하값은 (-0.94, -0.33)이고 제이 주성분은 (0.33, -0.94)이다. 주성분 변수의 축은 중앙의 십자형 축이다.

두 원변수의 상관계수는 0.33이지만 주성분 축으로 데이터를 회전하면 상관계수는 0이다.

주성분 선형계수(부하 ) 성질

① 선형계수는 , 이다. 그러므로 주성분변수 간에는 상관계수가 0이다.

② 위의 조건을 만족하는 선형계수(부하)는 무수히 많은 값이 존재한다. (앞의 몸무게 예제에서 보듯이 공분산 행렬로부터 구한 고유벡터와 소프트웨어가 제공하는 고유벡터의 부호가 상이하다. 그리고 값까지 다른 고유벡터가 또한 존재한다)

③ 주성분 의 분산은 고유치 와 같다.

ja

Σ pλλλ ≥≥≥ !..21

peee ,..., , 21 pp eaeaea === ..., , , 2211

l i = ai

Σ S

)ˆ( Σ=S

N(( 105),( 9 2

2 4))

l i

l i' l j = 0, for i ≠ j l i

' l j = 1, for i = j

jy jλ

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr

/ Page7 13

Page 8: 다변량분석 Multivariate Data Analysis 주성분분석 Principal …wolfpack.hnu.ac.kr/2015_Fall/MDA/MDA_PCA_15Oct.pdf · 1) SD의 제곱이 부하값이다. 2) Proportion : 주성분변수의

다변량분석 Multivariate Data Analysis

주성분분석 Principal Component Analysis

④ 분산-공분산 행렬trace 은 원 변수 변동(분산)의 합이다.

즉 이므로 주성분 의 변수 변동의 설명력은 이다.

(몸무게, IQ) 예제에서 공분산행렬(Σ) 추정치 표본 공분산행렬 S는

다음과 같다.

공분산행렬 S로부터 계산된 고유값, 그에 대응하는 고유 벡터는 다음과 같다.

원 변수들의 분산의 합(73.8+4.96)은 고유값의 합(74.1+4.69)과 같다. 각 고유벡터 원소의 제곱 합은 1(-0.99^2+0.06^2)이고 각 고유 벡터 곱은 0(-0.998*-0.062+0.062*-0.998)이다. 각 고유벡터는 서로 독립이므로 주성분변수 또한 서로 독립이다.

주성분 이름 부여

1) 주성분 점수

주성분을 이용하여 각 개체에 대한 주성분 점수를 계산하고 이를 이용하여 개체를 좌표에 나타낼 수 있다. 이를

통하여 개체(데이터) 이상치 발견이 가능하고 주성분 변수간 관계를 파악할 수 있다. 다음은 번째 개체의 번째 주성분 점수이다.

, 은 r-번째 개체의 측정치 ( )

제일 주성분 점수 :

제이 주성분 점수 :

2) 주성분 부하 벡터 (선형계수 벡터)

공분산 행렬의 고유 벡터 로부터 얻어지는 , 들을 성분 부하 벡터 (component loading vector)라 한다(그래서 소프트웨어 R에서는 다른 통계 소프트웨어와 달리 부하값의 제곱근을 제시한

)(Σtr pxxx ,...,,, 21

ppi

ixVtr σσσ +++==Σ ∑ ...)()( 2211jy

∑=

p

jjj

1/ λλ

r j

)(' µ−= rjrj xeyrx nr ,...,2,1=

y1 = 0.998*(W − 79)− 0.062*(IQ −109)

y1 = 0.062*(W − 79)+ 0.0998*(IQ −109)

je jjj ec λ= pj ,...,2,1=

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr

/ Page8 13

Page 9: 다변량분석 Multivariate Data Analysis 주성분분석 Principal …wolfpack.hnu.ac.kr/2015_Fall/MDA/MDA_PCA_15Oct.pdf · 1) SD의 제곱이 부하값이다. 2) Proportion : 주성분변수의

다변량분석 Multivariate Data Analysis

주성분분석 Principal Component Analysis

다). 성분 부하 벡터는 주성분을 만들 때 사용되는 원 변수의 선형 계수에 해당하므로 주성분의 이름을 부여하는데 사용할 수 있다.

성분 부하 값이 크다는 것은 그에 대응하는 원 변수의 영향이 크다는 것을 의미하므로 성분 부하 값이 큰 변수를 살펴 주성분의 이름을 부여하면 된다. 즉 부하 크기는 주성분 내의 각 변수의 중요성을 나타내므로 이를 이용하여 주성분 변수의 이름을 부여한다.

주성분은 원 변수의 선형 결합의 형태로 되어 있으므로 적절한 변수 이름을 부여하여 첫 번째 주성분, 두 번째 주성분이라 아니라 그 변수 명으로 부르는 것이 분석 결과 해석에 중요하다. 부하 벡터는 고유치의 제곱근을 곱해준 것 밖에 없으니 고유 벡터의 값만으로 비교해도 충분하다.

3) 공분산 행렬? 상관계수 행렬? 어느 것을 이용하여 부하벡터 구할 것인가?

앞에서 설명하였듯이 원 변수 관측값으로부터 계산한 (표본) 공분산행렬(Σ) 혹은 상관계수 행렬(R)로부터 계산된 고유값에 대응하는 고유벡터를 부하벡터로 계산한다.

(공분산행렬 이용) 원 변수의 단위가 동일한 경우 - 우수 지원자 선발, 15개 측정항목이 모두 10점 리커트 척도임

(상관계수 행렬 이용) 원 변수의 단위가 다를 경우 - 골퍼들의 경기력 : 비거리, 페어웨이 안착율, 샌드 세이브, 그린 적중률, 퍼팅 수 등은 속성이 서로 다름, 원 변수를 표준화 하여 공분산을 구하는 상관계수 행렬 이용하는 것이 적절함.

(몸무게, IQ)는 단위가 크게 차이가 나지 않으므로 공분산행렬을 이용하는 것이 적절함. 가능하면 단위 크기를 맞추어 공분산 행렬을 이용하는 것이 적절함. (이유? 상관계수 행렬은 분산이 표준화되어 주성분변수는 원변수의 분산(변동) 정보를 반영하지 못한다. 그래서 모든 소프트웨어의 default 옵션은 공분산 행렬을 이용하여 고유벡터를 구하는 것이다. 예를 들어 다른 변수의 단위는 두 자리 정수인데 반해 소득 변수의 단위가 백만 단위라면 소득 단위를 십만원으로 하여 자릿수를 조정하고, 공분산 행렬을 이용하여 주성분 분석을 실시하면 된다.

주성분 개수 설정

주성분 분석은 변수 차수를 줄이는데 목적이 있는데 실제 주성분의 개수는 원 변수의 수만큼 존재하게 된다. 즉 원 변수가 단지 서로 독립인 변수들로 변환된 것뿐이다.

사실 변수의 개수(차수)를 줄여서는 원 변수들이 가진 정보(변동)을 100% 표현할 수 없다. (몸무게, IQ) 예제처럼 IQ 변수의 변동이 아무리 없어도 2차원 공간에 표현된 정보(산점도)를 1차원 공간으로 줄인다면 어느 정도 정보의 희생은 각오해야 한다. (제일 처음의 숲속 나무 예제 그림도 참고)

주성분 개수가 원 변수의 개수와 동일하므로 원 변수의 변동을 어느 정도 설명(일반적으로 80%)하는 주성분만을 선택하여 2차 분석을 실시하게 된다. 변동에 대한 설명 정도를 희생하여 차수를 줄이게 된다.

1) 총 변동 설명 비율

k-번째 주성분의 설명력은 이다. 공분산 행렬로부터 주성분을 구할 때 첫 번째 주성분의 설명력( )

이 가장 크고, 두 번째 주성분의 설명력은 이렇게 크기 순으로 주성분을 구하였다. 주성분 설명력의 합이 변수의 총 변동 중 약 80%가 되는 주성분까지만 사용하면 어떨까? (Rule of Thumb)

∑=

p

jjk

1/ λλ

!,2λ

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr

/ Page9 13

Page 10: 다변량분석 Multivariate Data Analysis 주성분분석 Principal …wolfpack.hnu.ac.kr/2015_Fall/MDA/MDA_PCA_15Oct.pdf · 1) SD의 제곱이 부하값이다. 2) Proportion : 주성분변수의

다변량분석 Multivariate Data Analysis

주성분분석 Principal Component Analysis

일반적으로 상관계수 행렬을 사용한 경우 고유값이 1 이상인 주성분만을 선택하면(SAS의 경우 디폴트가 고유값 1 이상인 주성분만 출력) 주성분변수의 원변수 변동 누적 설명기여율이 80% 이상이다. 실험실의 자료이면 주성분이 2-3개 정도이면 90%, 사람의 의견을 점수화한 것은 주성분이 5-6개 되어야 70% 정도가 된다.

2) SCREE plot 사용

SCREE 그림을 이용하여 갑자기 떨어지거나 0에 가까워지는 것 이전 주성분만을 사용하면 된다. 다음은 원 변수가 9개 있는 경우 SCREE plot을 그린 것이다. 4번째부터 뚝 떨어지고 0에 가까우므로 주성분이 3개이면 충분하다. 시각적 판단에 의존하므로 자주 사용하지는 않는다.

공분산 행렬 Σ

(상관계수 행렬의 대각원소는 1이므로 변수의 개수와 동일

pj /λ

고유값의 합은 원변수 분산의 합과 동일

∑==

p

ikjj Str

1/)(/ λλλ

상관 계수 행렬 R

! ),ˆ,2( ),ˆ,1( 21 λλ

0

17.5

35

52.5

70

0 2 5 7 9

eigen

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr

/ Page10 13

Page 11: 다변량분석 Multivariate Data Analysis 주성분분석 Principal …wolfpack.hnu.ac.kr/2015_Fall/MDA/MDA_PCA_15Oct.pdf · 1) SD의 제곱이 부하값이다. 2) Proportion : 주성분변수의

다변량분석 Multivariate Data Analysis

주성분분석 Principal Component Analysis

우수 지원자 선발 예제

•Standard Deviation 제곱값이 고유값 : 고유값의 합은 원변수 분산 합과 동일함

•누적 변동기여율이 80%인 최적 주성분 개수는 4개 - 상관계수행렬로부터 구하지 않았으므로 고유값 1과 일치하지 않음

•상관계수행렬로부터 구한 고유값의 합은 원변수의 개수 15와 같고, 고유치 1 이상인 주성분 개수는 4이고 80% 규칙과 일치한다.

💾

APPLICANT.csv

|예제| A 기업에서 사원 5명을 선발하기 위하여 지원자 중 50명을 1차 선발한 후 15개 항목(FL-이력서, AP-외모, AA-학교성적, LA-호감, SC-자신감, LC-명석, HON-진실, SM-마케팅, EXP-경력, DRV-추진력, AMB-야망, GSP-개념파악, POT-잠재력, KJ-협동심, SUIT-업무적합성)에 대하여 10점 만점으로 평가한 데이터이다

app_ds=read.csv("applicant.csv") #데이터 읽기 app_ds0=app_ds[,2:16] #15개 분야 데이터 subset

pca_app=prcomp(app_ds0, scale. = F) #주성분분석(공분산행렬 이용) summary(pca_app) #고유값, 변동설명기여율 출력 pca_app$rotation #부하값 출력 biplot(pca_app, choices = 1:2) #제 1,2 부하값 및 주성분점수 산점도 biplot(pca_app, choices = 3:4) #제 3,4 부하값 및 주성분점수 산점도

eigen_value=pca_app$sdev^2 p=seq(1:15) plot(p,eigen_value,type="b",main="Scree Plot",xlab="# of PC", ylab="Eigen value")

코멘트 •먼저 데이터가 있는 폴더를 working directory로 설정한다.

•app_ds(,2:16) 함수는 읽어 들인 데이터 중 2열부터 16열까지만 불러오기.

•prcomp() : 공분산행렬을 사용하여 고유값과 고유벡터를 구한다. 만약 상관계수행렬을 사용하기 원한다면 pca_app=prcomp(app_ds0, scale. = T) 이렇게 사용하면 된다.

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr

/ Page11 13

Page 12: 다변량분석 Multivariate Data Analysis 주성분분석 Principal …wolfpack.hnu.ac.kr/2015_Fall/MDA/MDA_PCA_15Oct.pdf · 1) SD의 제곱이 부하값이다. 2) Proportion : 주성분변수의

다변량분석 Multivariate Data Analysis

주성분분석 Principal Component Analysis

•제일 주성분 : 솔직, 마케팅, 추진력, 개념파악, 잠재력 - 기획 능력

•제이 주성분 : 경험(-), 업무적합성(-), 이력서(-) - 경험 성분 (음의 값일수록 높은 경험)

•제삼 주성분 : 친근감, 솔직함, 협동심 - 인성 성분

•제사 주성분 : 대학성적(-), 잠재력(-), 친근감 - 학업능력 성분 (음의 값일수록 높은 학업능력)

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr

/ Page12 13

1) 기획능력이 가장 좋은 지원자는 40, 39 지원자

2) 경험이 많은 지원자는 41, 42번 지원자

(40, 39) 지원자는 기획능력 가장 높고 경험도 탑 5위에 들어감

(41, 42) 지원자는 경험만 많고 기획능력이 현저히 떨어짐

두 성분만 고려한다면 (40, 39) 지원자를 선발하는 것이 적절함

Page 13: 다변량분석 Multivariate Data Analysis 주성분분석 Principal …wolfpack.hnu.ac.kr/2015_Fall/MDA/MDA_PCA_15Oct.pdf · 1) SD의 제곱이 부하값이다. 2) Proportion : 주성분변수의

다변량분석 Multivariate Data Analysis

주성분분석 Principal Component Analysis

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr

/ Page13 13

1) 인성이 좋은 지원자는 (50, 13, 14)

2) 학업능력이 높은 지원자는 (46, 15, 47)

인성이 좋은 (50, 13, 14)는 (이들은 학업 능력도 좋은 편임) 인사과

기획능력과 경험이 많은 (40, 39)는 경영기획부로 선발하면 될 것 같음

X-축은 주성분 개수인데, 4이후 5부터 떨어짐이 둔화된다.

적절한 주성분 개수=4

시각적 판단