안녕하세요,
이번에는 SIMCA를 처음 사용하는 고객 분들에게 가장 많은 질문을 받았던 PCA 그래프 해석에 대해 알아보려 합니다.
PCA는 다량의 데이터에 대한 검측 결과가 있을 때 쉽고 빠르게 분석을 도와줍니다. 서로 비슷한 특징을 가지고 있는 샘플을 찾거나, 어떤 이유로 서로 유사성을 가지고 있는지 등을 Score와 Loading 성분으로 원본 데이터를 분해하여 확인합니다. 먼저 원본 데이터부터 시작해보시죠~
위의 표에서는 국가별 혹은 음식 종류별로 연관성이 쉽게 파악이 되지 않습니다. 여기에서 국가(샘플)와 음식(변수)의 구분에 대해 눈여겨 볼 필요가 있습니다. 최종적인 목표는 국가별 특징을 묶어서 표현하고자 함인데, 만약 음식이 주가 된다면 서로 축이 전치가 되게끔 데이터를 회전하면 됩니다.
이번 예제는 국가를 중심으로 나눌 것이기 때문에 Score 데이터 (우측 그림) 는 국가 정보가 되겠습니다. PCA는 쉽게 말해서 정보의 차원을 축소 시켜서 요약된 정보를 얻는 것을 의미합니다. 축소된 차원의 경우 기존의 데이터 축에서 재설정된 새로운 공간 (파란색 사각형) 을 이용하게 되며, 여기에 남겨진 그림자의 위치를 새롭게 요약된 국가에 대한 정보로 볼 수 있습니다.
PC1의 선정 방법은 모든 데이터를 가장 잘 표현하는 (수학적으로는 모든 원본 데이터와의 분산의 합을 최소로 하는) 직선을 의미하며 이를 첫번째 Component, t[1] 등으로 부르게 됩니다. PC2는 항상 PC1의 수직인 방향으로 생성이 되는데요, 좌측 그림의 Loading 데이터 (변수) 에 대한 것과 묶어서 설명 드릴 수 있도록 하겠습니다.
갑자기 cosine이 나와서 당황하셨을 수 있지만, cosine은 정보 처리 시에 연관성이 얼마나 있는지에 대한 가중치를 계산할 수 있게 해줍니다. cos90은 0으로 서로 연관성이 없는 의미가 되는데요, 이렇게 PC1에 수직이면서 데이터를 잘 설명할 수 있는 방향으로 두번째 Component, t[2]를 생성하게 되고 t[1]과 t[2] 직선을 통해 새롭게 평면을 만들어서 여기에 생긴 그림를 Score 데이터로 활용하게 됩니다. Loading은 새롭게 생성된 t[1], t[2] 직선이 원본 데이터와 이루는 각도를 cosine으로 계산하여 예각일수록 그 특징이 새로운 축에 매우 도드라지게 나타나는 것을 알 수 있게 됩니다.
물론 PCA가 완벽한 요약 방법은 아니기 때문에 데이터의 양이 방대하면 요약에 대한 설명력이 저하될 우려는 있습니다. 이 경우에는 변수와 샘플에 대한 연관성이 다소 낮을 수 있는데요, 처리하고자 하는 데이터의 종류와 설명력에 대해서는 이전 포스팅을 참고 부탁 드리겠습니다.
다시 처음으로 돌아와서, 맨 처음에 보여드렸던 그래프의 해석에 대해 설명 드리고 마치도록 하겠습니다.
Frozen Fish는 북유럽에서 자주 즐겨 먹는 음식 중에 하나입니다. 추운 기후 때문인데요, 오른쪽 Score 그래프에서도 그 특징이 아주 잘 나타난다고 볼 수 있습니다. 일반적으로 Score와 Loading에서 같은 사분면에 있는 데이터 특히 비슷한 위치에 있는 경우는 해당 변수에 영향을 많이 받은 샘플이라고 볼 수 있게 되는데요, 위에서 설명한 t[1]과 t[2]로 이뤄진 새로운 평면에 나타난 정보(Score, 우측 그래프)와 음식 (Loading, 좌측 그래프) 정보 관계에 대해 알아보겠습니다.
원본 데이터는 PCA 계산을 거치면서 Score와 Loading의 성분으로 나눠집니다. 이를 쉽게 풀어보면, "원본 데이터 = Score * Loading + 나머지" 의 식으로 표현할 수 있습니다. 이를 Score 관점에서 다시 풀어보게 된다면 "원본데이터 / Loading - 나머지 = Score (수학적으로 맞는 풀이는 아니지만 이해를 돕기 위해 표현 방법을 바꿔보았습니다 ^^;)"
스웨덴과 덴마크를 보시게 되면 t[1], t[2]의 값이 둘다 양수인 것을 볼 수 있습니다. 이는 새롭게 생성된 직선으로 만든 평면에서의 좌표를 의미할 수도 있는데요, Loading 그래프로 돌아가보면 Frozen Fish 역시 같은 사분면에서 p[1], p[2] 값이 모두 양수로 나오게 됩니다. 원본 데이터에서 스웨덴과 덴마크의 Frozen Fish 소비량이 높은 점을 미뤄보았을 때, 당연히 t[1], t[2]에서 나온 좌표와 p[1], p[2]에서 나온 좌표가 둘 다 양수여야만 원본 데이터와 유사한 결과를 가질 수 있게 됩니다.
여기에서 그렇다면 Olive oil과 같이 스웨덴, 덴마크에서 가장 적은 소비를 한 것으로 추정되는 경우는 어떻게 해석이 될까요? Olive oil의 경우 p[1], p[2] 좌표가 모두 음술수를 띄게 됩니다. 원본 = Score * Loading + 나머지에 비춰봤을 때 Score*Loading 값은 음수가 될 수 밖에 없겠죠. 나머지의 경우는 새롭게 생성된 직선이 나머지를 최소화 하는 방향으로 생기기 때문에 그렇게 높진 않을겁니다. 자연스럽게 원본 데이터 값의 크기가 작다는 것을 알 수 있죠.
마지막으로 Instant coffee와 같이 반대 위치의 사분면에 있지 않은 경우는 어떻게 될까요? Olive oil처럼 극단적으로 작은 값보다는 높겠지만, 스웨덴이나 덴마크에서 소비량은 Olive oil처럼 그렇게 높진 않을겁니다. 이번 예시에서는 처음에 말씀 드렸던 바와 같이 '국가'를 위주로 요약한 데이터기 때문에 변수를 요약한 Loading 그래프가 주인공이 아닌 국가별 특성을 요약한 Score를 뒷받침 하는 자료로써 이해해 주시면 됩니다.
최대한 수학 이론을 배제하고 작성하여 이해가 안가시는 부분이 분명히 있을 수 있다고 생각합니다. ^^; 혹시나 글을 보시면서 지적해주실 부분이 있으면 언제든지 댓글로 남겨 주시기 바라며, 문의 사항 역시 남겨 주시면 답변 드릴 수 있도록 하겠습니다~
이번에는 SIMCA를 처음 사용하는 고객 분들에게 가장 많은 질문을 받았던 PCA 그래프 해석에 대해 알아보려 합니다.
Loading (좌), Score (우) 그래프, 각각 변수와 샘플의 정보를 담고 있습니다. |
PCA는 다량의 데이터에 대한 검측 결과가 있을 때 쉽고 빠르게 분석을 도와줍니다. 서로 비슷한 특징을 가지고 있는 샘플을 찾거나, 어떤 이유로 서로 유사성을 가지고 있는지 등을 Score와 Loading 성분으로 원본 데이터를 분해하여 확인합니다. 먼저 원본 데이터부터 시작해보시죠~
국가별 음식 종류에 대한 소비량 정보 |
위의 표에서는 국가별 혹은 음식 종류별로 연관성이 쉽게 파악이 되지 않습니다. 여기에서 국가(샘플)와 음식(변수)의 구분에 대해 눈여겨 볼 필요가 있습니다. 최종적인 목표는 국가별 특징을 묶어서 표현하고자 함인데, 만약 음식이 주가 된다면 서로 축이 전치가 되게끔 데이터를 회전하면 됩니다.
원본 데이터 (노란색 점) 를 각각 변수와 샘플 기준으로 분해합니다. |
이번 예제는 국가를 중심으로 나눌 것이기 때문에 Score 데이터 (우측 그림) 는 국가 정보가 되겠습니다. PCA는 쉽게 말해서 정보의 차원을 축소 시켜서 요약된 정보를 얻는 것을 의미합니다. 축소된 차원의 경우 기존의 데이터 축에서 재설정된 새로운 공간 (파란색 사각형) 을 이용하게 되며, 여기에 남겨진 그림자의 위치를 새롭게 요약된 국가에 대한 정보로 볼 수 있습니다.
PC1의 선정 방법은 모든 데이터를 가장 잘 표현하는 (수학적으로는 모든 원본 데이터와의 분산의 합을 최소로 하는) 직선을 의미하며 이를 첫번째 Component, t[1] 등으로 부르게 됩니다. PC2는 항상 PC1의 수직인 방향으로 생성이 되는데요, 좌측 그림의 Loading 데이터 (변수) 에 대한 것과 묶어서 설명 드릴 수 있도록 하겠습니다.
갑자기 cosine이 나와서 당황하셨을 수 있지만, cosine은 정보 처리 시에 연관성이 얼마나 있는지에 대한 가중치를 계산할 수 있게 해줍니다. cos90은 0으로 서로 연관성이 없는 의미가 되는데요, 이렇게 PC1에 수직이면서 데이터를 잘 설명할 수 있는 방향으로 두번째 Component, t[2]를 생성하게 되고 t[1]과 t[2] 직선을 통해 새롭게 평면을 만들어서 여기에 생긴 그림를 Score 데이터로 활용하게 됩니다. Loading은 새롭게 생성된 t[1], t[2] 직선이 원본 데이터와 이루는 각도를 cosine으로 계산하여 예각일수록 그 특징이 새로운 축에 매우 도드라지게 나타나는 것을 알 수 있게 됩니다.
물론 PCA가 완벽한 요약 방법은 아니기 때문에 데이터의 양이 방대하면 요약에 대한 설명력이 저하될 우려는 있습니다. 이 경우에는 변수와 샘플에 대한 연관성이 다소 낮을 수 있는데요, 처리하고자 하는 데이터의 종류와 설명력에 대해서는 이전 포스팅을 참고 부탁 드리겠습니다.
다시 처음으로 돌아와서, 맨 처음에 보여드렸던 그래프의 해석에 대해 설명 드리고 마치도록 하겠습니다.
Frozen Fish에 대한 소비량을 국가(샘플)정보에 크기로 반영하여 나타낸 결과 입니다. |
Frozen Fish는 북유럽에서 자주 즐겨 먹는 음식 중에 하나입니다. 추운 기후 때문인데요, 오른쪽 Score 그래프에서도 그 특징이 아주 잘 나타난다고 볼 수 있습니다. 일반적으로 Score와 Loading에서 같은 사분면에 있는 데이터 특히 비슷한 위치에 있는 경우는 해당 변수에 영향을 많이 받은 샘플이라고 볼 수 있게 되는데요, 위에서 설명한 t[1]과 t[2]로 이뤄진 새로운 평면에 나타난 정보(Score, 우측 그래프)와 음식 (Loading, 좌측 그래프) 정보 관계에 대해 알아보겠습니다.
원본 데이터는 PCA 계산을 거치면서 Score와 Loading의 성분으로 나눠집니다. 이를 쉽게 풀어보면, "원본 데이터 = Score * Loading + 나머지" 의 식으로 표현할 수 있습니다. 이를 Score 관점에서 다시 풀어보게 된다면 "원본데이터 / Loading - 나머지 = Score (수학적으로 맞는 풀이는 아니지만 이해를 돕기 위해 표현 방법을 바꿔보았습니다 ^^;)"
스웨덴과 덴마크를 보시게 되면 t[1], t[2]의 값이 둘다 양수인 것을 볼 수 있습니다. 이는 새롭게 생성된 직선으로 만든 평면에서의 좌표를 의미할 수도 있는데요, Loading 그래프로 돌아가보면 Frozen Fish 역시 같은 사분면에서 p[1], p[2] 값이 모두 양수로 나오게 됩니다. 원본 데이터에서 스웨덴과 덴마크의 Frozen Fish 소비량이 높은 점을 미뤄보았을 때, 당연히 t[1], t[2]에서 나온 좌표와 p[1], p[2]에서 나온 좌표가 둘 다 양수여야만 원본 데이터와 유사한 결과를 가질 수 있게 됩니다.
여기에서 그렇다면 Olive oil과 같이 스웨덴, 덴마크에서 가장 적은 소비를 한 것으로 추정되는 경우는 어떻게 해석이 될까요? Olive oil의 경우 p[1], p[2] 좌표가 모두 음술수를 띄게 됩니다. 원본 = Score * Loading + 나머지에 비춰봤을 때 Score*Loading 값은 음수가 될 수 밖에 없겠죠. 나머지의 경우는 새롭게 생성된 직선이 나머지를 최소화 하는 방향으로 생기기 때문에 그렇게 높진 않을겁니다. 자연스럽게 원본 데이터 값의 크기가 작다는 것을 알 수 있죠.
마지막으로 Instant coffee와 같이 반대 위치의 사분면에 있지 않은 경우는 어떻게 될까요? Olive oil처럼 극단적으로 작은 값보다는 높겠지만, 스웨덴이나 덴마크에서 소비량은 Olive oil처럼 그렇게 높진 않을겁니다. 이번 예시에서는 처음에 말씀 드렸던 바와 같이 '국가'를 위주로 요약한 데이터기 때문에 변수를 요약한 Loading 그래프가 주인공이 아닌 국가별 특성을 요약한 Score를 뒷받침 하는 자료로써 이해해 주시면 됩니다.
최대한 수학 이론을 배제하고 작성하여 이해가 안가시는 부분이 분명히 있을 수 있다고 생각합니다. ^^; 혹시나 글을 보시면서 지적해주실 부분이 있으면 언제든지 댓글로 남겨 주시기 바라며, 문의 사항 역시 남겨 주시면 답변 드릴 수 있도록 하겠습니다~
댓글
댓글 쓰기