다양한 스토리를 담고 있는 연재를 만나보세요.
[난그댄] 데이터를 관통하는 주성분의 의미를 알아내는 방법
Bio통신원(뉴로(필명))
여러분 안녕하세요. 오랜만입니다.
지난 시간에는 주성분 분석(Principal component analysis, PCA)가 어떻게 데이터에 햇빛을 비추는지를 수학적으로 풀어봤습니다. 그리하여 우리는 아래의 수식을 얻게 됐습니다.
수식 1. PCA를 유도하는 과정의 마지막 식
마지막에 유도된 식은 고유벡터(eigenvector)와 고윳값(eigenvalue)를 정의하는 식입니다. 즉, 원본 행렬 X를 차원축소 시켜주는 행렬 a는 X의 공분산에 대한 고유벡터들의 행렬이라는 뜻입니다. 그리고, 각 고유벡터에 의해 설명되는 분산의 크기는 lambda가 됩니다. 그리고, 편의상 각 고유 벡터와 lambda는 lambda의 크기가 가장 큰 것을 왼쪽에 두고 오른쪽으로 갈수록 낮아지는 내림차순으로 정렬해 둡니다. 그래서, 가장 데이터의 퍼짐을 잘 설명하는 PC1은 맨 왼쪽에 있고 그다음은 PC1의 오른쪽에 둬서 쭉 갑니다.
그림 1. 주성분 행렬 (principal component matrix)의 형태
그림 2. 각 PC 축 별 분산의 설명정도. 1에 가까울수록 데이터 설명력이 가장 큰 축이다.
실습 데이터의 각 PC별 분산의 설명정도는 그림 2와 같습니다. PC1 축이 전체 데이터 분산의 약 45% 정도를 설명하고 있는 것을 볼 수 있습니다. 행렬 a의 각 행(row)들은 각 PC 축에 대해 기존의 특징들이 얼마큼 선형변환되는지를 나타냅니다. 이 값의 절댓값(absolute value)이 크면 클수록 해당 PC축의 형성에 기여를 많이 하는 특징이라는 뜻입니다. 다시 말해, 큰 값은 해당 특징(우리 실습에서는 유전자)이 그만큼 중요하다는 것을 의미합니다. 예를 들어 그림 1에서 PC1 축에 ‘기존 특징 1’은 100인 반면 ‘기존 특징 2’는 10으로 적혀있습니다. 이것은 ‘기존 특징 1’이 ‘기존 특징 2’에 비해 PC1 축에 10배 정도 더 기여를 많이 하고 있다고 말할 수 있습니다. 이를 이용하면 전체 특징을 사용하지 않고 중요한 특징들을 적절히 잡아내서 해당 데이터 전체를 설명할 수 있게 됩니다. 이렇게 중요한 특징을 선택하는 과정을 특징 선택(feature selection)이라고 합니다.
차원축소는 우리가 데이터의 특징을 적절히 살펴보는 것뿐만 아니라 이해에 큰 도움이 됩니다. 데이터의 설명력이 가장 큰 축에 가장 기여를 많이 하는 요소들에 대한 이해와 파악은 결국 전체 데이터의 이해로 이어지기 때문입니다. 적당한 수의 주요 특징을 추출한 후에는 유전자 개별로 확인해도 되지만 유전자 집합 분석(Gene set analaysis)을 통해 GO 용어(Gene ontology term) 단위로 확인이 가능합니다.
이번 실습 예제에서는 위의 PCA를 통해 PC1축의 중요 유전자들을 추출하고 이것들이 어떤 생물학적 과정에 참여하는지 GO 용어 분석을 하는 과정을 담았습니다. 실습 노트북은 아래에 있습니다.
다음에 또 봐요.
실습 노트북 : https://colab.research.google.com/drive/1u0rKQFaurYdqEutdg5LTNFaxO-nklTmU?usp=sharing
본 기사는 네티즌에 의해 작성되었거나 기관에서 작성된 보도자료로, BRIC의 입장이 아님을 밝힙니다. 또한 내용 중 개인에게 중요하다고 생각되는 부분은 사실확인을 꼭 하시기 바랍니다.
[기사 오류 신고하기]
생명과학자들은 반드시 '그래프 3 잘'이라는 소양이 있어야 한다. 그래프 3 잘 이란 '그래프를 잘 보고, 잘 이해하고, 잘 그려야 한다'라는 뜻이다. 그러나, 이 중요한 소양은 대게 좌충우돌과 시행착오로 개개인이 습득을 한다. 이 글은 생명과학 데이터로 '그래프 3 잘'하고 싶은 독자들을 돕고자 하는 글이다. 저자 뉴로는 '암은 굶어죽지 않는다.'를 신념으로 삼고 살아가는 직장인이다. 오늘도 그는 종양 오믹스데이터로 그래프를 그린다.
다른 연재기사 보기
전체 보기